วันศุกร์ที่ 8 กุมภาพันธ์ พ.ศ. 2562

pic19



ถ่ายทอดการเชื่อมต่อกับไมโครคอนโทรลเลอร์ PIC

ที่ฝัง
โดยSourav Gupta 2
ถ่ายทอดการเชื่อมต่อกับ PIC Micro-controllerถ่ายทอดการเชื่อมต่อกับ PIC Micro-controller
ในโครงการนี้เราจะอินเตอร์เฟซRelay กับไมโครคอนโทรลเลอร์ PIC PIC16F877A รีเลย์เป็นอุปกรณ์ทางกลเพื่อควบคุมแรงดันไฟฟ้าสูง, เครื่องใช้ไฟฟ้าในปัจจุบันสูง ' เปิด ' หรือ ' ปิด ' จากระดับแรงดันไฟฟ้าที่ต่ำกว่า รีเลย์ให้แยกระหว่างสองระดับแรงดันไฟฟ้าและมันก็เป็นเรื่องปกติที่ใช้ในการควบคุมอุปกรณ์ไฟฟ้ากระแสสลับ ตั้งแต่รีเลย์เชิงกลถึงโซลิดสเตตมีรีเลย์หลายแบบให้เลือกในอุปกรณ์อิเล็กทรอนิกส์ ในโครงการนี้เราจะใช้รีเลย์เชิงกล
ในโครงการนี้เราจะทำสิ่งต่อไปนี้ -
  1. เราจะเชื่อมต่อสวิตช์สำหรับอินพุตจากผู้ใช้
  2. ควบคุมหลอดไฟ AC 220Vพร้อมรีเลย์ 5V
  3. เพื่อควบคุมการถ่ายทอดเราจะใช้ BC547 ทรานซิสเตอร์ NPN และทรานซิสเตอร์จะถูกควบคุมจากPIC16F877A ไฟ LED จะแจ้งให้ทราบสภาพการเปิดหรือปิดรีเลย์
ถ้าคุณยังใหม่กับไมโครคอนโทรลเลอร์ PIC แล้วเริ่มต้นด้วยการเริ่มต้นกับไมโครคอนโทรลเลอร์ PIC

องค์ประกอบที่ต้องการ:

  1. PIC16F877A
  2. คริสตัล 20MHz
  3. 2 ชิ้น 33pF เซรามิก
  4. ตัวต้านทาน 4.7k 3 ตัว
  5. ตัวต้านทาน 1k
  6. 1 LED
  7. BC547 ทรานซิสเตอร์
  8. 1N4007 ไดโอด
  9. 5V รีเลย์ลูกบาศก์
  10. หลอดไฟ AC
  11. เขียงหั่นขนม
  12. สายสำหรับเชื่อมต่อชิ้นส่วน
  13. อะแดปเตอร์ 5V หรือแหล่งจ่ายไฟ 5V ใด ๆ ที่มีความสามารถอย่างน้อย 200mA ในปัจจุบัน

รีเลย์และการทำงาน:

รีเลย์ทำงานเหมือนสวิตช์ทั่วไป รีเลย์กลใช้แม่เหล็กชั่วคราวที่ทำจากขดลวดแม่เหล็กไฟฟ้า เมื่อเราให้กระแสไฟฟ้าผ่านขดลวดนี้มากพอมันก็กลายเป็นพลังงานและดึงแขน เนื่องจากวงจรที่เชื่อมต่อข้ามรีเลย์สามารถปิดหรือเปิดได้ อินพุทและเอาท์พุทไม่มีการเชื่อมต่อทางไฟฟ้าใด ๆ ดังนั้นจึงแยกอินพุทและเอาท์พุท เรียนรู้เพิ่มเติมเกี่ยวกับการถ่ายทอดและการก่อสร้างของที่นี่
รีเลย์สามารถพบได้ในช่วงแรงดันไฟฟ้าที่แตกต่างกันเช่น5V, 6V, 12V, 18Vเป็นต้นในโครงการนี้เราจะใช้รีเลย์ 5Vเนื่องจากแรงดันใช้งานของเราคือ5 โวลต์ที่นี่ นี้5V ลูกบาศก์ถ่ายทอดความสามารถในการสลับ7Aโหลดที่240VACหรือ10Aโหลดที่110VAC อย่างไรก็ตามแทนที่จะโหลดขนาดใหญ่เราจะใช้หลอดไฟ 220VACและเปลี่ยนมันโดยใช้รีเลย์
นี่คือรีเลย์ 5V ที่เราใช้ในโครงการนี้ การให้คะแนนในปัจจุบันมีการระบุไว้อย่างชัดเจนสำหรับสองระดับแรงดันไฟฟ้า10A ที่ 120VACและ7A ที่ 240VAC เราจำเป็นต้องเชื่อมต่อโหลดข้ามรีเลย์น้อยกว่าคะแนนที่ระบุ
KT-603 5V รีเลย์5V รีเลย์แบบลูกบาศก์

