• Controlling Light using Touch Sensor and 8051 Microcontroller

QC

Controlling Light using Touch Sensor and 8051 Microcontroller

 Controlling Light using Touch Sensor and 8051 Microcontroller - Điều khiển ánh sáng bằng Cảm biến cảm ứng và Vi điều khiển 8051

Circuit Diagram

Sơ đồ để điều khiển ánh sáng bằng cảm biến cảm ứng và 8051 được đưa ra hình ảnh dưới đây.



    Materials Required

    1. AT89S52 8051 Microcontroller
    2. Standard Cubic Relay - 5V
    3. 11.592 MHz Crystal
    4. 33pF capacitors - 2pcs
    5. 2k resistor -1 pc
    6. 4.7k resistor - 1 pc
    7. 10uF capacitor
    8. BC549B transistor
    9. TTP223 Sensor
    10. 1N4007 Diode
    11. Light Bulb With Bulb Holder
    12. A breadboard
    13. 5V power supply, A phone charger can work.
    14. Lots of jumper wires or berg wires.
    15. AT89S52 programming environment with Programmer Kit and IDE with compiler

      Transistor được sử dụng để bật hoặc tắt Rơle. Bộ cảm ứng được kết nối với bộ vi điều khiển AT89S52. Mạch được xây dựng bằng breadboard.

    Programming Atmega AT89S52 Microcontroller

    Mã 8051 hoàn chỉnh được đưa ra ở cuối. Ở đây chúng tôi đang giải thích một số phần của mã. Nếu bạn chưa quen với vi điều khiển 8051 thì trước tiên hãy học cách lập trình vi điều khiển 8051.

    Các dòng mã dưới đây được sử dụng để tích hợp Relay và Touch Sensor với Vi điều khiển 8051. REGX52 là tệp tiêu đề cho bộ vi điều khiển AT89S52. Một hàm trì hoãn cũng được khai báo.

    #include<REGX52.h>
    
    // RELAY Pin
    sbit RELAY = P1^0;                // Pin P1.0 is named as RELAY
    
    // Touch Sensor Pin
    sbit Touch = P1^1;                  // Pin P1.1 is named as Touch Sensor
    
    //Function declarations
    void delay(char ms);

    Cảm ứng và rơ le được khởi tạo bằng 0. Cảm biến cảm ứng thay đổi logic 0 thành 1. Nếu tuyên bố là đúng khi cảm biến cảm ứng được kích hoạt và do đó, trạng thái của Rơle sẽ thay đổi. Tuy nhiên, để phát hiện cảm ứng một cách chính xác, một độ trễ gỡ lỗi được sử dụng.

    // Main function
    void main(void)
    {
    
       RELAY = 0;
    
         Touch = 0;
       while(1){
                 if (Touch == 1){
                       delay(15); // debounce delay
                       if (Touch == 1){
                             RELAY = !RELAY;   // Toggle RELAY pin
                             delay(30);
                       }                      
                }               
         }
    }

      Dưới đây, hàm trì hoãn được viết. Hàm nhận đầu vào ở định dạng mili giây và tạo ra độ trễ bằng cách sử dụng hai vòng lặp for. Độ trễ này không chính xác nhiều nhưng có thể chấp nhận được và nó chủ yếu phụ thuộc vào thời gian của chu kỳ đồng hồ.


    /*Delay related Function*/
    void delay(char ms){
        int a,b;
        for (a=0; a<1295; a++){
                for (b=0; b<ms; b++);
        }   
    }

    Mạch Đèn điều khiển bằng cảm ứng này được thử nghiệm trên bảng mạch với bóng đèn công suất thấp được kết nối với nó. Bản phác thảo hoàn chỉnh với video trình diễn được đính kèm bên dưới.


    #include<REGX52.h>
     
    // RELAY Pin
    sbit RELAY = P1^0;    // Pin P1.0 is named as RELAY
    // Touch Sensor Pin
    sbit Touch = P1^1;    // Pin P1.1 is named as Touch Sensor
     
    //Function declarations
    void delay(char ms);
     
    // Main function
    void main(void)
    {
       RELAY = 0;
    Touch = 0;
       while(1){
    if (Touch == 1){
    delay(15); // debounce delay
    if (Touch == 1){
      RELAY = !RELAY;   // Toggle RELAY pin
    delay(30);
    }  
    }
    }
    }
     
    /*Delay related Function*/
     
    void delay(char ms){
    int a,b;
    for (a=0; a<1295; a++){
    for (b=0; b<ms; b++);
    }
    }














    Nap Code vào PY32F003 dùng Stlink

     Nap Code vào PY32F003 dùng Stlink Bước 1: Cài đặt  KeilC v5.39 theo link sau ( chú ý 5.39 keil c mới nạp ok). https://edge07.111.ir.cdn.ir/...