วันอาทิตย์ที่ 7 ตุลาคม พ.ศ. 2561

มินิโปรเจ้คการเปิด-ปิดไฟ AC220Vด้วยเสียง ( แก้ไขงาน การอธิบายหลักการทำงานของโค้ด )

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

                                 
อุปกรณ์ที่ใช้
1. Arduino UNO R3 - Made in italy
2. Sensor Shield V 5.0
3. สาย Jumper Female to Male ยาว 20cm.
4. สาย Jumper Female to Female ยาว 20cm.
5. Relay 1 Channel 5V DC Solid State High Level Trigger
6. Voice Sound Detection Sensor Module
รูปผลงาน
1.



2.




3.
                               
                          บล็อกไดอะแกรม

การต่อวงจร ระหว่าง  Sensor Shield กับ เซ็นเซอร์เสียง

Shield <-> เซ็นเซอร์เสียง

G     <-> GND
V     <-> VCC
S(4) <-> OUT
การต่อวงจร ระหว่าง  Sensor Shield กับ รีเลย์

Shield <-> รีเลย์
G     <-> DC-
V     <-> DC+
S(5) <-> CH1
การต่อวงจร ระหว่าง  หลอดไฟ กับ รีเลย์


            การอธิบายหลักการทำงานของโค้ด
                ตัวแปรมีอยู่6ตัว  มีอยู่3ชนิด // ชนิดที่1.int  ชนิดที่2.long ชนิดที่3.boolean      
                      
        ตัวแปร6ตัวได้แก่ 
1.sound_sensor 
2. relay
3.clap
4. detection_range_start 
5. detection_range
6.status_lights
                          
int sound_sensor = 4;   //  กำหนดให้ sound sensorให้เป้น ขา 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;     //   boolean status_lights  มี ค่าเป็น false หรือเท่ากับ 0
void setup() {   // ฟังชั่นนี้คือการเซ็ตค่าเริ่มต้นเมื่อ Aduino เริ่มการทำงาน
  pinMode(sound_sensor, INPUT);  //  คือการกำหนด sound_sensor ให้เป็น อินพุต
  pinMode(relay, OUTPUT);   //   คือการกำหนด  relay  ให้เป็น เอาพุต
}

void loop() {  // ฟังชั่นนี้คือการทำงานวน ซ้ำๆ
  int status_sensor = digitalRead(sound_sensor);
  if (status_sensor == 0)   // คือการอ่านค่าจากซาวเซ็นเซอร์แล้วเอามาเก็บไว้ที่สเตตัส จากนั้นส่งมาที่ ฟังชั่นอีฟเพื่อตรวจสอบสถานะของข้อมูลว่าเป็นจริงหรือไม่
  {
    if (clap == 0)    // ถ้าตรวจสอบเจอจะทำงานในตีกาเปิดในช่องนี้แต่ถ้าไม่จะกระโดดข้ามไปทำอีกช่องนึง
    {
      detection_range_start = detection_range = millis();  // ค่าของ  detection_range เท่ากับ detection_range  เท่ากับ millis()
      clap++;   // clap เพิ่มขึ้น 1 
    }
    else if (clap > 0 && millis()-detection_range >= 50)  // ถ้าค่าของ clap มีค่ามากกว่า 0 เเละเปรียบเทียบ millis()-detection_range มากกว่าหรือเท่ากับ 50
    {
      
    }etection_range = millis();// เก็บค่าเวลา ใน  millis() เก็บไว้ในตัวแปร detection_range 
      clap++; //  clap เพิ่มขึ้น1
  }
  if (millis()-detection_range_start >= 400)  //    ถ้าค่าของ millis() ลบด้วยค่าของ detection_range_start  มากกว่าหรือเท่ากับ400ให้ทำงานปีกกาล่าง
  {
    if (clap == 2) //ลงมาทำงานที่บรรทัดนี้
    {
      if (!status_lights)    // ถ้า ผลลัพท์status_lights เป็นเท็จ ให้ทำในปีกกาล่าง
        {
          status_lights = true; //  ให้ค่า   status_lights มีค่าเท่า true หรือ1
          digitalWrite(relay, HIGH); // ส่งค่า ไปยังขาดิจิตอลให้ relay มีค่าเป็น high หรือ1
        }
        else if (status_lights)  //  ถ้าไม่ตรงตามเงื่อนไข 
        {
          status_lights = false; //   ให้ค่า  status_lights  มีค่าเป็น  false หรือ 0 
          digitalWrite(relay, LOW); // ส่งค่า ไปยังขาดิจิตอลให้ relay มีค่าเป็น low หรือ0
        }
    }
    clap = 0; //   ค่าของ clap มีค่าเท่ากับ 0
  }

}


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

     ลิ้งดูวีดีโอผลการทดลองมินิโปรเจ้คเปิด-ปิดไฟ220Vด้วยเสียง