- Microcontroller Ep.4 -
การเขียนโปรแกรมบน Arduino เพื่อใช้ในการทำวงจรไฟกระพริบ หรือควบคุมหลอดแอลอีดี ใน Arduino นั้นจะมีพอร์ทสำหรับใช้ในการควบคุมที่มีการทำงานเพียงสองสถานะคือ มีไฟเลี้ยง กับไม่มีไฟเลี้ยง ซึ่งเราจะเรียกว่า ดิจิตอล อินพุท/เอาท์พุท พอร์ท (D I/O Port ) เนื่องจากว่าในพอร์ทเดียวกันนั้นเราสามารถตั้งค่าให้เป็นอินพุทหรือเอาท์พุทก็ได้
Arduino Uno R3
ในกรอบสีแดง คือ พอร์ทที่สามารถทำมาใช้เป็นดิจตอลเอาพุทได้ทั้งหมด ซึ่งเราสามารถเลือกใช้ได้โดยการเขียนโปรแกรมลงไปบน Arduino
การเขียนโปรแกรมบน Arduino นั้น จะแบ่งเป็นสองส่วนหลักๆ คือ ฟังก์ชั่น setup() ซึ่งโปรแกรมจะเข้ามาทำงานในฟังก์ชั่นนี้เพียงครั้งเดียวใช้ในการตั้งค่าอุปกรณ์ต่างๆของ Arduino และ loop() ซึ่ง Arduino จะเข้ามาทำงานในฟังก์ชั่นนี้ต่อเนื่องไปเรื่อยๆ
การทำงานของวงจรไฟกระพริบ ก็คือ การสั่งให้ Arduino นั้นเปิดและปิดหลอดแอลอีดีซ้ำๆกันไปเรื่อยๆ โดยที่ มีระยะห่างเป็นเวลาเท่าๆกัน ซึ่งเราจะต้องเริ่มด้วยการกำหนดว่าจะใช้พอร์ทไหนควบคุมแอลอีดีหลอดใด
int LED_1 = 13;
การกำหนดค่าตามตัวอย่างจะเป็นการใช้ ดิจิตอลพอร์ท 13 ในการควบคุมแอลอีดีหลอดที่ 1 จากนั้นทำการตั้งค่า พอร์ทให้เป็นเอาท์พุทด้วยคำสั่ง
pinMode(LED_1, OUTPUT);
ซึ่งเราจะเขียนไว้ในฟังก์ชั่น setup() เมื่อเรากำหนดโหมดในการทำงานของพอร์ทเสร็จสิ้นแล้วเราก็จะสั่งให้ Arduino นั้นทำการเปิดปิดหลอดแอลอีดีซ้ำๆกันไปเรื่อยๆในฟังก์ชั่น loop() โดยใช้คำสั่ง
digitalWrite(LED_1, HIGH);
delay(1000);
digitalWrite(LED_1, LOW);
delay(1000);
คำสั่ง
- digitalWrite( , ) นั้นจะใช้ในการกำหนดสถานะของพอร์ท ซึ่งเราจะใส่พอร์ทที่จะกำหนดและค่าสถานะ HIGH หรือ LOW
- delay( ) นั้นใช้ในการหน่วงเวลาก่อนที่จะทำตามบรรทัดต่อไปโดยที่จะมีหน่วยเป็นมิลลิวินาที(millisecond) ซึ่งในตัวอย่าง จะเป็นการหน่วงเวลาไว้ 1000 มิลลิวินาที หรือ 1 วินาที
การทำงาน
- สั่งให้ดิจิตอลพอร์ท 13 มีค่าสถานะเป็น HIGH ซึ่งจะทำให้หลอดแอลอีดีสว่าง
- หน่วงเวลาไว้ 1 วินาที
- สั่งให้ดิจิตอลพอร์ท 13 มีค่าสถานะเป็น LOW ซึ่งจะทำให้หลอดแอลอีดีดับ
- หน่วงเวลาไว้ 1 วินาที
เมื่อทำตามคำสั่งที่เขียนไว้ทั้งหมดแล้วก็จะกลับไปเริ่มทำงานที่ คำสั่งแรกคือ digitalWrite(LED_1, HIGH); อีกครั้งเป็นอย่างนี้ไปเรื่อยๆจนกว่าจะหยุดจ่ายไฟให้ Arduino



ไม่มีความคิดเห็น:
แสดงความคิดเห็น