เเก้ผลสอบการประเมิน

Arduino Based Home Automation Project via Bluetooth

1แยกInput/Output

2.อธิบายSoftware
#include <SoftwareSerial.h>//การเรียกใช้ไรบรารี้

const int rxPin = 4;//กำหนด rxPin = 4
const int txPin = 2;//กำหนด txPin = 2

SoftwareSerial mySerial(rxPin, txPin);//กำหนดขาของ RX และ TX

const int Loads[] = {9, 10, 11, 12};//กำหนดตัวแปลแบบอะเลย์ 

int state = 0;//กำหนด state = 0
int flag = 0;//กำหนด flag = 0

void setup() 
{
   for (int i=0;i<4;i++)
    {
      pinMode(Loads[i], OUTPUT);//สร้าง Output แบบวนลูบจงกว่าจะครบ 4 คร้งโดยใช้ For
    }
   mySerial.begin(9600);//ตั้งค่าเริ่มต้นของ mySerial
   for (int i=0;i<4;i++)
    {
      digitalWrite(Loads[i], LOW)// กำหนดให้ D9 D10 D11 D12 = LOW โดยใช้วิธีวงลูป For
    }
   
}

void loop() 
{
    
    if(mySerial.available() > 0)
    {
      state = mySerial.read();//ถ้าบลูทูธมีการส่งค่า > 0 ให้ state = mySerial.read() เก็บค่า
      flag=0;//กำหนดค่า flag = 0
    }
 switch(state)//ตรวจสอบค่า state 
    {
      case '0':digitalWrite(Loads[0], HIGH);//ถ้า = 0 สั่ง D9 = HIGH
               flag=1;
               break;//break ถ้ายังเป็นจริงให้หลุดออกลูป 
      case '1':digitalWrite(Loads[0], LOW);//ถ้า = 1 สั่ง D9 = LOW
               flag=1;
               break;
      case '2':digitalWrite(Loads[1], HIGH);//ถ้า = 2 สั่ง D10 = HIGH
               flag=1;
               break;
      case '3':digitalWrite(Loads[1], LOW);//ถ้า = 3 สั่ง D10 = LOW
               flag=1;
               break;
      case '4':digitalWrite(Loads[2], HIGH);//ถ้า = 4 สั่ง D11 = HIGH
               flag=1;
               break;   
case '5':digitalWrite(Loads[2], LOW);//ถ้า = 5 สั่ง D11 = LOW
               flag=1;
               break;
      case '6':digitalWrite(Loads[3], HIGH);//ถ้า = 6 สั่ง D12 = HIGH
               flag=1;
               break;
      case '7':digitalWrite(Loads[3], LOW);//ถ้า = 7 สั่ง D12 = LOW
               flag=1;
               break;
      case '8':digitalWrite(Loads[0], LOW);//ถ้า = 8 สั่ง D9   = LOW
               digitalWrite(Loads[1], LOW);                              D10 = LOW
               digitalWrite(Loads[2], LOW);                              D11 = LOW
               digitalWrite(Loads[3], LOW);                              D12 = LOW
               flag=1;
               break;
     }
}
3.Flow chart

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

สัญลักษณ์Flowchart

Microcontroller 20

ใบรายงานผลการปฏิบัติงานระบบภาพ ครั้งที่ 3