|
บทที่ 2 Digital Output ด้วย LED 6 หลอด |
||
| [วิดีโอประจำบท] | ||
|
ในบทนี้ก็ไม่มีอะไรยากซับซ้อนนะครับ เป็นการต่อเนื่องจากบทก่อน แต่ครั้งนี้เราจะได้เขียนโค้ดกันจริงๆแล้วครับ จะสร้างโปรแกรมขึ้นมาเป็นของตัวเองแล้ว |
||
|
เริ่มต้นเราเตรียมต่อวงจรตามนี้เตรียมกันไว้ก่อนครับ |
||
|
เสร็จแล้วมาเขียนโปรแกรมกัน เปิด Arduino IDE ขึ้นมา ถ้ามีโปรแกรมเก่าค้างอยู่ก็กด New เลยครับ โปรแกรมจะเปิดหน้าต่างใหม่ว่างๆขึ้นมา ส่วนหน้าต่างเก่าก็ปิดไปได้เลย แล้วพิมพ์โค้ดตามนี้
จะเห็นว่าโค้ดเหมือนของบทที่แล้วเลย เพียงแต่มีมากกว่าแค่นั้นเอง ตรวจโค้ดว่าไม่ได้พิมพ์ตกหล่นแล้วก็อัพโหลดลงบอร์ดกันเลยครับ เมื่อบอร์ดเริ่มทำงานจะพบว่า LED หลอดแรกติดสว่าง 1 วินาที ดับ 1 วินาที จากนั้นหลอดที่สองก็จะติด 1 วินาที ดับ 1 วินาที แล้วหลอดที่ 3 ก็จะติด เป็นแบบนี้ไปเรื่อยๆ จนถึงหลอดสุดท้ายแล้วก็วนกลับมาหลอดแรกอีกครั้ง นั่นเพราะเราได้ยกโค้ดไฟกระพริบของบทที่แล้วมา แต่ด้วยภาษาซีจะทำงานตามคำสั่งทีละบรรทัดจากบนลงล่าง เมื่อหลอดแรกดับ มันลงมาเจอโค้ดสั่งให้หลอดที่สองสว่าง มันจึงทำงานตามลำดับไป เมื่อหมดคำสั่งมันจึงขึ้นไปทำบรรทัดแรกใหม่ (ยังจำกันได้มั๊ยครับว่าฟังก์ชั่น loop โปรแกรมมันจะทำงานวนไปเรื่อยๆไม่รู้จบ) |
||
|
ต่อไปลองลบโค้ดในบรรทัดที่ต่อจากบรรทัดที่มีสถานะ LOW ออกทั้งหมด จะได้โค้ดดังนี้
อัพโหลดโค้ดนี้ลงบอร์ด จะพบว่าเมื่อ LED หลอดแรกดับลง หลอดที่สองก็จะติดขึ้นมาทันที นั่นเพราะเราได้ลบ delay หลังจากสั่งให้มันดับออกแล้วไงครับ พอเจอโค้ดสถานะ LOW จ่ายไปหลอดดับปุ๊บก็ลงมาเจอโค้ดที่ให้จ่ายสถานะ HIGH หลอดต่อไปทันที ไม่มีการ delay ให้หยุดรอแล้ว |
||
|
ตัวอย่างสุดท้าย มีโค้ดตามนี้ครับ
ลองอัพโหลดโค้ดนี้ลงบอร์ด จะเห็นการทำงานของโค้ดโดย LED หลอดแรกจะสว่าง หลังจากนั้น 1 วินาที หลอดที่สองก็จะสว่างขึ้นอีกโดยที่หลอดแรกยังสว่างค้างอยู่ นั่นเพราะเราไม่ได้เขียนโค้ด LOW สั่งให้มันดับไงครับ มันก็จะคงสถานะ HIGH ตามสถานะล่าสุดที่มันมี ก็จะเป็นแบบนี้ไปจนครบทุกหลอด จนถึงคำสั่งชุดสุดท้ายที่เราสั่งให้ทุกขามีสถานะเป็น LOW ตอนนี้ทุกหลอดจะดับพร้อมกันหมด แล้วหยุด 1 วินาทีตามคำสั่ง delay ที่เราได้เขียนไว้ เมื่อไม่มีบรรทัดต่อไป ตัวโปรแกรมมันก็จะวนขึ้นไปทำบรรทัดแรกใหม่ แล้วทุกอย่างก็จะเกิดซ้ำอีกครั้ง |
||
|
บทที่ 2 ผ่านไปอีกแล้วครับ เห็นมั๊ยครับว่าการเขียนโปรแกรมควบคุมต่างๆขั้นพื้นฐานนั้นไม่ได้ยากอะไรเลย อยากให้มันทำงานก็เขียนให้มันทำ อยากใหม้มันหยุดก็เขียนสั่งให้มันหยุด อยากให้ค้างไว้ก็ delay ซะ นานเท่าไรก็ตามแต่ใจเราจะใส่เลขลงไป จากบทนี้ก็ลองเอาไปหัดเล่นกันอีกเช่นเคยครับ ให้หลอดกระพริบสลับซ้ายขวา, กระพริบสองหลอดนอกสุดแล้วไล่เข้ามา หรือจากในสุดไล่ออกไป หรือนอกเข้าในแล้วก็ต่อด้วยในออกนอก หรืออะไรก็สุดจะแล้วแต่จินตนาการกันอีกแล้วครับ |
||
| [ดาวน์โหลด] [กลับหน้าหลักของคอร์ส] |
||
Fitrox Electronics