วันศุกร์ที่ 21 กันยายน พ.ศ. 2561

มินิโปรเจคเปิดปิดไฟด้วยเสียง

+++มินิโปรเจคเปิดปิดไฟด้วยเสียงและแสดงผลLCD1602 ....ส่งงาน....

ปิดปิดไฟ AC 220V ด้วยเสียงและแสดงผล Lcd1602

 หลักการทำงาน

วิธีควบคุม Arduino  ด้วย เซ็นเซอร์เสียง Voice Sound Detection Sensor Module เราจะควบคุม การ เปิด ปิดไฟ AC 220V ด้วยเสียงตบมือ2ครั้งแสดงผลที่จอLcdเป็นเทริ์นออน ถ้าเราตบมืออีก 2ครั้งจะแสดงผลที่จอLcd เป็นเทริ์นออฟโดยเราจะใช้เซ็นเซอร์ตรวจจับเสียง และแสดงผลด้วยไฟ หลอดไฟบ้าน
    


                                                           รูปผลงาน

                                                                    1


2




                                                     แผนผังการทำงาน



  อุปกรณ์ที่ใช้

7. LCD1602+I2C LCD 1602 Module Blue Screen



                                                                   Code

#include <Wire.h>
#include <LiquidCrystal_I2C.h>           //ดึงคำสั่งlibrary lcd
LiquidCrystal_I2C lcd(0x27, 16, 2);      //ฟั่งชั่นของLCD มี16หลัก2แถว
int sound_sensor = 4;                            //กำหนดตัวแปรให้  sound sersor เป็นขา4
int relay = 5;                                           // กำหนดตัวแปรให้ relay เป้นขา5
int clap = 0;                                             //กำหนดตัวแปรให้ clap เป็น ขา0
long detection_range_start = 0;           // กำหนดตัวแปรให้ detection_range_start เท่ากับ0
long detection_range = 0;                    // กำหนดตัวแปรให้ detection_range เท่ากับ 0
boolean status_lights = false;              // กำหนดให้ status_lights  เป็นเท๊จ หรือ 0 
void setup() {                                  
  lcd.begin();                                             // การทำงานเบื้องต้นของ lcd

lcd.backlight();                                         // ให้เเบคไลท์ทำงาน
  pinMode(sound_sensor, INPUT);         // กำหนดให้ sound_sensor เป็นอินพุท
  pinMode(relay, OUTPUT);                     // กำหนดให้ relay เป็น output
}
void loop() {                                    
  int status_sensor = digitalRead(sound_sensor);      
  if (status_sensor == 0)                            // ถ้า status_sensor เปรียบเทียบเท่ากับ 0
  {
    if (clap == 0)                                                                       // ถ้า clap เท่ากับ 0
    {
      detection_range_start = detection_range = millis();  //                                           detection_range เท่ากับ millis()
      clap++;                                                                               //clap เพิ่มขึ้น 1
    }
    else if (clap > 0 && millis()-detection_range >= 50)     // ถ้า clap มากกว่า 0 เปรียบเทียบ millis()-detection_range มากกว่าหรือเท่ากับ 50
    {
      detection_range = millis();                          // detection_range ค่าเท่ากับ millis
      clap++;                                                          //  clap เพิ่มขึ้น1
    }
  }
  if (millis()-detection_range_start >= 400)    //ถ้า (millis()-detection_range_start มากกว่า400                                                                                
  {
    if (clap == 2)                                                    // ถ้า clap เท่ากับ2
    {
      if (!status_lights)                                           //  ถ้า ผลลัพท์status_lights เป็นเท็จ
        { 
          status_lights = true;                                  //status_lights เท่ากับ ถูก หรือ 1
          digitalWrite(relay, HIGH);                         //ส่งค่า ให้ relay เป็น  high
          lcd.setCursor(5, 0);                                    //ไปที่ตัวอักษรที่ 5 แถวที่ 0
lcd.print("Turn off");                                            //lcd ขึั้นข้อความว่า turn off
        }
        else if (status_lights)                                   //status_lights เท่ากับ ถูก หรือ 1
        {
          status_lights = false;                                  //status_lights เท่ากับ ผิดหรือ 0
          digitalWrite(relay, LOW);                           //ส่งค่า ให้ relay เป็น  low หรือ 0
          lcd.setCursor(5, 0);                                     // ไปที่ตัวอักษรที่ 5แถวที่ 0
lcd.print("Turn  on");                                            // lcd ขึั้นข้อความว่า turn on
        
    }
clap = 0;                                                                 // clap เท่ากับ 0
    }
 }


ผลการทดสอบ
 วีดีโอ



ไม่มีความคิดเห็น:

แสดงความคิดเห็น