+++มินิโปรเจคเปิดปิดไฟด้วยเสียงและแสดงผลLCD1602 ....ส่งงาน....
ปิดปิดไฟ AC 220V ด้วยเสียงและแสดงผล Lcd1602
 หลักการทำงาน
วิธีควบคุม Arduino  ด้วย เซ็นเซอร์เสียง Voice Sound Detection Sensor Module เราจะควบคุม การ เปิด ปิดไฟ AC 220V ด้วยเสียงตบมือ2ครั้งแสดงผลที่จอLcdเป็นเทริ์นออน ถ้าเราตบมืออีก 2ครั้งจะแสดงผลที่จอLcd เป็นเทริ์นออฟโดยเราจะใช้เซ็นเซอร์ตรวจจับเสียง และแสดงผลด้วยไฟ หลอดไฟบ้าน
    
                                                           รูปผลงาน
                                                                    1
  อุปกรณ์ที่ใช้
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
    }
 }
ผลการทดสอบ
ปิดปิดไฟ AC 220V ด้วยเสียงและแสดงผล Lcd1602
 หลักการทำงาน
วิธีควบคุม Arduino  ด้วย เซ็นเซอร์เสียง Voice Sound Detection Sensor Module เราจะควบคุม การ เปิด ปิดไฟ AC 220V ด้วยเสียงตบมือ2ครั้งแสดงผลที่จอLcdเป็นเทริ์นออน ถ้าเราตบมืออีก 2ครั้งจะแสดงผลที่จอLcd เป็นเทริ์นออฟโดยเราจะใช้เซ็นเซอร์ตรวจจับเสียง และแสดงผลด้วยไฟ หลอดไฟบ้าน
รูปผลงาน
1
  อุปกรณ์ที่ใช้
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
#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
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.begin(); // การทำงานเบื้องต้นของ lcd
lcd.backlight(); // ให้เเบคไลท์ทำงาน
  pinMode(sound_sensor, INPUT);         // กำหนดให้ sound_sensor เป็นอินพุท
pinMode(relay, OUTPUT); // กำหนดให้ relay เป็น output
}
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
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
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
    }
 }
ผลการทดสอบ



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