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; //หยุดทำงาน | |
} | |
*เสร็จครับ ปล.เทมอหน้าผมจะขยันกว่าเดิม --
ไม่มีความคิดเห็น:
แสดงความคิดเห็น