Hardware INPUT/OUTPUT
INPUT
1.HC – 05 Bluetooth Module
2.Smartphone or tablet (Bluetooth enabled)
OUTPUT
1.LOAD
Software
#include <SoftwareSerial.h>//เรียกใช้งาน
const int rxPin = 4;//ประกาศตัวแปล txPin มีค่าเป็น 2
const int txPin = 2;//ประกาศตัวแปล txPin มีค่าเป็น 2
SoftwareSerial mySerial(rxPin, txPin);//ฟังก์ชั่นของ SoftwareSeria
const int Loads[] = {9, 10, 11, 12};/ประกาศตัวแปล Loads มีค่า เป็น(9,10,11,12)
int state = 0;//ประกาศตัวแปล start มีค่าเป็น 0
int flag = 0;ประกาศตัวแปล flag มีค่าเป็น 0
void setup()//เป็นฟังค์ชันแรก setupค่าตามจุดประสงค์ของฟังก์ชั่น
{
for (int i=0;i<4;i++)//กำหนดตัวแปล i=0,iน้อยกว่า4 i้เพิ่มทีละ1
{
pinMode(Loads[i], OUTPUT);//กำหนดขาLoadsเป็น OUTPUT
}
mySerial.begin(9600);//ประกาศการใช้งานการสื่อสารรับส่งข้อมูลผ่านพอร์ตRS232 ความเร็วรับส่งข้อมูล(9600)ต่อวินาที
for (int i=0;i<4;i++)//กำหนดตัวแปล i=0,iน้อยกว่า4 i้เพิ่มทีละ1
{
digitalWrite(Loads[i], LOW);//ส่งค่าลอจิกไปยังขาdigitalให้Loadsเป็นLOW
}
}
void loop()//ฟังค์ชัน การทำซ้ำไปเรื่อยๆ
{
if(mySerial.available() > 0)//ถ้าค่าของ mySerial.available()มีค่ามากกว่า0ให้ทำด้านล่าง
{
state = mySerial.read();//อ่านค่าของตัวแปรของstate
flag=0;//flagเป็น0
}
switch(state)
{
case '0':digitalWrite(Loads[0], HIGH);//เงื่อนไขที่0ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '1':digitalWrite(Loads[0], LOW);//เงื่อนไขที่1ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '2':digitalWrite(Loads[1], HIGH);//เงื่อนไขที่2ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นHIGH
flag=1;//flagเป็น1break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '3':digitalWrite(Loads[1], LOW);//เงื่อนไขที่3ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '4':digitalWrite(Loads[2], HIGH);//เงื่อนไขที่4ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '5':digitalWrite(Loads[2], LOW);//เงื่อนไขที่5ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '6':digitalWrite(Loads[3], HIGH);//เงื่อนไขที่6ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '7':digitalWrite(Loads[3], LOW);//เงื่อนไขที่7ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '8':digitalWrite(Loads[0], LOW);//เงื่อนไขที่8ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
digitalWrite(Loads[1], LOW);//เงื่อนไขที่8ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
digitalWrite(Loads[2], LOW);//เงื่อนไขที่8ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
digitalWrite(Loads[3], LOW);//เงื่อนไขที่8ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
flag=1;//flagเป็น1
break;/ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
}
}
FlowChart