Components
Arduino UNOHC – 05 Bluetooth Module10 KΩ Resistor20 KΩ Resistor1 KΩ Resistor X 4Connecting wires2N2222 NPN Transistor X 41N4007 Diode X 412 V Relay X 4Prototyping board (Bread board)12 V Power supplySmartphone or tablet (Bluetooth enabled)
Hardware
1.HC – 05 Bluetooth Module
2.Smartphone or tablet
OUTPUT
1.12 V Relay X 4
2.LOAD
โค้ส อธิบายโค้ส
#include <SoftwareSerial.h>
const int rxPin = 4; //ประกาศตัวแปรไว้ที่ขา 4
const int txPin = 2; //ประกาศตัวแปรไว้ที่ขา 2
SoftwareSerial mySerial(rxPin, txPin); //เรียกใช้ฟังชั่นพิเศษ ที่ขา rx , tx
const int Loads[] = {9, 10, 11, 12}; //ประกาศตัวแปรที่เป็นโหลดไว้ที่ขา 9.10.11.12
int state = 0; //ประกาศตัวแปลเพื่อรับค่า
int flag = 0; //ประกาศตัวแปลเพื่อรับค่า
void setup()
{
for (int i=0;i<4;i++) //ให้ i เริ่มต้นมีค่าเท่ากับ 0 , ให้โปรแกรมยังคงทำงานเมื่อ i น้อยกว่า 4 ในการวน แต่ละรอบให้a เพิ่มขึ้นทีละ 1
{
pinMode(Loads[i], OUTPUT); //กำหมดให้Loads[i]เป็นOUTPUT
}
mySerial.begin(9600);
for (int i=0;i<4;i++) / /ให้ i เริ่มต้นมีค่าเท่ากับ 0 , ให้โปรแกรมยังคงทำงานเมื่อ i น้อยกว่า 4 ในการวน แต่ละรอบให้a เพิ่มขึ้นทีละ 1
{
digitalWrite(Loads[i], LOW); //แสดงค่าที่ขาdigital สั่งให้Loads[i], LOW
}
}
void loop()
{
if(mySerial.available() > 0) //ถ้าตรวจพบว่ามีการกดคีย์บอร์ดให้โปรแกรมกระทำดังต่อไปนี้
{
state = mySerial.read(); //อ่านค่าปุ่มคีบอร์ด
flag=0; //ให้ตัวแปล flag=0;
}
switch(state) //เลือกเงือนไขที่จะทำ
{
case '0':d
flag=1;
break; //หยุด
case '1':digitalWrite(Loads[0], LOW); //case '1' แสดงที่ขาdigitalให้Loads[0]เป็นLOW
break; /หยุด
case '2':digitalWrite(Loads[1], HIGH); //case '2' แสดงที่ขาdigitalให้Loads[1]เป็นHIGH
flag=1;
break; //หยุด
case '3':digitalWrite(Loads[1], LOW); //case '3' แสดงที่ขาdigitalให้Loads[1]เป็นLOW
flag=1;
break; //หยุด
case '4':digitalWrite(Loads[2], HIGH); //case '4' แสดงที่ขาdigitalให้Loads[2]เป็นHIGH
flag=1;
break; //หยุด
case '5':digitalWrite(Loads[2], LOW); //case '5' แสดงที่ขาdigitalให้Loads2 เป็นLOW
flag=1;
break; //หยุด
case '6':digitalWrite(Loads[3], HIGH); //case '6' แสดงที่ขาdigitalให้Loads[3]เป็นHIGH
flag=1;
break; //หยุด
case '7':digitalWrite(Loads[3], LOW); //case '7' แสดงที่ขาdigitalให้Loads[3]เป็นLOW
flag=1;
break; //หยุด
case '8':digitalWrite(Loads[0], LOW); //case '8' แสดงที่ขาdigitalให้Loads[0]เป็นLOW
digitalWrite(Loads[1], LOW); // แสดงที่ขาdigitalให้Loads[1]เป็นLOW
digitalWrite(Loads[2], LOW); // แสดงที่ขาdigitalให้Loads[2]เป็นLOW
digitalWrite(Loads[3], LOW) // แสดงที่ขาdigitalให้Loads[3]เป็นLOW
flag=1;
break; //หยุด
}
|
ความคิดเห็น
แสดงความคิดเห็น