งานที่มอบหมาย ครูประภาส

บทความประกอบการเรียนรู้ => ไมโครคอนโทรลเลอร์ (Arduino) => ข้อความที่เริ่มโดย: admin ที่ เมษายน 20, 2014, 11:58:55 AM

หัวข้อ: งานครั้งที่ 6 เขียนโปรแกรมควบคุม LED โดยการสื่อสารผ่านพอร์ตอนุกรม
เริ่มหัวข้อโดย: admin ที่ เมษายน 20, 2014, 11:58:55 AM
เขียนโปรแกรมควบคุม LED โดยการสื่อสารผ่านพอร์ตอนุกรม
ฟังก์ชั่นอยู่ในกลุ่ม Serial http://arduino.cc/en/Reference/Serial (http://arduino.cc/en/Reference/Serial)
-Serial.begin() http://arduino.cc/en/Serial/Begin (http://arduino.cc/en/Serial/Begin)
-if (Serial) http://arduino.cc/en/Serial/IfSerial (http://arduino.cc/en/Serial/IfSerial)
-Serial.available() http://arduino.cc/en/Serial/Available (http://arduino.cc/en/Serial/Available)
-Serial.read() http://arduino.cc/en/Serial/Read (http://arduino.cc/en/Serial/Read)
-Serial.print() http://arduino.cc/en/Serial/Print (http://arduino.cc/en/Serial/Print)
-Serial.println() http://arduino.cc/en/Serial/Println (http://arduino.cc/en/Serial/Println)
-Serial.flush() http://arduino.cc/en/Serial/Flush (http://arduino.cc/en/Serial/Flush)

ฟังก์ชั่นทั่วไป
-pinMode() http://arduino.cc/en/Reference/PinMode (http://arduino.cc/en/Reference/PinMode)
-digitalWrite() http://arduino.cc/en/Reference/DigitalWrite (http://arduino.cc/en/Reference/DigitalWrite)
-delay() http://arduino.cc/en/reference/delay (http://arduino.cc/en/reference/delay)

โจทย์โปรแกรม
-เขียนโปรแกรมสื่อสารระหว่างบอร์ดทดลองกับคอมพิวเตอร์แสดงสถานะการทำงานปัจจุบัน
-สั่งการให้ LED ติดดับตามเงื่อนไขของข้อมูลที่รับเข้ามาจากคอมพิวเตอร์ที่กำหนดได้ โดยมีเงื่อนไขไม่ต่ำกว่า 5 เงื่อนไข (แต่ละกลุ่มจะต้องมีเงื่อนไขในการทำงานที่แตกต่างกัน)
-โปรแกรมรายละเอียดพิเศษรายกลุ่ม (แจ้งให้ทราบเมื่อถึงชั่วโมงเรียน)

ผังขาต่อใช้งานของ Arduino Nano
(http://www.praphas.com/PhotoForum/arduino/nano.jpg)

วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้บอร์ด Arduino
(http://www.praphas.com/PhotoForum/arduino/Lab-06-01.png)

วงจรที่ใช้ในการทดลองสำหรับผู้ที่ใช้ไอซี ATmega328 (ที่มี Boot Loader Arduino)
(http://www.praphas.com/PhotoForum/arduino/Lab-06-02.png)

บริเวณใช้งานบอร์ดทดลอง
(http://www.praphas.com/PhotoForum/arduino/Lab-06-03.png)

ตัวอย่างโปรแกรม
โค๊ด: [Select]
int x = 0;
void setup()
{
  Serial.begin(9600);
  delay(500);
}
void loop()
{
  if (Serial.available() > 0)
  {
    x = Serial.read();
    Serial.print("MCU is received: ");
    Serial.println(x);
  }
}