เริ่มต้น สอน Arduino : คำสั่งตรวจสอบ เงื่อนไข if else
เราสามารถสั่งให้โปรแกรมหรือบอร์ด Arduino ของเราตรวจสอบเงื่อนไขต่าง ๆ ที่เราต้องการได้ เช่น ตรวจสอบอุณหภูมิ ถ้ามีค่าเกินกำหนดให้สั่งเปิดพัดลมอัตโนมัติ หรือถ้าอุณหภูมิต่ำกว่ากำหนดให้ปิดพัดลมอัตโนมัติ ซึ่งบางกรณีเงื่อนไขซับซ้อนมาก ๆ Arduino ก็สามารถทำได้ตามที่เราต้องการ
การเปรียบเทียบจะให้ค่าออกมาเพียง 2 ค่า คือ ถูกหรือผิด เท่านั้น (true false)
การใช้งานก็ใช้สัญลักษณ์ ที่เราคุ้นเคยกันดีอยู่แล้ว เช่น เครื่องหมาย
> มากกว่า
< น้อยกว่า
>= มากกว่าหรือเท่ากับ
<= น้อยกว่าหรือเท่ากับ
!= ไม่เท่ากับ
== เท่ากับ
คำสั่งเปรียบเทียบเป็นอีกพื้นฐานที่จำเป็นในการเขียนโปรแกรมควบคุม Arduino ซึ่งก็เขียนได้ไม่ยากดังนี้
if(การเปรียบเทียบ){
ถ้า การเปรียบเทียบเป็นจริง ทำคำสั่งในวงเล็บนี้ ถ้าไม่จริง ก็ข้ามคำสั่งในวงเล็บนี้ไปเลย
}
เช่น
1 2 3 4 5 6 7 8 9 10 |
void setup() { Serial.begin(9600); } void loop() { int temp = 30; if (temp >= 35) { Serial.println("temp is hot"); } } |
ในกรณีที่ต้องการเปรียบเทียบเงื่อนไขหลายชั้น ให้เพิ่มคำสั่ง else if เข้าไปด้วย เช่น
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void setup() { Serial.begin(9600); } void loop() { int temp = 30; if (temp >= 35) { Serial.println("temp is hot"); }else if(temp >= 25){ Serial.println("temp is Good"); }else if(temp==0){ Serial.println("temp is ICE"); } } |
และถ้าต้องการให้ทำงานในกรณีที่ไม่เข้าเงื่อนไขใดเลย ให้เพิ่มคำสั่ง else ปิดท้าย เช่น
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void setup() { Serial.begin(9600); } void loop() { int temp = 30; if (temp > 35) { Serial.println("temp is hot"); }else if(temp > 25){ Serial.println("temp is Good"); }else{ Serial.println("temp is Cool"); } } |
เราสามารถใช้คำสั่ง ตรรกกะร่วมกับคำสั่ง if เพื่อเพิ่มความกระชับให้คำสั่ง if ได้ โดยสัญลักษณ์
&& เครื่องหมายและ (อ่านว่า AND)
|| เครื่องหมายหรือ (อ่านว่า OR)
เพื่่อให้เข้าใจความหมายได้ง่าย ลองคิดดูว่าจะซื้ออะไรบ้างจากคำถามนี้
ถ้าบอกว่า : ให้ซื้อข้าวกระเพรา และ ไข่ดาว : ผลลัพธ์คือ ได้กระเพรากับไข่ดาว
ถ้าบอกว่า : ให้ซื้อข้าวกระเพรา หรือ ไข่ดาว : ผลลัพธ์คือ ได้กระเพรา ไม่ก็ได้ ไข่ดาว อันใดอันหนึ่ง
จะสังเกตว่า ถ้าใช้คำสั่ง “และ” แปลว่าเอาทั้งหมด เป็นจริงทั้งหมด ถึงจะถูก true
ถ้าใช้คำสั่ง “หรือ” แปลว่าเอาแค่อันใดอันหนึ่ง เป็นจริงแค่บางส่วน ก็จะถูก true
ตัวอย่างการใช้ ตรรกกะร่วมกับคำสั่ง if
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void setup() { Serial.begin(9600); } void loop() { int temp = 30; if ((temp >= 35)&&(temp <= 100)) { Serial.println("temp is hot"); }else if((temp==0)||(temp==100) || (temp==200)){ Serial.println("temp is Over"); }else{ Serial.println("temp is Cool"); } } |
บทเรียนก่อนหน้าบทเรียนถัดไป
3 Response Comments
ขอบคุณสำหรับบทเรียนทึ่ทำให้มองภาพออกและเขัาใจง่าย
ขอบคุณสำหรับขั้นตอนการสอนที่ทำให้ดูง่ายและเห็นภาพ
ขอบคุณครับที่ทำให้เข้าใจ