จุดประสงค์
เพื่อศึกษาการรับและส่งข้อมูลแบบอนาลอกของบอร์ดอาดุยโน่
รายการวัสดุอุปกรณ์ที่ต้องใช้
1) ตัวต้านทานปรับค่าได้ 10 กิโลโอห์ม
2) สายต่อพ่วงแบบ male to male จานวน 2 เส้น
3) แผ่นเบรดบอร์ด ชนิด 400 จุด
4) หลอดไดโอดเปล่งแสง ขนาด 5 มิลลิเมตร สีแดง
5) บอร์ด Arduino Uno
6) สาย USB สำหรับโหลดโปรแกรม
วิธีทำการทดลอง
1. ทำการศึกษาสัญลักษณ์ในวงจรอิเล็กทรอนิกส์ตามแผนผังการต่อวงจรการรับและส่งข้อมูลแบบอนาลอกของบอร์ดอาดุยโน่ ดังรูป
2. ทำการต่อวงจรการรับและส่งข้อมูลแบบอนาล็อกบนบอร์ดการเรียนรู้ SNR EMBEDDED SYSTEM LEARNING BOARD ดังรูป
ทำการต่อไฟฟ้า 5V และ GND เข้าที่ขา 1 และ 3 ของตัวต้านทานปรับค่าได้
** ห้ามนำสาย 5V หรือ GND เข้ากับขา 2 ของตัวต้านทานได้ เพราะจะทำให้เกิดการลัดวงจรทำให้วงจรเสียหายได้
ทำการต่อขา 2 ของตัวต้านทานปรับค่าได้กับขารับสัญญาณอนาล็อก A0
ทำการต่อสาย GND เข้ากับขา G ของ LED1
ทำการต่อสายสัญญาญดิจิตอล D9 เข้ากับขา S ของ LED1
3. ทำการเขียนโปรแกรมภาษาซีตามแผนผัง แล้วอัพโหลดเข้าสู่บอร์ดอาดุยโน่แล้วทำการปรับค่าตัวต้านทานปรับค่าได้ กดดูค่าที่บอร์อาดุยโน่ส่งมาที่ Serial Monitor พร้อมสังเกตการเปลี่ยนแปลง
Header
ทำการกำหนดค่าคงที่ โดยใช้คำสั่ง const int ดังนี้
const int analogInPin = A0; // กำหนดให้คำว่า analogInPin เป็นการรับ/ส่งค่าจากช่อง A0
const int analogOutPin = 9; //กำหนดให้คำว่า analogOutPin เป็นการรับ/ส่งค่าจากช่อง 9 (D9)
จากนั้นกำหนดค่าให้การรับและส่งข้อมูลเริ่มต้นเป็น 0 ดังนี้
int sensorValue = 0;
int outputValue = 0;
คำสั่งค่าคงที่ต่าง ๆ
ส่วน void setup() กำหนดดังนี้
ตั้งค่าให้แสดงผลออกทางหน้าจอ monitor ที่อัตรา 9600 bits per second
Serial.begin(9600);
void loop() {
กำหนดคำว่า sensorValue เป็นค่าที่อ่านได้จากขา analogInPin ดังนี้
sensorValue = analogRead(analogInPin);
กำหนดคำว่า outputValue เป็นค่าที่ถูกเทียบบัญญัติไตรยางศ์โดยใช้คำสั่ง map ที่มีรูปแบบเป็น map ( value, fromLow, fromHigh, toLow, toHigh ) ดังนี้
outputValue = map(sensorValue, 0, 1023, 0, 255);
เขียนสัญญาณอนาล็อกให้แสดงผลไปที่หลอด LED ที่เชื่อมต่อกับขา 9 โดยใช้คำสั่ง analogWrite(ขา , ค่า 0-255) ดังนี้
analogWrite(analogOutPin, outputValue);
เขียนคำสั่งให้แสดงผลออกทางหน้าจอ monitor โดยใช้คำสั่ง Serial.print หรือ Serial.println แล้วแต่กรณี ให้มีรูปแบบเป็น "sensor = ค่าที่อ่านจากsensor output = ค่าที่ถูกแปลง"
เช่น sensor = 500 output = 113
sensor = 300 output = 75
sensor = 350 output = 88
กำหนดค่าหน่วงเวลา 2 มิลลิวินาที