top of page
ใบงานที่ 4.5
การเขียนโปรแกรมอ่านค่าจากพอร์ตแอนาลอกและการใช้ PWM
การทดลองที่ 1
เขียนโปรแกรมควบคุมระดับความสว่างของ LED ที่ต่ออยู่ที่ขาพอร์ตดิจิทัล D9 ซึ่งเป็นขาที่สามารถส่งสัญญาณ PWM ออกมาได้ด้วยคาสั่ง analogWrite(pin,value) โดยควบคุมความสว่างด้วยโพเทนธิโอมิเตอร์ที่ต่ออยู่ที่ขาพอร์ตแอนาลอก A5 ค่าที่อ่านได้จะมีค่าอยู่ระหว่าง 0-1023 แต่ค่าที่ใช้ควบคุมดิวตี้ไซเคิลอยู่ระหว่าง0-255 การดา เนินการลดค่าให้ใช้ค่าที่อ่านได้หารด้วย 4 ก่อนเอาไปใช้งาน
แบบที่ 1 ตรวจสอบค่าที่อ่านได้แบบค่าเดียวไม่เพิ่มช่วงตรวจสอบ
แปลงผังงานเป็นโปรแกรม จากผังงานสามารถเขียนเป็นโค้ดโปรแกรมควบคุม Arduino
ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
แปลงผังงานเป็นโปรแกรม จากผังงานสามารถเขียนเป็นโค้ดโปรแกรมควบคุม Arduino
การทดลองที่ 2
เขียนโปรแกรมควบคุมความสว่างแก่ LED จานวน 2 ตัวที่อยู่ที่ขา D9, D10 ซึ่งเป็นขาที่สามารถส่งสัญญาณ PWM ได้ โดยใช้โพเทนธิโอมิเตอร์เป็นตัวปรับความสว่างโดยให้ LED ทั้งสองตัวมีความสว่างที่ตรงข้ามกัน โดยให้มีการแสดงค่าสัญญาณแอนาลอกที่อ่านได้จากขาที่ต่อโพเทนธิโอมิเตอร์ออกทางพอร์ตอนุกรมแสดงผลที่จอคอมพิวเตอร์
ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
แปลงผังงานเป็นโปรแกรม จากผังงานสามารถเขียนเป็นโค้ดโปรแกรมควบคุม Arduino
งานที่ได้รับมอบหมาย
1. เขียนโปรแกรมไฟวิ่ง LED 4 ตัว (กำหนดรูปแบบเอง)โดยให้สามารถปรับความเร็วในการวิ่ง
ได้ด้วยโพเทนธิโอมิเตอร์ วงจรที่ใช้ทดลองเป็นดังรูป
ใบงานที่ 4.6
การเขียนโปรแกรมรับสวิตช์ทางพอร์ตแอนาลอก
การทดลองที่ 1
เขียนโปรแกรมอ่านค่าแอนาลอกจากการกดสวิตช์แต่ละตัวโดยแสดงผลที่จอคอมพิวเตอร์
ผ่านทางพอร์ตอนุกรม
ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
แปลงผังงานเป็นโปรแกรม จากผังงานสามารถเขียนเป็นโค้ดโปรแกรมควบคุม Arduino
การทดลองที่ 2
เนื่องจากค่าที่อ่านจากการกดสวิตช์เข้ามาทางพอร์ตแอนาลอกมีโอกาสที่ตัวเลขจะแกว่งได้ ดังนั้นหากเขียนโปรแกรมโดยวิธีการตรวจสอบการเท่ากันของค่าที่กา หนดมีโอกาสจะคลาดเคลื่อนได้ทางแก้ปัญหาการแกว่งของค่าทาได้โดยเพิ่มช่วงในการตรวจสอบแทนที่จะตรวจสอบเพียงค่าเดียว การทดลองนี้เป็นการทดลองการกดสวิตช์ที่รับเข้ามาทางพอร์ตแอนาลอกและมีการเพิ่มช่วงในการตรวจสอบเป็น 30 ค่าและแสดงผลเป็นข้อความว่าสวิตช์ใดถูกกด
หมายเหตุ
ค่าที่ใช้ตรวจสอบจะต้องใช้ผลจากการทดลองในการทดลองที่ 1 สาหรับตัวอย่างการทดลองที่
2 สมมุติว่าได้ค่าดังรูปที่ 4.6-7 (สาหรับการทดลองจริงให้ใช้ค่าจริงที่ได้จากการทดลอง)
ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
แปลงผังงานเป็นโปรแกรม จากผังงานสามารถเขียนเป็นโค้ดโปรแกรมควบคุม Arduino
แบบที่ 1 ตรวจสอบค่าที่อ่านได้แบบค่าเดียวไม่เพิ่มช่วงตรวจสอบ
แบบที่ 2 ตรวจสอบค่าที่อ่านได้ชนิดเพิ่มช่วงตรวจสอบ
งานที่ได้รับมอบหมาย
1. ปรับปรุงโปรแกรมในการทดลองที่ 2 โดยให้สามารถตรวจสอบการปล่อยคีย์ได้ด้วย และให้
สวิตช์แต่ละตัวควบคุมการติดดับของ LED ดังนี้












bottom of page