สารบัญ:
- ขั้นตอนที่ 1: รวบรวมส่วนประกอบ
- ขั้นตอนที่ 2: การทดสอบกับ PROTEUS
- ขั้นตอนที่ 3: การสร้าง PCB
- ขั้นตอนที่ 4: ส่วนประกอบบัดกรี
- ขั้นตอนที่ 5: การเขียนโปรแกรม RTC IC PCF8583
- ขั้นตอนที่ 6: การเขียนโปรแกรม PIC18F4550
- ขั้นตอนที่ 7: ขั้นตอนสุดท้าย & การทดสอบขั้นสุดท้าย…!
วีดีโอ: ระบบรักษาความปลอดภัยอิเล็กทรอนิกส์ด้วย RTC และผู้ใช้กำหนดรหัสพิน: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
สวัสดีพวก!
นี่เป็นโครงการที่ฉันสร้างโดยใช้ไมโครคอนโทรลเลอร์ pic ซึ่งเป็นระบบรักษาความปลอดภัยรหัส PIN อิเล็กทรอนิกส์พร้อมนาฬิกาแบบเรียลไทม์และคุณสมบัติรหัสพินที่ผู้ใช้กำหนด หน้านี้ประกอบด้วยรายละเอียดทั้งหมดเพื่อสร้างด้วยตัวเอง
การทำงานและแนวคิด:
โดยการเปิดระบบรักษาความปลอดภัยระบบจะขอ PINCODE เพื่อเปิดประตู (คือ 140595) หากคุณป้อนถูกต้องประตูจะเปิดขึ้น ประตูเปิดเพียง 1 นาทีเท่านั้นจากนั้นก็ปิดอีกครั้ง หากคุณป้อนรหัสพินผิด ระบบรักษาความปลอดภัยจะให้โอกาสคุณอีก 3 ครั้ง หากเสียโอกาสทั้งหมดก็จะเปิดเสียงเตือน และขอรหัสอื่นเพื่อหยุดเสียงเตือน หากป้อนรหัสทางเลือกนี้ (เช่น 1984) ถูกต้องแล้ว:
1) มันหยุดเสียงกริ่ง
2) รีเซ็ตรหัสเดิมซึ่งเป็น 140595
3) ขอรหัสใหม่แทนที่รหัสเดิมซึ่งเป็น 140595 (ไม่เกิน 6 หลัก)
ตอนนี้ประตูจะถูกเปิดโดยรหัสใหม่นี้
สมมติว่าใส่รหัสสำรองผิด จากนั้นระบบจะขอให้รอการนับถอยหลัง 1 นาทีในระหว่างที่ปุ่มทั้งหมดถูกปิดใช้งานและเสียงกริ่งจะดังขึ้น
วิดีโอ:
www.youtube.com/watch?v=O0lYVIN-CJY&t=5s
โอเค มาสร้างกัน…!
ก่อนที่เราจะเริ่มต้น ฉันคิดว่าคุณมีความรู้พื้นฐานเกี่ยวกับภาษา C อยู่แล้ว และเคยทำงานบน MikroC pro มาก่อน และคุณทราบวิธีการเรืองแสง LED วิธีการเชื่อมต่อ LCD กับไมโครคอนโทรลเลอร์ PIC โอเค มาเริ่มกันเลย!
ขั้นตอนที่ 1: รวบรวมส่วนประกอบ
สำหรับโครงการ: ส.น. | ปริมาณ | ส่วนประกอบ | ข้อมูล
1) 1 16x2 LCD Pin 14 ถึง Pin 1 จากนั้น Pin 15 และ Pin 16 pins package
2) ไมโครคอนโทรลเลอร์ PIC18F4550 1 ตัว
3) 1 PCF8583 นาฬิกาเวลาจริง (RTC) IC
4) 14 ปุ่มรีเซ็ตแทนปุ่มกด ฉันใช้ปุ่มรีเซ็ต
5) 1 9v แบตเตอรี่ แหล่งจ่ายไฟหลัก
6) 1 10K Ohm Pot สำหรับตั้งค่าคอนทราสต์ของ LCD
7) 2 แจ็คเสียง 3.5 มม. สำหรับเชื่อมต่อออดและเกตจากภายนอก
8) 1 100uF Capacitor Ceremic cap สำหรับใช้กับ pin1 ของคอนโทรลเลอร์
9) 1 32.682kHz คริสตัลสำหรับ PCF8583 IC
10) 1 DC Power Jack หากใช้โปรเจ็กต์กับอะแดปเตอร์ DC
11) 1 IC7805 สำหรับแปลง 9V เป็น 5V
12) ตัวต้านทาน 1 1K Ohm สำหรับใช้กับพิน1 ของคอนโทรลเลอร์
13) ตัวต้านทาน 10K Ohm 3 ตัวสำหรับใช้กับพิน 1 ของคอนโทรลเลอร์และ RTC IC
14) 13 ตัวต้านทาน 220 โอห์ม แต่ละปุ่มจะใช้ 1 220 โอห์ม ผมจะอธิบายทีหลัง
15) 1 3V Cell สำหรับใช้กับ RTC IC
16) 1 TICK TICK สวิตช์
17) 1 บอร์ด PCB ที่คุณเลือกถ้าคุณชอบ verro ก็โอเค
18) 1 8 พิน DIP สำหรับ RTC IC
19) 1 40 pin DIP สำหรับ PIC184550 หรือคุณสามารถ Zip socket ได้หากต้องการ
20) 1 3V ที่วางเซลล์
21) 1 ที่ใส่แบตเตอรี่ 9V
22) หัวต่อตัวผู้ 1 หัวสำหรับบัดกรีด้วย LCD
23) หัวต่อตัวเมีย 1 หัวสำหรับบัดกรีบน PCB หรือ Verro ที่จะวาง LCD
ส่วนอื่นๆ:
20) เขียงหั่นขนมสำหรับการทดสอบ
21) หัวแร้ง
22) ลวดบัดกรี
23) โปรแกรมเมอร์ PIC (หรือ PICKIT2)
24) สารละลายกัด (สำหรับ PCB)
25) สว่าน PCB
26) มัลติมิเตอร์
คิดว่าคุณจะสังเกตเห็นว่าฉันยังไม่ได้รวมคริสตัลสำหรับไมโครคอนโทรลเลอร์ PIC ใช่ไหม นั่นเป็นเพราะฉันใช้ Oscillator ภายในของ PIC18F4550
นั่นคือทั้งหมด…! มาลงมือทำกันเลย…!
ขั้นตอนที่ 2: การทดสอบกับ PROTEUS
คุณสามารถทดสอบวงจรบนโพรทูส เพื่อให้คุณได้แนวคิดเกี่ยวกับโครงการ
ไฟล์ proteus จะต้องมีไฟล์ hex สำหรับไมโครคอนโทรลเลอร์ PIC
ทั้งสองไฟล์มีให้
ขั้นตอนที่ 3: การสร้าง PCB
ฉันจะแนะนำให้คุณสร้างโครงการนี้บน PCB ไม่ใช้ verroboard
พิมพ์ PCB นี้ ซึ่งฉันออกแบบโดย Cadsoft Eagle หากคุณมี cadsoft eagle ติดตั้งไว้ เปิดไฟล์ brd (ดาวน์โหลดด้านล่าง) และสร้างไฟล์ตามความต้องการของขนาดหน้า
มิฉะนั้นฉันได้แนบไฟล์สองไฟล์ที่เป็น A4 และอีกไฟล์หนึ่งคือ A5 พิมพ์และตรวจสอบส่วนประกอบจากนั้นพิมพ์ PCB ของคุณ ฉันถามสิ่งนี้เพราะอาจมีปัจจัยมาตราส่วนหน้า
หมายเหตุ: คุณสามารถเปิดเครื่องโครงการโดยใช้แบตเตอรี่ที่จะเชื่อมต่อกับขั้วต่อใกล้กับ 7805 ระวังขั้ว หรือคุณสามารถเพิ่มพลังให้กับโปรเจ็กต์โดยใช้อะแดปเตอร์ผ่านแจ็ค DC Power แหล่งพลังงานสามารถเปลี่ยนได้ด้วยปุ่มติ๊ก เมื่อปุ่มถูกบุอยู่ภายในวงจรจ่ายไฟจากแหล่งภายนอกผ่านขั้วต่อ เมื่อปุ่มถูกผลักออกไปนอกวงจรจะจ่ายไฟจากแจ็คไฟ DC
ขั้นตอนที่ 4: ส่วนประกอบบัดกรี
ประสานส่วนประกอบทั้งหมดดูภาพที่แนบมา
สิ่งที่ฉันต้องบอกคุณ เนื่องจากโพรทูสเป็นอุดมคติ นั่นคือสาเหตุที่ปุ่มเชื่อมต่อโดยตรงกับพินไมโครคอนโทรลเลอร์โดยไม่มีตัวต้านทาน
แต่ในชีวิตจริงมีปัจจัยด้านเสียงอยู่
อย่างสมมติ ในโปรเจ็กต์นี้ หากคุณกดปุ่ม 4 หนึ่งครั้ง บน proteus คุณจะได้ 4 บน LCD แต่ถ้าคุณกดในชีวิตจริง คุณจะได้ 44444444 บน LCD เนื่องจากสัญญาณรบกวน Iหากต้องการลบสิ่งนี้ pcb มีตัวต้านทาน 220 โอห์มพร้อมทุกปุ่ม
ขั้นตอนที่ 5: การเขียนโปรแกรม RTC IC PCF8583
โอเค นี่เป็นเรื่องยุ่งยากเล็กน้อย แต่เนื่องจากรหัสที่ให้ไว้จะไม่ยุ่งยากขนาดนั้น ฉันไม่ได้ให้ไฟล์.hex สำหรับการเขียนโปรแกรม RTC IC เนื่องจากคุณต้องสร้างมันขึ้นมาเพื่อกำหนดเวลาที่คุณต้องการ และปีที่ตั้งไว้เป็นปี 2015 คุณไม่จำเป็นต้องตั้งค่า
เปิด mikroC Pro จาก PIC และเลือก PIC18F4550 คัดลอกและวางโค้ดด้านล่าง:
// การเชื่อมต่อโมดูล LCDsbit LCD_RS ที่ RB2_bit;
sbit LCD_EN ที่ RB3_bit;
sbit LCD_D4 ที่ RB4_bit;
sbit LCD_D5 ที่ RB5_bit;
sbit LCD_D6 ที่ RB6_bit;
sbit LCD_D7 ที่ RB7_bit;
sbit LCD_RS_Direction ที่ TRISB2_bit;
sbit LCD_EN_Direction ที่ TRISB3_bit;
sbit LCD_D4_Direction ที่ TRISB4_bit;
sbit LCD_D5_Direction ที่ TRISB5_bit;
sbit LCD_D6_Direction ที่ TRISB6_bit;
sbit LCD_D7_Direction ที่ TRISB7_bit;
// สิ้นสุดการเชื่อมต่อโมดูล LCD
เป็นโมฆะหลัก () {
ADCON1 = 0x0F;
CMCON |= 7; //ปิดการใช้งานตัวเปรียบเทียบ
OSCCON = 0b01111111; //ใช้ Oscilator ภายใน @ 8MHz
ทริสบี = 0x00; //PORTB สำหรับเอาต์พุต (LCD)
LATB = 0xFF; //PORTC สำหรับอินพุต
LATC = 0xFF; //PORTD สำหรับอินพุต
ทริศา. RA2 = 0; //RA2 สำหรับเอาต์พุต
ทริศา. RA3 = 0; //RA3 สำหรับเอาต์พุต
UCON. USBEN = 0; //ปิดการใช้งาน usb UCFG. UTRDIS = 1;
ทริส = 0xF9; // PORTD เอาต์พุต
Lcd_Init(); // เริ่มต้น LCD
Lcd_Cmd(_LCD_CLEAR); // ล้างหน้าจอ
Lcd_Cmd(_LCD_CURSOR_OFF); // ปิดเคอร์เซอร์
Lcd_Out(1, 1, "ตั้งเวลา…");
ดีเลย์_ms(1000);
I2C1_Init(100000); // เริ่มต้นโหมดมาสเตอร์แบบเต็ม
I2C1_Start(); // ออกสัญญาณเริ่มต้น
I2C1_Wr(0xA0); // ที่อยู่ PCF8583
I2C1_Wr(0); // เริ่มจาก word ที่ address 0 (configuration word)
I2C1_Wr(0x80); // เขียน $80 เพื่อกำหนดค่า (หยุดเคาน์เตอร์…)
I2C1_Wr(0); // เขียน 0 ถึงเซ็นต์คำ
I2C1_Wr(0); // เขียน 0 ถึงวินาที word
I2C1_Wr(0x10); // เปลี่ยน 10 นี้เป็นนาทีที่คุณต้องการตั้งค่า
I2C1_Wr(0x17); // เปลี่ยน 17 นี้เป็นชั่วโมงที่คุณต้องการตั้งค่า
I2C1_Wr(0x23); // เปลี่ยน 23 นี้เป็นวันที่ที่คุณต้องการตั้งค่า
I2C1_Wr(0x2); // เปลี่ยน 2 นี้เป็นเดือนที่คุณต้องการตั้งค่า
I2C1_Stop(); // ออกสัญญาณหยุด
I2C1_Start(); // ออกสัญญาณเริ่มต้น
I2C1_Wr(0xA0); // ที่อยู่ PCF8530
I2C1_Wr(0); // เริ่มจากคำที่อยู่ 0
I2C1_Wr(0); // เขียน 0 ถึง config word (เปิดใช้งานการนับ)
I2C1_Stop(); // ออกสัญญาณหยุด
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1, 1, "ตั้งเวลา!");
ดีเลย์_ms(500);
}
_END รหัส_
สร้างไฟล์ hex จาก Mikroc Pro สำหรับ PIC หลังจากรวบรวมโค้ดด้านบนแล้วเบิร์นไปที่ pic microcontroller PIC18F4550
วางบน PCB ที่บัดกรีด้วยส่วนประกอบทั้งหมดแล้วเปิดเครื่อง LCD ควรแสดง "Setting Time…" จากนั้นเมื่อแสดง "Time Set!" ปิดไฟ ลบไมโครคอนโทรลเลอร์ PIC ออกจากกรมทรัพย์สินทางปัญญาที่คุณตั้งโปรแกรม PCF8583 RTC IC สำเร็จ:)
ขั้นตอนที่ 6: การเขียนโปรแกรม PIC18F4550
ไฟล์ hex นั้นมีอยู่แล้วในขั้นตอนที่ 2 คุณสามารถเบิร์นมันไปยัง PIC18F4550 ของคุณผ่าน PIC Programmer
ขั้นตอนที่ 7: ขั้นตอนสุดท้าย & การทดสอบขั้นสุดท้าย…!
ติดไฟ LED เข้ากับแจ็คเสียง 3.5 มม. ด้านล่างขวา และสัญญาณเสียงเตือนที่แจ็ค 3.5 มม. ด้านขวาบน วาง PIC18F4550 ที่ตั้งโปรแกรมไว้บน pcb แล้วเปิดเครื่อง
เมื่อป้อนรหัสที่ถูกต้องจะทำให้ลอจิก 1 ไปที่ led ที่ต่ำกว่า ฉันถือว่าเมื่อให้ลอจิก 1 เพื่อนำไปสู่มันจะเปิดประตู
ระบบรักษาความปลอดภัยอิเล็กทรอนิกส์ของคุณควรพร้อมแล้วตอนนี้…! และถ้าคุณทำทุกอย่างถูกต้องแล้ว มันก็ควรจะใช้ได้ดี
กรุณาชอบและติดตามหน้า Facebook ของฉัน:
www.facebook.com/pg/ElectronicProjectsbySh…
เว็บไซต์บล็อกของฉัน:
epshahrukh.blogspot.com/
แนะนำ:
เวลาแสดงผล Arduino บนจอแสดงผล LED TM1637 โดยใช้ RTC DS1307: 8 ขั้นตอน
Arduino Display Time บน TM1637 LED Display โดยใช้ RTC DS1307: ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีแสดงเวลาโดยใช้โมดูล RTC DS1307 และ LED Display TM1637 และ Visuino ดูวิดีโอ
8051 การเชื่อมต่อกับ DS1307 RTC และการแสดงการประทับเวลาใน LCD: 5 ขั้นตอน
8051 การเชื่อมต่อกับ DS1307 RTC และการแสดงการประทับเวลาใน LCD: ในบทช่วยสอนนี้ เราได้อธิบายให้คุณทราบเกี่ยวกับวิธีการเชื่อมต่อไมโครคอนโทรลเลอร์ 8051 กับ ds1307 RTC ที่นี่เรากำลังแสดงเวลา RTC ในรูปแบบ LCD โดยใช้การจำลอง Proteus
RTC พร้อม DS1307 และ PIC16F628A: 3 ขั้นตอน
RTC พร้อม DS1307 และ PIC16F628A: เป็นวงจรที่สร้างขึ้นเองจากบนลงล่าง
สร้างนาฬิกา Retro Nixie ของคุณเองด้วย RTC!: 7 ขั้นตอน (พร้อมรูปภาพ)
สร้างนาฬิกา Nixie Retro ของคุณเองด้วย RTC!: ในโครงการนี้ ฉันจะแสดงวิธีสร้างนาฬิกา Nixie ย้อนยุค นั่นหมายความว่าฉันจะแสดงให้คุณเห็นว่าคุณสามารถควบคุมหลอด nixie ด้วยแหล่งจ่ายไฟ DC แรงสูงได้อย่างไร จากนั้นฉันจะรวม 4 หลอด nixie เข้ากับ Arduino, Real Time Clock (RTC) และ
ESP8266 นาฬิกาเครือข่ายที่ไม่มี RTC - Nodemcu NTP นาฬิกาไม่มี RTC - โครงการนาฬิกาอินเทอร์เน็ต: 4 ขั้นตอน
ESP8266 นาฬิกาเครือข่ายที่ไม่มี RTC | Nodemcu NTP นาฬิกาไม่มี RTC | โครงการนาฬิกาอินเทอร์เน็ต: ในโครงการจะทำโครงการนาฬิกาโดยไม่มี RTC จะใช้เวลาจากอินเทอร์เน็ตโดยใช้ wifi และจะแสดงบนจอแสดงผล st7735