การเปิด / ปิด LED ที่ซีดจาง - พื้นฐาน Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





โพสต์กล่าวถึงฟังก์ชั่น Arduino พื้นฐานที่เราเรียนรู้กระบวนการซีดจาง LED ON / OFF ผ่านการติดตั้งโค้ดพื้นฐานบางอย่าง

การสร้างเอฟเฟกต์ Fading

เรามาดูวิธีการใช้ฟังก์ชัน analogwrite () เพื่อใช้การเปิด / ปิดไฟ LED ที่ซีดจาง ฟังก์ชั่นนี้รวมพัลส์ PWM ไว้ในพินเอาต์เพื่อดำเนินการเฟดที่แนะนำผ่าน LED ที่เชื่อมต่อ



ฮาร์ดแวร์ที่จำเป็น

นอกจาก Arduino ของคุณแล้วยังต้องใช้วัสดุอื่น ๆ เช่นเขียงหั่นขนม LED และ 220 โอห์มตัวต้านทาน 1/4 วัตต์สำหรับการทดลอง

วงจร

ขั้นตอนที่เกี่ยวข้องสำหรับการซีดจางของ LED เปิด / ปิดที่เสนอด้วย Arduino มีดังนี้:



1. ต่อขั้วต่อที่ยาวกว่าของ LED เข้ากับขาเอาต์พุตดิจิตอล # 9 ผ่านตัวต้านทาน 220 โอห์มในอนุกรมในขณะที่ขั้วลบหรือขั้วที่สั้นกว่าของ LED กับกราวด์โดยตรงหรือรางจ่ายลบ

รหัส

เมื่อพิน # 9 ของบอร์ดถูกรวมเข้ากับพินบวก LED แล้วฟังก์ชัน setup () อาจถูกปล่อยให้อยู่คนเดียวและไม่จำเป็นต้องดำเนินการเพิ่มเติม

ส่วนประกอบรหัสลูปหลักในรูปแบบของ analogwrite () ต้องการการตอบรับสองสามส่วน: รายการแรกระบุถึงฟังก์ชันเกี่ยวกับพินที่จะใช้ในการเขียนและส่วนที่สองคือค่าของ PWM ที่จะกำหนด

สำหรับการเริ่มต้นเอฟเฟกต์เปิด / ปิดที่ซีดจางบน LED ที่เชื่อมต่อ PWM อาจเปลี่ยนแปลงได้อย่างสม่ำเสมอตั้งแต่ศูนย์ไปจนถึงสูงสุดหรือถึง 255 และในทางกลับกันทำให้เสร็จสิ้นการทำงานรอบเดียวทั้งหมด

โค้ดด้านล่างแสดงขนาด PWM ที่กำหนดผ่านตัวแปรที่ชื่อว่าความสว่าง นอกจากนี้ยังเพิ่มขึ้นโดยตัวแปร fadeAmount ในลูป

ในสถานการณ์ที่ความสว่างอยู่ที่ค่ามาก (0 หรือ 255) จะแจ้งให้จางลง

จำนวนที่จะกลายเป็นลบ

ความหมายถ้าสมมติว่า fadeAmount เป็น 5 มันจะเปลี่ยนเป็น -5 และ 5 ในกรณีที่ตั้งค่าเป็น 55 ในช่วงเวลาต่อมาในลูปการเปลี่ยนแปลงเหล่านี้จะส่งผลให้ความสว่างแตกต่างกันไปตามการกระทำเช่นกัน

ฟังก์ชัน analoguewrite () ทำให้เกิดการเปลี่ยนแปลงอย่างรวดเร็วในค่า PWM ดังนั้นการหน่วงเวลาในตอนท้ายของร่างจะควบคุมความเร็วในการซีดจาง
คุณสามารถทดลองกับค่าความล่าช้าเพื่อตรวจสอบการเปลี่ยนแปลงที่เกิดขึ้นในโปรแกรม
/ *
เลือนหายไป

ตัวอย่างนี้แสดงวิธีทำให้ LED จางลงบนขา 9
โดยใช้ฟังก์ชัน analogWrite ()

โค้ดตัวอย่างนี้เป็นสาธารณสมบัติ
* /

int led = 9 // พินที่ติด LED
int ความสว่าง = 0 // LED สว่างแค่ไหน
int fadeAmount = 5 // กี่จุดที่จะทำให้ LED จางลงโดย

// ขั้นตอนการตั้งค่าจะทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ต:
การตั้งค่าเป็นโมฆะ () {
// ประกาศพิน 9 เป็นเอาต์พุต:
PinMode (นำ, เอาท์พุท)
}

// รูทีนลูปทำงานซ้ำแล้วซ้ำเล่าตลอดไป:
ห่วงเป็นโมฆะ () {
// ตั้งค่าความสว่างของพิน 9:
analogWrite (led, ความสว่าง)

// เปลี่ยนความสว่างในครั้งต่อไปผ่านลูป:
ความสว่าง = ความสว่าง + จาง

// ย้อนกลับทิศทางของการซีดจางที่ส่วนท้ายของการจาง:
ถ้า (ความสว่าง == 0 || ความสว่าง == 255) {
fadeAmount = -fadeAmount
}
// รอ 30 มิลลิวินาทีเพื่อดูเอฟเฟกต์การลดแสง
ล่าช้า (30)
}




คู่ของ: วงจรหลอดไฟ LED ขนาดกะทัดรัด 110V ถัดไป: แรงดันสูงทรานซิสเตอร์กระแสสูง TIP150 / TIP151 / TIP152 เอกสารข้อมูล