กิจกรรมที่ 3.4 การเขียนโปรแกรมใช้งานบอร์ด Arduino เพื่อควบคุมการทางานแบบมีเงื่อนไข
(Switch case Statement) และแสดงผลผ่านหน้าจอ (Serial Output)
จุดประสงค์
เพื่อให้ผู้เรียนได้ศึกษาเกี่ยวกับการเขียนโปรแกรมการใช้งานบอร์ด Arduino สำหรับควบคุมการทำงานแบบมีเงื่อนไขและแสดงผลผ่านหน้าจอ
รายการวัสดุอุปกรณ์ที่ต้องใช้
1) ตัวต้านทานค่าคงตัว 10 กิโลโอห์ม
2) ตัวต้านทานปรับค่าตามแสง
3) สายต่อพ่วงแบบ male to male จานวน 3 เส้น
4) หลอดไดโอดเปล่ง ขนาด 5 มิลลิเมตร
5) บอร์ด Arduino Uno
6) สาย USB สาหรับโหลดโปรแกรม
วิธีการทดลอง
1. ทำการศึกษาสัญลักษณ์ในวงจรอิเล็กทรอนิกส์ตามแผนผังการต่อวงจรเพื่อควบคุมการทางานแบบมีเงื่อนไข Switch case statement กับบอร์ดอาดุยโน่
2. ทำการต่อวงจรเพื่อควบคุมการทำงานแบบมีเงื่อนไข Switch case ดังรูปที่ 4.10
3. ทำการเขียนโปรแกรมภาษาซี แล้วอัพโหลดเข้าสู่บอร์ดอาดุยโน่ สังเกตการณ์เปลี่ยนแปลง ต่อจากนั้นกดดูค่าที่บอร์อาดุยโน่ส่งมาที่ Serial Monitor แล้วทำการบันทึกผล
4. ทำการลดปริมาณแสงที่ตกระทบบนตัวต้านทานปรับค่าได้ ต่อจากนั้นกดดูค่าที่บอร์อาดุยโน่ส่งมาที่ Serial Monitor แล้วทำการบันทึกผล
5. ทำการเพิ่มปริมาณแสงที่ตกระทบบนตัวต้านทานปรับค่าได้ ต่อจากนั้นกดดูค่าที่บอร์อาดุยโน่ส่งมาที่ Serial Monitor แล้วทำการบันทึกผล
โปรแกรม Switch statement & Serial output
กำหนดค่า ต่ำสุดและสูงสุดของค่าที่อ่านได้เซนเซอร์ โดยการอ่านค่าจาก Serial Monitor จากนั้นนำค่าที่ได้ใส่ไว้ในส่วน Head เช่น
const int sensorMin = 0;
const int sensorMAx = 120;
ใช้คำสั่ง Serial.begin
ใช้คำสั่ง map() เพื่อแปลงค่าที่อ่านจากเซนเซอร์ออกเป็น 4 ระดับ ได้แก่ 0,1,2,3,4
เช่น int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
ใช้คำสั่ง switch…case และ break เพื่อสั่งให้บอร์อาดุยโน่ส่งมาที่ Serial Monitor ดังนี้
switch (range) {
case 0: // your hand is on the sensor
Serial.println("dark");
break;
case 1: // your hand is close to the sensor
Serial.println("dim");
break;
case 2: // your hand is a few inches from the sensor
Serial.println("medium");
break;
case 3: // your hand is nowhere near the sensor
Serial.println("bright");
break;
}
โดยหากเขียน code ถูกต้อง โปรแกรมจะทำงาน ดังนี้
เมื่อทำให้ตัวต้านทานรับแสงน้อยมาก เช่น นำมือไปบังไม่ให้แสงไปตกกระทบ ค่าจาก Serial Monitor จะแสดงคำว่า dark
เมื่อทำให้ตัวต้านทานรับแสงพอประมาณ เช่น นำมือไปบังทำให้เกิดเงาสลัวตกกระทบตัวต้านทาน ค่าจาก Serial Monitor จะแสดงคำว่า dim
เมื่อทำให้ตัวต้านทานรับแสงปกติ เช่น แสงจากหลอดไฟภายในห้องค่าจาก Serial Monitor จะแสดงคำว่า medium
เมื่อทำให้ตัวต้านทานรับที่สว่างมาก ๆ เช่น ฉายไฟให้ตกกระทบตัวต้านทาน ค่าจาก Serial Monitor จะแสดงคำว่า bright
โจทย์ท้าทาย
ให้ต่อวงจรควบคุม LED 4 ดวง ให้ติดตามความเข้มแสง
dark LED ติด 1 ดวง
dim LED ติด 2 ดวง
medium LED ติด 3 ดวง
bright LED ติด 4 ดวง