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