-เป็นการเขียนโปรแกรมเพื่อให้บอร์ดนิวคลีโอสื่อสารกับคอมพิวเตอร์ได้
โดยสามารถสั่งงานผ่าน serial monitor ของ Arduino
- เราได้นำโปรแกรมที่เรียนในคลาสมาประยุกต์แก้ไขเป็นโปรแกรมของเรา
แบ่งออกเป็นสองส่วนคือ 1.Output LED 8
ดวง มี 3 pattern 2.
Function ในการรับค่า switchจาก บอร์ดNX-100
ว่า On / Off
- มีการแบ่ง state เพื่อให้โปรแกรมสามารถเข้าใจได้ง่าย
- ใช้ switch case เพื่อ check ว่า ascii ที่รับเข้ามานั้นเป็นโหมดการทำงานไหน
- มีรูปแบบ show display ที่ LED 8 ดวง
สองแบบคือ 1. LED ติดจากซ้ายไปขวา 2.ไล่ติด
LED เปน binary เริ่มจากเลข 0 - 255 แสดงแบบ 8 bit
- ต้องการให้สามารถใส่คำสั่งเข้าแล้ว pattern ที่ Display LED เปลี่ยนทันที
โดยไม่ต้องรอให้วนลูป for จบก่อน
- เมื่อเลือกเข้าสู่โหมด 1 ทางหน้าจอ serial monitor ก็จะขึ้นหัวข้อมาให้เลือกอีกสามโหมด
- a ถ้าส่งค่า a ไปโหมดนี้จะเป็นการไปสั่งให้
LED วิ่งเป็นแพทเทิร์นๆหนึ่ง
- d ถ้าส่งค่า d
ไปดหมดนี้จะเป็นการสั่งให้ LED วิ่งอีกแพทเทิร์นหนึ่ง
- s ถ้าส่งค่า s ไปจะเป็นการออกจากโหมด 1
ไปสู่หัวข้อเริ่มต้นให้เลือกโหมดใหม่ว่าจะ 1 หรือ 2
- เมื่อเลือกเข้าสู่โหมด 2
จะเป็นการไปอ่านค่าว่า สวิสต์ On หรือ Off อยู่และจะแสดงผลออกมาทาง Serial monitor
จากนั้นก็จะออกจากโหมดนี้โดยอัตโนมัติ กลับไปเมนูเริ่มต้น
- เป็นการเขียนโปรแกรมให้สามารถรับค่าแรงดันไฟฟ้า แบบ Analog จาก VR adjust และนำมาแสดงในรูปของ หลอด LED
8 ดวง โดย ระดับของแรงดันไฟฟ้าจะแปรผันตรงกับจำนวน LED ที่ติด แรงดันไฟฟ้าเข้ามาน้อย LED ก็จะติดน้อย
และไล่ระดับไปเรื่อยๆ จนติดครบทั้ง 8 ดวง
- ในการเขียน
โปรแกรมนั้นก็ไม่มีอะไรมากครับ เริ่มต้น ก็แน่นอนต้องมีคำสั่งอ่านค่าสัญญาณ Analog
- เมื่อได้ค่า Analog มาแล้วก็จะเป็นในส่วนเงื่อนไขต่างๆ โดยกลุ่มผมทำการแบ่งสัญญาณ Analog
ออกเป็น 8 ช่วง จ่ายแรงดันมามากแค่ใหน ถึงช่วงใหน LED ก็จะติดถึงช่วงนั้น จะเห็นว่าในโค๊ดจะมี คำสั่ง If else อยู่ 9 ตัว โดยแบ่งเป็น คำสั่ง on ไฟ LED 8 ระดับ และ คำสั่งที่ 9 คือ off
LED
- ในโปรแกรมพวกผมเลือกใช้คำสั่ง BusOut
หรือก็คือ คำสั่งที่ทำให้แปลงค่าจากเลขฐานสิบเป็นเลขฐานสอง
แล้วส่งค่าออกไป On LED 8 bit ดังนั้นจึงได้ตัวเลขฐานสองตั้งแต่ 0 ถึง 255
-โดยพวกผมมอง LED ทั้งแปดตัว เป็นเลขฐานสอง 8 bit ดังนั้นในแต่ละฟังชั่นของฟังชั่น
If else ก็จะทำการจับ LED มาเท่ากับเลข
ฐานสิบค่าหนึ่งที่เมือส่งออกไปในรูปเลขฐานสอง 8 bit แล้วจะทำให้
LED on ตามจำนวนที่ต้องการ
Example แรงดันแรงมากแต่ยังไม่แรงที่สุดจะให้ LED ติด 7 ดวง ในฟังชั่น else if ก็ทำการจับLED
มาเท่ากับ 127 เพราะเมื่อแปลงเป็นเลขฐานสอง 8 bitแล้วจะได้ 01111111 ไฟจะติดแค่เจ็ดดวง
2. VDO การทำงานของโปรแกรม
เมื่อทำการหมุนปุ่ม VR adjust มากขึ้นเรื่อยๆ LED ก็จะติดเรียงกันไปเรื่อยๆตามระดับแรงดันไฟฟ้าที่
VR adjust ปล่อยออกมา ตั้งแต่ 0 V - 3.3 V Display เป็น LED 8 ดวง คิดเป็น 8 ระดับ
ค่า VR adjust = 0 V => LED ทั้ง 8 ดวงดับหมด
ค่า VR adjust >= 3.3 V => LED ทั้ง 8 ดวงติดครบทุกดวง