วันอาทิตย์ที่ 30 กันยายน พ.ศ. 2561

งานแก้สอบ อธิบายส่วนต่างๆของ Project

HARDWARE
1.Arduino Uno 
2.HC05 Bluetooth Module 
3.2N2222 ทรานซิสเตอร์ X4
4.Load
5.1N4007 ไดโอด
6.Relay
7.ตัวต้านทาน 10KΩ
8.ตัวต้านทาน 20KΩ
9.ตัวต้านทาน 1KΩ X4                                           
                                                                     INPUT

                                                       HC05 Bluetooth Module
                                                                     
                                                                       MCU
                                                               
                                                                 Arduino Uno
                                                                         
                                                                    OUTPUT

                                                                       LOAD
                                                                             
                                                                        Relay
                                                                         
SOFTWARE
#include <SoftwareSerial.h> //กำหนดเรียกใช้ใน ไลบรารี่ Bluetooth
const int rxPin = 4; //กำหนดไปที่ rxPinขา4
const int txPin = 2; //กำหนดไปที่ txPinขา2
SoftwareSerial mySerial(rxPin, txPin); //ไว้ใช้กำหนดค่าลงใน ไลบรารี่ Bluetooth
const int Loads[] = {9, 10, 11, 12}; //ตัวแปรอาเรย์
int state = 0; //นี่คือตัวแปล state = 0
int flag = 0; ////นี่คือตัวแปล flag = 0
void setup() //เป็นฟังก์ชั่นแรกที่เมื่อ Arduino ทำงานแล้วจะเรียกเพื่อทำการ setup ค่าตามจุดประสงค์ของฟังก์ชั่น 
{
for (int i=0;i<4;i++) //int=0<4และi+เรื่อยๆ
{
pinMode(Loads[i], OUTPUT); //สั่งกำหนดใช้ Load เก็บค่าตัวแปร อาเรย์ i เป็น OUTPUT ครับ
}
mySerial.begin(9600); //แสดงค่าออกทาง Serial Monitor
for (int i=0;i<4;i++) //int=0<4และi+เรื่อยๆ
{
digitalWrite(Loads[i], LOW); //Load[i]เป็นLOW
}
}
void loop()  //คำสั่งต่างๆในการทำงาน
{
if(mySerial.available() > 0) //ถ้าพูดถึง if คำสั่งนี้สามารถต่อไปได้เรื่อยๆจนกว่าจะพอใจ // ถ้าmySerial.available>0
{
state = mySerial.read(); //stateคือการอ่านค่า
flag=0; //flag คือ 0
}
switch(state) //มันจะตรวจสอบว่าตัวแปรมีค่าเท่ากับ case ใด
{
case '0':digitalWrite(Loads[0], HIGH); //กำหนดcase 0 แสดงค่า Load อาเรย์ 0 ตั้งเป็น High
flag=1; //ตัวนี้ตรงตัวเลยครับ flag=1 คือ flag เท่ากับ 1
break; //หยุดทำงาน
case '1':digitalWrite(Loads[0], LOW); //กำหนดcase 1 แสดงค่า Load อาเรย์ 0 ตั้งเป็น LOW
flag=1; //flag=1
break; //หยุดทำงาน
case '2':digitalWrite(Loads[1], HIGH); //กำหนดcase 2 แสดงค่า Load อาเรย์ 1 ตั้งเป็น HIGH
flag=1; //flag=1
break; //หยุดทำงาน
case '3':digitalWrite(Loads[1], LOW); //กำหนดcase 3 แสดงค่า Load อาเรย์ 1 ตั้งเป็น LOW
flag=1; //flag=1
break; //หยุดทำงาน
case '4':digitalWrite(Loads[2], HIGH); //กำหนดcase 4 แสดงค่า Load อาเรย์ 2 ตั้งเป็น HIGH
flag=1; //flag=1
break; //หยุดทำงาน
case '5':digitalWrite(Loads[2], LOW); //กำหนดcase 5 แสดงค่า Load อาเรย์ 2 ตั้งเป็น LOW
flag=1; //flag=1
break; //หยุดทำงาน
case '6':digitalWrite(Loads[3], HIGH); //กำหนดcase 6 แสดงค่า Load อาเรย์ 3 ตั้งเป็น HIGH
flag=1; //flag=1
break; //หยุดทำงาน
case '7':digitalWrite(Loads[3], LOW); //กำหนดcase 7 แสดงค่า Load อาเรย์ 3 ตั้งเป็น LOW
flag=1; //flag=1
break; //หยุดทำงาน
case '8':digitalWrite(Loads[0], LOW); //กำหนดcase 8 แสดงค่า Load อาเรย์ 0 ตั้งเป็น LOW
digitalWrite(Loads[1], LOW); //กำหนดแสดงค่า Load อาเรย์ 1 สั่งเป็น LOW
digitalWrite(Loads[2], LOW); //กำหนดแสดงค่า Load อาเรย์ 2 สั่งเป็น LOW
digitalWrite(Loads[3], LOW); //กำหนดแสดงค่า Load อาเรย์ 3 สั่งเป็น LOW
flag=1; //flag=1
break; //หยุดทำงาน
}

} FLOWCHART
                                                                         
*เสร็จครับ ปล.เทมอหน้าผมจะขยันกว่าเดิม --

ไม่มีความคิดเห็น:

แสดงความคิดเห็น