Page 211 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 211
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น 27
void loop()
{
if (Serial.available() > 0)
{
incomingByte = Serial.read(); // read the incoming byte:
// ASCII '1'=49, '2'=50, '3'=51, '4'=52 and '5'=53
// calculate new delay time
If (incomingByte >= 49 && incomingByte <=53)
{ // echo to user
Serial.write(incomingByte);
Serial.println();
delayTime=(incomingByte-48)*100;
}
Serial.print("Press 1-5 for control speed of LED :");
}
digitalWrite(LED1_PIN, HIGH); // Turn on LED1
delay(delayTime); // wait for delayTime
digitalWrite(LED1_PIN, LOW); // Turn off LED1
delay(delayTime); // wait for delayTime
ผลการท างานของโปรแกรมที่ 4.7 แสดงได้ดังรูปที่ 4.8 โปรแกรมนี้จะพิมพ์ข้อความ Press 1-5 for
control speed of LED ออกทางพอร์ตอนุกรมแล้วรอให้ผู้ทดลองกดปุ่ม 1 ถึง 5 ที่แป้นคีย์บอร์ด โดยกด 1 คือให้
LED ติด 0.1 วินาที และดับ 0.1 วินาที และถ้ากด 5 จะท าให้ LED ติด 0.5 วินาที และดับ 0.5 วินาที ถ้าไม่ใช่ปุ่ม 1
ถึง 5 โปรแกรมจะไม่ตอบสนอง เมื่อกดแล้วโปรแกรมจะส่งรหัส ASCII ของปุ่มนี้กลับคืนเพื่อแจ้งผู้ทดลอง แล้วน า
ค่าที่ได้ไปค านวณค่าหน่วงเวลาการติดดับของ LED
หน่วยที่ 4 ฟังก์ชั่นพื้นฐานของ Arduino และการควบคุมหลอดไฟ LED เรียบเรียงโดยครูทันพงษ์ ภู่รักษ์