งานแก้ปรับคะแนน

ส่วนประกอบArduino Based Home Automation Project via Bluetooth


1ฮาร์ดแวร์
   1.1 input
            -Arduino UNO  R3  
            -HC – 05 Bluetooth Module
           -smartphone
   1.2 output
          -load
2.ซอฟแวร์
อธิบายโค้ดทั้งฟังก์ชั่นของarduinoเองและฟังก์ชั่นพิเศษ
#include <SoftwareSerial.h>//เรียกใช้งาน

const int rxPin = 4;//ตัวแปร txPin มีค่าเป็น 4
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()//ค่าเริ่มต้น
{
   for (int i=0;i<4;i++)//กำหนดตัวแปร i=0,iน้อยกว่า4 เพิ่มทีละ1
    {
      pinMode(Loads[i], OUTPUT);//Loadsเป็น OUTPUT
    }
   mySerial.begin(9600);//
   for (int i=0;i<4;i++)//กำหนดตัวแปร i=0,iน้อยกว่า4เพิ่มทีละ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);//ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นHIGH
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
      case '1':digitalWrite(Loads[0], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นLOW
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '2':digitalWrite(Loads[1], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นHIGH
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
      case '3':digitalWrite(Loads[1], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
      case '4':digitalWrite(Loads[2], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นHIGH
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
      case '5':digitalWrite(Loads[2], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
      case '6':digitalWrite(Loads[3], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นHIGH
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
      case '7':digitalWrite(Loads[3], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
               flag=1;//flagเป็น1
               break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
      case '8':digitalWrite(Loads[0], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
               digitalWrite(Loads[1], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
               digitalWrite(Loads[2], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
               digitalWrite(Loads[3], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
               flag=1;//flagเป็น1
               break;/ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
     }

}
เขียน FlowChart












ความคิดเห็น

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

(7)Arduino Line Follower Robot(อ้างอิงhttps://www.electronicshub.org/arduino-line-follower-robot/)

งานที่3:สรุปQuantum Computing

(20)Arduino Projects: Arduino Decibel Meter(อ้างอิงhttp://tutorial45.com/arduino-projects-arduino-decibel-meter/)