การถ่ายทอดนี้มีขา ถ้าเราเห็นข้อผิดพลาดเราสามารถเห็น -
KT-603 5V รีเลย์พินท์

L1และL2เป็นขาขดลวดแม่เหล็กไฟฟ้าภายใน เราต้องควบคุมสองพินเหล่านี้เพื่อเปิดรีเลย์ ' เปิด ' หรือ ' ปิด ' ถัดไปสามหมุดเป็นเสา NOและNC ขั้วต่อเชื่อมกับแผ่นโลหะภายในซึ่งจะเปลี่ยนการเชื่อมต่อเมื่อรีเลย์เปิด ในสภาพปกติPOLEเป็น shorted กับNC NCยืนสำหรับการเชื่อมต่อได้ตามปกติ เมื่อรีเลย์เปิดเสาเปลี่ยนตำแหน่งและกลายเป็นที่เชื่อมต่อกับNO NOย่อมาจากปกติ เปิด
ในวงจรของเราเราได้ทำการเชื่อมต่อรีเลย์กับทรานซิสเตอร์และไดโอด รีเลย์พร้อมทรานซิสเตอร์และไดโอดมีวางจำหน่ายในตลาดเป็นโมดูลรีเลย์ดังนั้นเมื่อคุณใช้รีเลย์โมดูลคุณไม่จำเป็นต้องเชื่อมต่อวงจรไดรเวอร์ (ทรานซิสเตอร์และไดโอด)
KT-603 5V โมดูลรีเลย์

รีเลย์ถูกใช้ในโครงการ Home Automation ทั้งหมดเพื่อควบคุมเครื่องใช้ไฟฟ้าภายในบ้าน


แผนภูมิวงจรรวม:

วงจรที่สมบูรณ์สำหรับการเชื่อมต่อรีเลย์ด้วย PIC ไมโครคอนโทรลเลอร์ได้รับด้านล่าง:
 วงจรไดอะแกรมสำหรับรีเลย์อินเทอร์เฟซพร้อม PIC Micro-controller

ในแผนผังดังกล่าวข้างต้นpic16F877Aถูกนำมาใช้ซึ่งในพอร์ต B LEDและทรานซิสเตอร์มีการเชื่อมต่อซึ่งถูกควบคุมเพิ่มเติมได้โดยใช้สวิทช์ TACที่RBO R1ให้อคติปัจจุบันทรานซิสเตอร์ R2เป็นตัวต้านทานแบบดึงลงที่ใช้กับสวิทช์สัมผัส มันจะให้ตรรกะ 0เมื่อไม่ได้กดสวิทช์1N4007เป็นไดโอดยึดที่ใช้สำหรับขดลวดแม่เหล็กไฟฟ้ารีเลย์ของ เมื่อรีเลย์ปิดการทำงานจะมีโอกาสเกิดแรงดันไฟฟ้าสูงและไดโอดจะหยุดการทำงาน ทรานซิสเตอร์จำเป็นสำหรับการขับรีเลย์เนื่องจากต้องการกระแสมากกว่า50mAซึ่งไมโครคอนโทรลเลอร์ไม่สามารถให้ได้นอกจากนี้เรายังสามารถใช้ULN2003แทนทรานซิสเตอร์มันเป็นทางเลือกที่ฉลาดถ้ามากกว่าสองหรือสามรีเลย์ที่จำเป็นสำหรับการประยุกต์ใช้ให้ตรวจสอบวงจรโมดูลRelay LEDทั่วพอร์ต RB2จะแจ้งให้ทราบ“ ถ่ายทอดอยู่บน

