HARDWARE
1.Arduino Uno
2.HC05 Bluetooth Module
3.2N2222 ทรานซิสเตอร์ X4
4.Load
5.1N4007 ไดโอด
6.Relay
7.ตัวต้านทาน 10KΩ
8.ตัวต้านทาน 20KΩ
9.ตัวต้านทาน 1KΩ X4
INPUT
INPUT
MCU
Arduino Uno
OUTPUT
LOAD
Relay
SOFTWARE
| #include <SoftwareSerial.h> //กำหนดเรียกใช้ใน ไลบรารี่ Bluetooth | |
| const int rxPin = 4; //กำหนดไปที่ rxPinขา4 | |
| const int txPin = 2; //กำหนดไปที่ txPinขา2 | |
| SoftwareSerial mySerial(rxPin, txPin); //ไว้ใช้กำหนดค่าลงใน ไลบรารี่ Bluetooth | |
| const int Loads[] = {9, 10, 11, 12}; //ตัวแปรอาเรย์ | |
| int state = 0; //นี่คือตัวแปล state = 0 | |
| int flag = 0; ////นี่คือตัวแปล flag = 0 | |
| void setup() //เป็นฟังก์ชั่นแรกที่เมื่อ Arduino ทำงานแล้วจะเรียกเพื่อทำการ setup ค่าตามจุดประสงค์ของฟังก์ชั่น | |
| { | |
| for (int i=0;i<4;i++) //int=0<4และi+เรื่อยๆ | |
| { | |
| pinMode(Loads[i], OUTPUT); //สั่งกำหนดใช้ Load เก็บค่าตัวแปร อาเรย์ i เป็น OUTPUT ครับ | |
| } | |
| mySerial.begin(9600); //แสดงค่าออกทาง Serial Monitor | |
| for (int i=0;i<4;i++) //int=0<4และi+เรื่อยๆ | |
| { | |
| digitalWrite(Loads[i], LOW); //Load[i]เป็นLOW | |
| } | |
| } | |
| void loop() //คำสั่งต่างๆในการทำงาน | |
| { | |
| if(mySerial.available() > 0) //ถ้าพูดถึง if คำสั่งนี้สามารถต่อไปได้เรื่อยๆจนกว่าจะพอใจ // ถ้าmySerial.available>0 | |
| { | |
| state = mySerial.read(); //stateคือการอ่านค่า | |
| flag=0; //flag คือ 0 | |
| } | |
| switch(state) //มันจะตรวจสอบว่าตัวแปรมีค่าเท่ากับ case ใด | |
| { | |
| case '0':digitalWrite(Loads[0], HIGH); //กำหนดcase 0 แสดงค่า Load อาเรย์ 0 ตั้งเป็น High | |
| flag=1; //ตัวนี้ตรงตัวเลยครับ flag=1 คือ flag เท่ากับ 1 | |
| break; //หยุดทำงาน | |
| case '1':digitalWrite(Loads[0], LOW); //กำหนดcase 1 แสดงค่า Load อาเรย์ 0 ตั้งเป็น LOW | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| case '2':digitalWrite(Loads[1], HIGH); //กำหนดcase 2 แสดงค่า Load อาเรย์ 1 ตั้งเป็น HIGH | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| case '3':digitalWrite(Loads[1], LOW); //กำหนดcase 3 แสดงค่า Load อาเรย์ 1 ตั้งเป็น LOW | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| case '4':digitalWrite(Loads[2], HIGH); //กำหนดcase 4 แสดงค่า Load อาเรย์ 2 ตั้งเป็น HIGH | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| case '5':digitalWrite(Loads[2], LOW); //กำหนดcase 5 แสดงค่า Load อาเรย์ 2 ตั้งเป็น LOW | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| case '6':digitalWrite(Loads[3], HIGH); //กำหนดcase 6 แสดงค่า Load อาเรย์ 3 ตั้งเป็น HIGH | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| case '7':digitalWrite(Loads[3], LOW); //กำหนดcase 7 แสดงค่า Load อาเรย์ 3 ตั้งเป็น LOW | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| case '8':digitalWrite(Loads[0], LOW); //กำหนดcase 8 แสดงค่า Load อาเรย์ 0 ตั้งเป็น LOW | |
| digitalWrite(Loads[1], LOW); //กำหนดแสดงค่า Load อาเรย์ 1 สั่งเป็น LOW | |
| digitalWrite(Loads[2], LOW); //กำหนดแสดงค่า Load อาเรย์ 2 สั่งเป็น LOW | |
| digitalWrite(Loads[3], LOW); //กำหนดแสดงค่า Load อาเรย์ 3 สั่งเป็น LOW | |
| flag=1; //flag=1 | |
| break; //หยุดทำงาน | |
| } | |
*เสร็จครับ ปล.เทมอหน้าผมจะขยันกว่าเดิม --



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