Arduino Dueเป็นบอร์ดที่ใช้ตัวควบคุม ARM ที่ออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และมือสมัครเล่น สถาปัตยกรรม ARM มีอิทธิพลอย่างมากในอุปกรณ์อิเล็กทรอนิกส์สมัยใหม่เราใช้งานได้ทุกที่เช่นโทรศัพท์มือถือไอพอดและคอมพิวเตอร์เป็นต้นหากใครต้องการออกแบบระบบอุตสาหกรรมต้องใช้คอนโทรลเลอร์ ARM ตัวควบคุม ARM มีความสำคัญมากเนื่องจากมีความคล่องตัว
เราได้กล่าวถึงพื้นฐานของ Arduino Due ในการเริ่มต้นใช้งาน Arduino Due แล้ว ในบทช่วยสอนนี้เราจะปรับความสว่างของ LED โดยใช้สัญญาณ PWM ที่สร้างโดย DUE สัญญาณ DUE PWM (Pulse Width Modulation) ให้แรงดันไฟฟ้าแปรผันเหนือแหล่งจ่ายไฟคงที่
การปรับความกว้างพัลส์:
ในรูปด้านบนหากสวิตช์ปิดอย่างต่อเนื่องในช่วงเวลาหนึ่งไฟ LED จะ 'ON' ในช่วงเวลานี้อย่างต่อเนื่อง หากสวิตช์ปิดเป็นเวลาครึ่งวินาทีและเปิดในครึ่งวินาทีถัดไป LED จะติดเฉพาะในครึ่งวินาทีแรกเท่านั้น ตอนนี้สัดส่วนที่ LED เปิดอยู่ตลอดเวลาเรียกว่าDuty Cycleและสามารถคำนวณได้ดังนี้:
Duty Cycle = เปิดเวลา / (เปิดเวลา + ปิดเวลา)
รอบการทำงาน = (0.5 / (0.5 + 0.5)) = 50%
ดังนั้นแรงดันขาออกเฉลี่ยจะเท่ากับ 50% ของแรงดันแบตเตอรี่
เป็นกรณีนี้เป็นเวลาหนึ่งวินาทีและเราจะเห็นไฟ LED ดับเป็นเวลาครึ่งวินาทีและ LED ติดสว่างอีกครึ่งวินาที ถ้าความถี่ของเวลาเปิดและปิดเพิ่มขึ้นจาก "1 ต่อวินาที" เป็น "50 ต่อวินาที" สายตาของมนุษย์ไม่สามารถจับความถี่ของการเปิดและปิดนี้ได้ สำหรับตาปกติจะเห็นไฟ LED สว่างขึ้นครึ่งหนึ่งของความสว่าง ดังนั้นเมื่อลดเวลา ON ลงมากขึ้น LED จึงดูเบาลงมาก
เราจะตั้งโปรแกรม DUE เพื่อรับ PWM และเชื่อมต่อ LED เพื่อแสดงการทำงาน
มีช่องสัญญาณ PWM 12 ช่อง (Pin 2 ถึง Pin 13) ใน DUE และเราสามารถใช้ช่องใดช่องหนึ่งหรือทั้งหมดก็ได้ ในกรณีนี้เราจะติดสัญญาณ PWM หนึ่งสัญญาณที่ PIN2
ส่วนประกอบ:
- Arduino เนื่องจาก
- แหล่งจ่ายไฟ (5v)
- LED
- ปุ่ม (สองชิ้น)
- ตัวต้านทาน1KΩ (สองชิ้น), ตัวต้านทาน220Ω
และ Arduino IDE - Arduino Nightly Software (https://www.arduino.cc/en/Main/Software)
แผนภาพวงจรและคำอธิบายการทำงาน:
วงจรเชื่อมต่อบนเขียงหั่นขนมตามแผนภาพวงจร อย่างไรก็ตามสิ่งที่ต้องใส่ใจในระหว่างการเชื่อมต่อขั้ว LED แม้ว่าปุ่มจะสามารถแสดงเอฟเฟกต์การตีกลับได้ แต่ในกรณีนี้จะไม่ทำให้เกิดข้อผิดพลาดมากมายดังนั้นเราไม่ต้องกังวลในครั้งนี้
การรับสัญญาณ PWM จาก DUE นั้นง่ายมาก Arduino IDE มีคุณสมบัติที่เป็นประโยชน์ซึ่งช่วยลดความยุ่งยากของโปรแกรมเมอร์ ถ้าเราไปเขียนโปรแกรมชิปเปล่าเราจำเป็นต้องตั้งค่าตัวควบคุม ATMEGA สำหรับสัญญาณ PWM ซึ่งไม่ใช่เรื่องง่าย เราต้องกำหนดการลงทะเบียนและการตั้งค่ามากมายสำหรับสัญญาณที่ถูกต้องอย่างไรก็ตามใน Arduino เราไม่จำเป็นต้องจัดการกับสิ่งเหล่านั้นทั้งหมด เราได้กล่าวถึงการมอดูเลตความกว้างพัลส์ด้วย ATmega32 ด้วย Arduino Uno และ IC ตัวจับเวลา 555
โดยค่าเริ่มต้นไฟล์ส่วนหัวและรีจิสเตอร์ทั้งหมดจะถูกกำหนดไว้ล่วงหน้าโดย Arduino IDE เราเพียงแค่ต้องเรียกมันและนั่นก็คือเราจะมีเอาต์พุต PWM ที่พินที่เหมาะสม เราต้องเรียกคำสั่งบางอย่างเพื่อรับสัญญาณ PWM ซึ่งจะกล่าวถึงด้านล่าง:
pinMode (2, OUTPUT) analogWrite (พิน, ค่า)
ก่อนอื่นเราต้องเลือกช่องสัญญาณเอาต์พุต PWM หรือเลือกพินจาก 12 พินของ DUE หลังจากนั้นเราต้องตั้งค่าพินนั้นเป็นเอาต์พุต เนื่องจากเราใช้ PIN2 เป็นเอาต์พุตเราจึงกำหนดให้เป็น OUTPUT ดังที่แสดงในบรรทัดแรก
ต่อไปเราต้องเปิดใช้งานคุณสมบัติ PWM ของ DUE โดยเรียกใช้ฟังก์ชัน“ analogWrite (pin, value) ” ที่นี่ 'พิน' แสดงหมายเลขพินที่เราต้องการเอาต์พุต PWM เราวางไว้เป็น '2' ดังนั้นที่ PIN2 เราจะได้รับเอาต์พุต PWM “ ค่า” คือค่าเปิดซึ่งจะแตกต่างกันไประหว่าง 0 (ปิดเสมอ) และ 255 (เปิดตลอดเวลา) เราสามารถเขียนค่าที่เหมาะสมในช่องว่างนี้สำหรับความสว่างที่ต้องการของ LED
เราติดปุ่มสองสามปุ่มเข้ากับบอร์ด DUE เพื่อเปลี่ยนค่านี้ ปุ่มหนึ่งใช้สำหรับเพิ่มค่าความสว่างและปุ่มอื่น ๆ ใช้สำหรับลดค่าความสว่าง เมื่อโปรแกรมครบกำหนดเสร็จแล้วเราสามารถปรับความสว่างได้โดยกดปุ่มเหล่านี้