วงจรสุดท้ายจะมีลักษณะเช่นนี้ -
ฮาร์ดแวร์วงจรสำหรับการเชื่อมต่อระหว่างกันกับ PIC ไมโครคอนโทรลเลอร์

คุณสามารถเรียนรู้การควบคุมรีเลย์กับ Arduino ที่นี่และถ้าคุณสนใจจริงๆในการถ่ายทอดจากนั้นตรวจสอบทุกวงจรรีเลย์ที่นี่

คำอธิบายรหัส:

ที่จุดเริ่มต้นของmain.cไฟล์เราเพิ่มสายการกำหนดค่าสำหรับpic16F877Aและกำหนดชื่อพิทั่วPORTB
เช่นเคยก่อนอื่นเราต้อง  ตั้งค่าบิตการกำหนดค่าในไมโครคอนโทรลเลอร์ picกำหนดมาโครบางตัวรวมถึงไลบรารี่และความถี่คริสตัล คุณสามารถตรวจสอบรหัสสำหรับทุกคนในรหัสที่สมบูรณ์ได้รับในตอนท้าย เราได้ทำให้RB0เป็นอินพุท ในพินนี้สวิตช์เชื่อมต่ออยู่
#include <xc.h> 
/ * 
คำจำกัดความที่เกี่ยวข้องกับฮาร์ดแวร์
* / 
#define _XTAL_FREQ 200000000 // ความถี่คริสตัลที่ใช้ในการหน่วงเวลา
#define SW PORTBbits.RB0 
# กำหนด PORTBbits.RB1 
# กำหนดนิยาม PORTBbits.RB1 #

หลังจากนั้นเราเรียกว่า system_init () ฟังก์ชั่นที่เราเริ่มต้นทิศทางของพินและกำหนดค่าสถานะเริ่มต้นของพิน
ในฟังก์ชั่น system_init () เราจะเห็น
เป็นโมฆะ system_init (เป็นโมฆะ) { 
    TRISBbits.TRISB0 = 1; // การตั้งค่า Sw เป็นอินพุต
    TRISBbits.TRISB1 = 0; // การตั้งค่า LED เป็นเอาต์พุต
    TRISBbits.TRISB2 = 0; // การตั้งค่า pin relay เป็น
    LED 
output = 0;     RELAY = 0; 
    }

ในฟังก์ชั่นหลักเราทำการตรวจสอบการกดสวิตช์อย่างต่อเนื่องหากเราตรวจจับการกดสวิตช์โดยการตรวจจับตรรกะสูงทั่วRB0 ; เรารอสักครู่และดูว่าสวิตช์ยังกดอยู่หรือไม่ถ้าสวิตช์ยังกดอยู่เราจะสลับสถานะ RELAY และ LED ของขา
เป็นโมฆะ main (void) { 
    system_init (); // ระบบเตรียมพร้อม     
    ในขณะที่ (1) { 
        ถ้า (SW == 1) {// สวิตช์ถูกกด
            __delay_ms (50); // debounce delay 
            ถ้า (SW == 1) {// สวิตช์ยังคงกด
                LED =! LED; // การกลับสถานะหมุด 
                RELAY =! RELAY; 
            } 
        } 
     } 
    return; 
    }

รหัสที่สมบูรณ์และวิดีโอสาธิตสำหรับการเชื่อมต่อรีเลย์นี้ได้รับด้านล่าง
รหัส
/ * 
 * ไฟล์: main.c 
 * ผู้แต่ง: Sourav Gupta 
 * โดย: - circuitdigest.com 
 * สร้างเมื่อ 30 พฤษภาคม 2018, 2:26 PM 
 * /
