การเขียนโปรแกรมใช้งานบอร์ด Arduino เพื่อการรับข้อมูลแบบดิจิตัล (Digital Input) และควบคุมการทำงานแบบมีเงื่อนไข (If Statement) เป็นกิจกรรมตัวอย่างของของการรับของการรับข้อมูลแบบดิจิตัลในรูปแบบ pull up และ pull down นอกจากนั้นได้ใช้การควบคุมแบบมีเงื่อนไข (If Statement) ของArduino IDE
จุดประสงค์
เพื่อศึกษาการรับข้อมูลแบบดิจิตัลและการควบคุมการทำงานแบบมีเงื่อนไข
รายการวัสดุอุปกรณ์ที่ต้องใช้
1) ตัวต้านทานค่าคงตัว 10 กิโลโอห์ม และ 220 โอห์ม
2) สายต่อพ่วงแบบ male to female จำนวน 5 เส้น
สายต่อพ่วงแบบ male to male จำนวน 5 เส้น
3) หลอดไดโอดเปล่ง ขนาด 5 มิลลิเมตร สีแดง
4) สวิตช์แบบกดติด ปล่อยดับ
5) บอร์ด Arduino Uno
6) สาย USB สำหรับโหลดโปรแกรม
1. ทำการศึกษาสัญลักษณ์ในวงจรอิเล็กทรอนิกส์ตามแผนผังการต่อวงจรการรับข้อมูลดิจิตอลแบบ Pull up กับบอร์ดอาดุยโน่
2. ทำการต่อวงจรการรับข้อมูลดิจิตอลแบบ Pull up บนบอร์ดการเรียนรู้ SNR EMBEDDED SYSTEM LEARNING BOARD
ทำการต่อไฟฟ้า 5V และ GND เข้าที่ขา 1 และ 3 ของสวิตช์ SW1
** ห้ามนำสาย 5V หรือ GND เข้ากับขา 2 ของตัวสวิตช์ เพราะจะทำให้เกิดการลัดวงจรทำให้วงจรเสียหายได้
ทำการต่อขา 2 ของสวิตช์กับขารับสัญญาณดิจิตอล D2
ทำการต่อสาย GND เข้ากับขา G ของ LED1
ทำการต่อสายสัญญาญดิจิตอล D13 เข้ากับขา S ของ LED1
3. ทำการเขียนโปรแกรมภาษา C แล้วอัพโหลดเข้าสู่บอร์ดอาดุยโน่ สังเกตการณ์เปลี่ยนแปลง ต่อจากนั้นกดดูค่าที่บอร์อาดุยโน่ส่งมาที่ Serial Monitor แล้วทำการบันทึกผล
ส่วน Header
กำหนดค่า ค่าของปุ่มกด โดยใช้ตัวแปร int
int buttonState = 0;
ส่วน void setup()
เนื่องจากเป็นการรับและส่งข้อมูลดิจิตอล จึงต้องมีการกำหนดว่าขาใดเป็นขารับหรือส่งข้อมูล โดยใช้คำสั่ง pinMode (pin ที่ต้องการใช้งาน, OUTPUT หรือ INPUT) เช่น
pinMode(2, INPUT); // กำหนดให้ขา D2 เป็นขารับข้อมูล
pinMode(13,OUTPUT);// กำหนดให้ขา D13 เป็นขาส่งข้อมูล
ตั้งค่าให้แสดงผลออกทางหน้าจอ monitor ที่อัตรา 9600 bits per second
Serial.begin(9600);
ส่วน void loop()
กำหนดคำว่า buttonState เป็นค่าที่อ่านได้จากขา digitalRead ดังนี้
buttonState = digitalRead(2);
ใช้คำสั่ง Serial.println เพื่อให้แสดงค่าจาก ข้อ 1 ที่หน้าจอคอมพิวเตอร์ผ่านสาย USB
Serial.println(buttonState);
ใช้คำสั่ง delay() โดยกำหนดเวลาเองตามความเหมาะสม
ทำการอัพโหลดโปรแกรมลงบอร์ด
ทำการกดสวิตช์ จากนั้นไปที่ Serial Monitor เพื่อดูค่าของสถานะของสวิตช์ขณะกดและปล่อย
เพิ่มคำสั่ง if else
คำสั่ง if เป็นคำสั่งใช้สำหรับตรวจสอบเงื่อนไข เพื่อสั่งให้โปรแกรมเลือกทำงานในปีกกาต่างๆ ตามผลลัพธ์ที่ได้จากการตรวจสอบเงื่อนไขของคำสั่ง โดยมีรูปแบบดังนี้
if (เงื่อนไข) {คำสั่งที่ต้องการให้ทำเมื่อเงือนไขเป็นจริง} else {คำสั่งที่ต้องการให้ทำเมื่อเงือนไขเป็นจริงเท็จ}
if (buttonState == 0)
{digitalWrite(13,LOW);
}
else
{digitalWrite(13,HIGH);
}
ทำการกดสวิทช์ในวงจร สังเกตการณ์เปลี่ยนแปลง ต่อจากนั้นกดดูค่าที่บอร์อาดุยโน่ส่งมาที่ Serial Monitor แล้วทำการบันทึกผล
ทำการเปลี่ยนการต่อวงจร ให้เป็นวงจรการรับข้อมูลดิจิตอลแบบ Pull down ตามแผนผังการต่อวงจรในรูป
9. ทำการทดลองซ้้ำตามข้อ 3 และข้อ 4