Circuit Diagram
Hardware
1. Arduino uno R3
2. Module Relay
3. HC – 05 Bluetooth Module
4. โทรศัพท์
Software
#include <SoftwareSerial.h>
//อ่านไฟล์จากไดเร็กทอรี
const int rxPin = 4;//ตัวแปร rxPin เท่ากับ 4
const int txPin = 2;//ตัวแปร txpin เท่ากับ 2
SoftwareSerial mySerial(rxPin, txPin);//SoftwareSerialกำหนกพอร์ต rxPin และ txPin
const int Loads[] = {9, 10, 11, 12};//Loads มีค่าเท่ากับ 9.10.11.12
int state = 0;//state มีค่าเท่ากับ 0
int flag = 0;//flag มีค่าเท่ากับ 0
void setup()//ประกาศค่าเริ่มต้น
{
for (int i=0;i<4;i++)//กำหนดไห้ i เท่ากับ 0 ถ้า i น้อยกว่า 4 i จะเพิ่มขึ้นทีละ 1
{
pinMode(Loads[i], OUTPUT);//ขา Loads เป็น OUTPUT
}
mySerial.begin(9600);
for (int i=0;i<4;i++)//กำหนดไห้ i เท่ากับ 0 ถ้า i น้อยกว่า 4 i จะเพิ่มขึ้นทีละ 1
{
digitalWrite(Loads[i], LOW);//loade เป็น 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);//ไห้ loads เป็น 0 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '1':digitalWrite(Loads[0], LOW);//ไห้ loads เป็น 0 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '2':digitalWrite(Loads[1], HIGH);//ไห้ loads เป็น 1 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '3':digitalWrite(Loads[1], LOW);//ไห้ loads เป็น 1 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '4':digitalWrite(Loads[2], HIGH);//ไห้ loads เป็น 2 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '5':digitalWrite(Loads[2], LOW);//ไห้ loads เป็น 2 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '6':digitalWrite(Loads[3], HIGH);//ไห้ loads เป็น 3 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '7':digitalWrite(Loads[3], LOW);//ไห้ loads เป็น 3 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '8':digitalWrite(Loads[0], LOW);//เงื่อนไข 8 digitalWrite ไห้ loads 0 LOW
ด digitalWrite(Loads[1], LOW);//digitalWrite ไห้ loads 1 LOW
digitalWrite(Loads[2], LOW);//digitalWrite ไห้ loads 2 LOW
digitalWrite(Loads[3], LOW);//digitalWrite ไห้ loads 3 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
}
}
flowchart
ผิดพลาดประการใด ขออภัยมา ณ ที่นี้
1. Arduino uno R3
2. Module Relay
3. HC – 05 Bluetooth Module
4. โทรศัพท์
#include <SoftwareSerial.h> //อ่านไฟล์จากไดเร็กทอรี | |
const int rxPin = 4;//ตัวแปร rxPin เท่ากับ 4 | |
const int txPin = 2;//ตัวแปร txpin เท่ากับ 2 | |
SoftwareSerial mySerial(rxPin, txPin);//SoftwareSerialกำหนกพอร์ต rxPin และ txPin | |
const int Loads[] = {9, 10, 11, 12};//Loads มีค่าเท่ากับ 9.10.11.12 | |
int state = 0;//state มีค่าเท่ากับ 0 | |
int flag = 0;//flag มีค่าเท่ากับ 0 | |
void setup()//ประกาศค่าเริ่มต้น | |
{ | |
for (int i=0;i<4;i++)//กำหนดไห้ i เท่ากับ 0 ถ้า i น้อยกว่า 4 i จะเพิ่มขึ้นทีละ 1 | |
{ | |
pinMode(Loads[i], OUTPUT);//ขา Loads เป็น OUTPUT | |
} | |
mySerial.begin(9600); | |
for (int i=0;i<4;i++)//กำหนดไห้ i เท่ากับ 0 ถ้า i น้อยกว่า 4 i จะเพิ่มขึ้นทีละ 1 | |
{ | |
digitalWrite(Loads[i], LOW);//loade เป็น 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);//ไห้ loads เป็น 0 HIGH | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '1':digitalWrite(Loads[0], LOW);//ไห้ loads เป็น 0 LOW | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '2':digitalWrite(Loads[1], HIGH);//ไห้ loads เป็น 1 HIGH | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '3':digitalWrite(Loads[1], LOW);//ไห้ loads เป็น 1 LOW | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '4':digitalWrite(Loads[2], HIGH);//ไห้ loads เป็น 2 HIGH | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '5':digitalWrite(Loads[2], LOW);//ไห้ loads เป็น 2 LOW | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '6':digitalWrite(Loads[3], HIGH);//ไห้ loads เป็น 3 HIGH | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '7':digitalWrite(Loads[3], LOW);//ไห้ loads เป็น 3 LOW | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
case '8':digitalWrite(Loads[0], LOW);//เงื่อนไข 8 digitalWrite ไห้ loads 0 LOW | |
ด | digitalWrite(Loads[1], LOW);//digitalWrite ไห้ loads 1 LOW |
digitalWrite(Loads[2], LOW);//digitalWrite ไห้ loads 2 LOW | |
digitalWrite(Loads[3], LOW);//digitalWrite ไห้ loads 3 LOW | |
flag=1;//flag เท่ากับ 1 | |
break;//คำสั่งไห้ออกจาก loop | |
} | |
}
flowchart
ผิดพลาดประการใด ขออภัยมา ณ ที่นี้
|