+++มินิโปรเจคเปิดปิดไฟด้วยเสียงและแสดงผล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
}
}
ผลการทดสอบ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น