// PIC16F877A การตั้งค่าบิตการกำหนดค่า
// คำสั่งการกำหนดค่าบรรทัดซอร์ส 'C'
// CONFIG 
#pragma config FOSC = HS // บิตการเลือก Oscillator (HS oscillator) 
#pragma config WDTE = OFF // ตัวจับเวลา Watchdog เปิดใช้งานบิต (ปิดใช้งาน WDT) 
#pragma config PWRTE = OFF // ตัวจับเวลาเปิดใช้งานบิต (PWRT) ปิดใช้งาน) 
#pragma config BOREN = ON // รีเซ็ต Brown-out เปิดใช้งานบิต (เปิดใช้งาน BOR) 
#pragma config LVP = OFF // แรงดันไฟฟ้าต่ำ (Single-Supply) การเขียนโปรแกรมอนุกรมในวงจรเปิดใช้งานบิต (pin RB3 / PGM PGM มี PGM ฟังก์ชั่นการตั้งโปรแกรมแรงดันต่ำเปิดใช้งาน
#pragma config CPD = ปิด // ข้อมูล EEPROM บิตการป้องกันรหัสหน่วยความจำ (การป้องกันรหัส EEPROM ข้อมูลปิด) 
#pragma config WRT = ปิด // โปรแกรมแฟลชหน่วยความจำเขียนเปิดใช้งานบิต (ป้องกันการเขียนออก; หน่วยความจำอาจถูกเขียนถึงโดยการควบคุม EECON) 
#pragma config CP = OFF // โปรแกรมแฟลชบิตการป้องกันโค้ดหน่วยความจำ (การป้องกันโค้ดปิด)

#include <xc.h> 
/ * 
 คำจำกัดความที่เกี่ยวข้องกับฮาร์ดแวร์
 * / 
#define _XTAL_FREQ 200000000 // ความถี่คริสตัลที่ใช้ในการหน่วงเวลา
#define SW PORTBbits.RB0 
# กำหนด PORTBbits.RB1 
กำหนดนิยาม PORTBbits.RB1 #
/ * 
 คำจำกัดความเฉพาะอื่น ๆ
 * / 
void system_init (void);
เป็นโมฆะ main (void) { 
    system_init (); // ระบบเตรียมพร้อม     
    ในขณะที่ (1) { 
        ถ้า (SW == 1) {// สวิตช์ถูกกด
            __delay_ms (50); // debounce delay 
            ถ้า (SW == 1) {// สวิตช์ยังคงกด
                LED =! LED; // การกลับสถานะหมุด 
                RELAY =! RELAY; 
            } 
        } 
     } 
    return; 
    } 
    
/ * 
 ฟังก์ชั่นนี้มีไว้สำหรับการเริ่มต้นระบบ 
 * /
เป็นโมฆะ system_init (เป็นโมฆะ) { 
    TRISBbits.TRISB0 = 1; // การตั้งค่า Sw เป็นอินพุต
    TRISBbits.TRISB1 = 0; // การตั้งค่า LED เป็นเอาต์พุต
    TRISBbits.TRISB2 = 0; // การตั้งค่า pin relay เป็น
    LED output = 0; 
    RELAY = 0; 
    }
วีดีโอ

รับจดหมายข่าวรายสัปดาห์ของเรา!

สมัครสมาชิกด้านล่างเพื่อรับข่าวสารบทความและโครงการ DIY ยอดนิยมจาก Circuit Digest

ความคิดเห็น

เข้าสู่ระบบหรือลงทะเบียนเพื่อแสดงความคิดเห็น

ซูโม่
17
หุ้น
Facebook9Pinterest8พูดเบาและรวดเร็วGoogle+อีเมล์

1 ความคิดเห็น:

  1. Hi, it's a very interesting blog. Thank you for sharing it will be helpful for engineering students to develop their own academic projects. I have found interesting projects in this Embedded Projects Using Matlab

    ตอบลบ