วันอังคารที่ 25 กันยายน พ.ศ. 2561

Mini Project Car Control By Bluetooth


wiring diagram



Block Diagram

รูปที่เสร็จแล้ว




โค้ดที่ใช้

#include <SoftwareSerial.h>  // ประกาศเรียกใช้ไรบารี

SoftwareSerial BTSerial(9,10); //  เป็นการติดต่อสื่อสารกับพอร์ด อนุกรม โดยอยู่ที่ขา 9,10
int toy;  //  เป็นชนิดข้อมูลจำนวนเต็ม ในทางคณิตศาสตร์
int m1 = 2;  // กำหนดตัวแปร m1 แทนมอเตอร์1 ใช้ขาที่2
int m2 = 3;  // กำหนดตัวแปร m2 แทนมอเตอร์1 ใช้ขาที่3
int m3 = 4;  // กำหนดตัวแปร m3 แทนมอเตอร์1 ใช้ขาที่4
int m4 = 6;  // กำหนดตัวแปร m4 แทนมอเตอร์1 ใช้ขาที่6
void setup() {
  Serial.begin(9600); // กำหนดอัตราบอดของการรับส่งข้อมูลหน่วยเป็นบิตต่อวินาที
  pinMode(m1,OUTPUT);  
  pinMode(m2,OUTPUT);
  pinMode(m3,OUTPUT);
  pinMode(m4,OUTPUT);
  digitalWrite(m1, LOW); 
  digitalWrite(m2, LOW); 
  digitalWrite(m3, LOW); 
  digitalWrite(m4, LOW); 


  BTSerial.begin(9600); 
}

void loop() {
  if (BTSerial.available()) // ใช้ตรวจจสอบบัฟเฟอร์รับข้อมูลไว้หรือไม่โดยจะคืนค่าจำนวนไบต์ที่อยู่ในบัฟเฟอร์

    Serial.write(BTSerial.read()); //ส่งค่าที่ได้รับจากพอร์ต่ออนุกรมออกมาชีเรียว



   if (Serial.available())// ใช้ตรวจจสอบบัฟเฟอร์รับข้อมูลไว้หรือไม่โดยจะคืนค่าจำนวนไบต์ที่อยู่ในบัฟเฟอร์


    BTSerial.write(Serial.read());//ส่งค่าที่ได้รับจากพอร์ต่ออนุกรมออกมาชีเรียว

   if(BTSerial.available()>0){ใช้ตรวจจสอบบัฟเฟอร์รับข้อมูลไว้หรือไม่โดยจะคืนค่าจำนวนไบต์ที่อยู่ในบัฟเฟอร์

    int inEI=BTSerial.read();//รับค่าตัวแปร โดยให้ EI แทนชื่อแอพพิเคชั้นที่ใช้
   
    switch(inEI){// พิจารณาจากการติดต่อสื่อสารกับพอร์อนุกรม
     case 'a': //กรณีที่a
     digitalWrite(m1, HIGH); 
     delay(500);
     digitalWrite(m1, LOW); 
     break;// เป็นคำสั่งที่ใช้ในการหลุดออกจากเงื่อนไข โดยไม่ต้องทำงานจนจบบล๊อกของคำสั่ง
      case 'b'://กรณีที่b
     digitalWrite(m2, HIGH);
     delay(500);
     digitalWrite(m2, LOW); 
     break;
      case 'e'://กรณีที่e
     digitalWrite(m3, HIGH);  
     break;
      case 'd'://กรณีที่d
     digitalWrite(4, HIGH);  
    }
   }
  
}

ประโยค switch หนึ่งประโยคจะมีกี่ case ก็ได้ หรือไม่มีเลยก็ได้ และอาจมี default เป็นตัวเลือกเสริม

 ประโยคคำสั่ง break 

 เป็นคำสั่งที่ใช้ในการหลุดออกจากเงื่อนไข โดยไม่ต้องทำงานจนจบบล๊อกของคำสั่ง
ตัวอย่างตามโค้ดด้านบน เช่น

 การนำคำสั่ง break มาซ้อนไว้ใน case ต่าง ๆ ของคำสั่ง switch จะช่วยให้โปรแกรมไม่ล่วงล้ำเข้าไปทำใน case ที่อยู่ถัดไป แต่ถ้าไม่มีประโยคคำสั่ง break เมื่อทำ case ใด ๆ เสร็จเรียบร้อยแล้ว คอมไพล์เลอร์ก็จะให้ไปทำใน case ที่อยู่ถัดไปเรื่อย ๆ จนกว่าจะจบบล๊อกของประโยคคำสั่ง switch จากนั้นจะทำงานต่อไป ในประโยคคำสั่งที่อยู่ถัดไป


https://www.youtube.com/watch?v=RHrPjZA6qJw





ข้อมูลของแอปบนมือถือที่ใช้


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

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

หลักของมาตรฐาน ISO 9001:2000      หลักการมาตรฐานของ ISO 9001:2000 จะเป็นการระบุถึงข้อกำหนดที่ใช้ในระบบบริหารที่เกี่ยวกับคุณภาพ โดยเป้าหมา...