สารบัญ:

วงจรไฟ LED ปุ่มกดคู่: 5 ขั้นตอน
วงจรไฟ LED ปุ่มกดคู่: 5 ขั้นตอน

วีดีโอ: วงจรไฟ LED ปุ่มกดคู่: 5 ขั้นตอน

วีดีโอ: วงจรไฟ LED ปุ่มกดคู่: 5 ขั้นตอน
วีดีโอ: วงจรไฟ LED วิ่ง 8 ช่อง 20โหมด 5V-12V-24V 600mA 2024, พฤศจิกายน
Anonim
วงจรไฟ LED ปุ่มกดคู่
วงจรไฟ LED ปุ่มกดคู่

ฉันจะพยายามอย่างเต็มที่เพื่อให้เสียงเหมือนมือเก่าในการเขียนโปรแกรมและทำงานกับ Arduinos แต่ตามจริงแล้วฉันเพิ่งได้รับการแนะนำให้รู้จักกับสิ่งเหล่านี้เมื่อไม่กี่วันก่อนด้วยเหตุนี้ฉันจึงมีความสุขอย่างมากในการสร้างและเขียนโปรแกรมของฉัน โครงการของตัวเองเร็ว ๆ นี้

โปรเจ็กต์นี้เริ่มต้นจากความกล้าจากเพื่อนวิศวกรของพ่อแม่ฉันว่าฉันเป็นเด็กฝึกงานมาสองสามวันแล้ว ฉันชอบความท้าทาย มีบางอย่างที่ท้าทายที่ทำให้ฉันตื่นเต้นและรู้สึกพึงพอใจอย่างท่วมท้นเมื่อฉันทำสำเร็จ และฉันก็หวังว่าคุณจะทำเช่นกัน

ในคำแนะนำนี้เป็นครั้งแรกของฉัน: D ฉันจะแสดงวิธีเชื่อมต่อวงจรสำหรับสิ่งที่ฉันเรียกว่าโครงการ Mark One ของฉันซึ่งเป็นวงจรที่ปุ่มกดสองปุ่มควบคุมความสว่างของ LED (อันหนึ่งจะเพิ่มความสว่างและอันที่สอง จะลดลง) รวมถึงวิธีการตั้งโปรแกรมและฉายผลลัพธ์ของคุณบนเครื่องมือมอนิเตอร์แบบอนุกรม ฉันจะแสดงให้คุณเห็นอย่างชัดเจนถึงสิ่งที่คุณต้องการรวมถึงคำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการสร้างมัน โปรเจ็กต์ของฉันรวมองค์ประกอบของทั้งปุ่มกด- และบทเรียนเฟดบนเว็บไซต์ Instrucables และมีการแสดงความคิดเห็นอย่างหนักเพื่อความสะดวกของฉันเองและของคุณ หากคุณยังไม่คุ้นเคยกับภาษาโปรแกรมโปรดใช้เวลาสักครู่ มันคุ้มค่า

สนุก!

ขั้นตอนที่ 1: วัสดุ + เครื่องมือ:

วัสดุ + เครื่องมือ
วัสดุ + เครื่องมือ

วัสดุ:

1. บอร์ด Arduino (ฉันใช้ Mega 2560)

2. เขียงหั่นขนม (มีอย่างน้อย 60 แถว)

3. LED หนึ่งดวง (สีอะไรก็ได้ ฉันใช้สีแดง)

4. ปุ่มกดมาตรฐาน 2 ปุ่ม

5. สายสีน้ำเงินห้าเส้น (เพื่อระบุกระแสลบ)

6. สายสีแดงสามเส้น (เพื่อระบุกระแสบวก)

7. สายสีส้ม สีเขียว และสีเหลือง 1 เส้น (สายควบคุม PWM เพื่อแยกความแตกต่างระหว่าง 3 องค์ประกอบหลัก)

8. สายขาว 4 เส้น (ต่อวงจร)

9. ตัวต้านทาน 10K โอห์มสามตัว (น้ำตาล, ดำ, ส้ม, ทอง)

เครื่องมือ:

1. แล็ปท็อป

2. แอป Arduino IDE (ดาวน์โหลดได้จาก Microsoft Play store

หรือ

2. Arduino สร้างเว็บไซต์ออนไลน์ (หากเป็นสิ่งที่คุณต้องการ)

3. มือว่องไว

4. Google (เว็บไซต์ที่สอนได้ช่วยฉันได้มาก)

5. ความอดทนสูง;D

ขั้นตอนที่ 2: ตั้งค่าวงจรแอนะล็อกของคุณ:

ตั้งค่าวงจรอนาล็อกของคุณ
ตั้งค่าวงจรอนาล็อกของคุณ

ความแตกต่างระหว่างระบบแอนะล็อกและดิจิทัลคือระบบแอนะล็อกจะเข้ารหัสสำหรับสถานะต่างๆ เช่น ความสว่างที่แตกต่างกันของ LED ในขณะที่โค้ดดิจิทัลเท่านั้นสำหรับสองสถานะ (เปิดหรือปิด)

วงจรนี้เป็นวงจรอนาล็อกเพราะเป้าหมายคือทำให้แสงเปลี่ยนความสว่าง ไม่ใช่แค่เปิดหรือปิด

ในการตั้งค่า:

1. ใช้สายสีน้ำเงิน (สำหรับขั้วลบ) หนึ่งเส้นแล้วเสียบ (บน Arduino) ที่พอร์ต GND (กราวด์) ใดพอร์ตหนึ่งที่พอร์ตจ่ายไฟ และเชื่อมต่อที่ใดก็ได้บนเขียงหั่นขนมในแถวถัดจากกราวด์เชิงลบสีน้ำเงิน

2. นำลวดสีแดง (บวก) หนึ่งเส้นแล้วเสียบ (บน Arduino) ที่พอร์ต 5V ที่พอร์ตจ่ายไฟและเชื่อมต่อกับแถวบนเขียงหั่นขนมที่อยู่ติดกับสายกราวด์บวกสีแดง [ทำความคุ้นเคยกับวิธีเขียงหั่นขนม มีการตั้งค่าเลย์เอาต์และแถวที่เชื่อมต่อ ฯลฯ Instructables และเว็บไซต์ Arduino มีบทเรียนที่เรียบร้อยมากที่จะทำอย่างนั้น]

3. ที่ปลายอีกด้านของเขียงหั่นขนม คุณใช้สายสีน้ำเงินหนึ่งเส้นและสีแดงหนึ่งเส้นเพื่อต่อสายกราวด์

4. จากนั้นใช้สายไฟสีขาวสี่เส้นต่อแถวกราวด์ทั้งด้านบวกและด้านลบกับด้านใดด้านหนึ่งของแถวที่ 30 ตรงกลาง (ควรเชื่อมช่องว่างเล็ก ๆ)

ขั้นตอนที่ 3: ตั้งค่าปุ่มกด:

ตั้งค่าปุ่มกด
ตั้งค่าปุ่มกด

1. ตอนนี้ นำปุ่มกดของคุณและเชื่อมต่อเข้าด้วยกันเพื่อให้วางคร่อมช่องว่างตรงกลางของเขียงหั่นขนม ณ จุดใดก็ได้ (ฉันชอบที่จะกระจายสิ่งของของฉันออกไปเล็กน้อยเพื่อให้ฉันสามารถเปลี่ยนแปลงและแก้ไขสิ่งต่าง ๆ ได้ง่ายขึ้น

2. ใช้สายสีแดงสองเส้นแล้วต่อขาขวาของปุ่มกดที่หันเข้าหาคุณด้วยสายกราวด์ที่เป็นบวก

3. ใช้สายสีน้ำเงินสองเส้นแล้วต่อสายกราวด์เชิงลบสีน้ำเงินด้วยแถวกลางสองสามแถวด้านซ้ายของขาซ้ายของปุ่มกด เหลือที่ว่างสำหรับตัวต้านทาน

4. ตอนนี้เชื่อมต่อตัวต้านทาน 10K (น้ำตาล, ดำ, ส้ม, ทอง) กับขาข้างหนึ่งในแถวกลางเดียวกันกับลวดสีน้ำเงินเชิงลบและขาอีกข้างในแถวเดียวกันกับขาซ้ายของปุ่มกด

[ทั้งหมดนี้ยังคงเชื่อมต่ออยู่ที่ด้านหนึ่งของเส้นแบ่งตรงกลางของเขียงหั่นขนม ยกเว้นปุ่มที่คร่อมตัวแบ่งและสายสีขาว แดง และน้ำเงินสำหรับการตั้งค่าแอนะล็อก)

5. ตอนนี้ใช้ลวดสีเหลืองและสีเขียวแล้วต่อขาซ้ายที่ด้านตรงข้ามของตรงกลางหารด้วยหมุด 9 และ 11 [หมายเหตุ: อะนาล็อกใช้งานได้กับพิน 3, 5, 6, 9, 10 และ 11 เท่านั้น] สายไฟเหล่านี้ใช้สำหรับสื่อสารกับ Arduino

ขั้นตอนที่ 4: ตั้งค่า LED:

ตั้งค่า LED
ตั้งค่า LED

1. นำ LED (สีที่คุณเลือก) มาวางไว้ที่ด้านข้างของตัวแบ่งตรงจุดเชื่อมต่อส่วนใหญ่ของคุณ

2. ใช้สายสีน้ำเงินเส้นเดียวแล้วต่อสายกราวด์สีน้ำเงินเชิงลบกับแถวเดียวกับขาสั้น (ขั้วบวก) ของ LED [วงจรจะทำงานก็ต่อเมื่อเส้นสีน้ำเงินลบเชื่อมต่อกับขาขวาของ LED i.o.w. ขั้วบวก

3. ใช้ตัวต้านทาน 10K โอห์มอีกตัวแล้วต่อแถวที่แคโทด (ขายาวบวกของ LED) เสียบเข้ากับแถวที่อยู่ใกล้เคียงที่ด้านเดียวกันของเส้นแบ่งตรงกลาง

4. ตอนนี้ใช้สายสีส้มและเชื่อมต่อตัวต้านทานกับขา 3 บน Arduino

วงจรของคุณเสร็จสมบูรณ์แล้ว เหลือเพียงการตั้งโปรแกรมทุกอย่าง

ขั้นตอนที่ 5: การเขียนโปรแกรมวงจร:

ฉันยังใหม่กับสิ่งทั้งหมดนี้เล็กน้อย ดังนั้นโปรดขอโทษที่คัดลอกโค้ดทับเท่านั้นและไม่สร้างวิดีโอ…

นี่คือรหัสสำหรับวงจร:

// My (Altus Lourens) โครงการแรกของตัวเอง: // สร้างระหว่างวันที่ 29 ถึง 30 มิถุนายน 2018

// NB สำหรับตัวเอง: AnalogWrite ใช้ได้เฉพาะกับ 3, 5, 6, 9, 10 และ 11

// NB: แอนะล็อกเกี่ยวข้องกับสถานะที่แตกต่างกัน ดิจิตอลใช้งานได้เฉพาะเมื่อเปิด (สูง) หรือปิด (ต่ำ)

// LED จะออก

// ปุ่มกดจะเป็นอินพุต

// pushButton1 จะเพิ่มความสว่างด้วยหนึ่ง fadeAmount ทุกครั้งที่กด

// pushButton2 จะลดความสว่างด้วยหนึ่ง fadeAmount ทุกครั้งที่กด

// ค่าคงที่ไม่เปลี่ยนแปลง ตั้งค่าหมายเลขพิน PWM

const int ledPin = 3; // หมายเลขพิน PWM LED

const int fadeAmount = 50; // เปลี่ยนความสว่างทุกครั้งที่กดปุ่ม

const int buttonPin1 = 11;

const int buttonPin2 = 9; // หมายเลขพินปุ่มกด

// ตัวแปรที่จะเปลี่ยน:

ความสว่างภายใน = 5; // เริ่มต้นความสว่างของ LED's

int buttonState1 = 0; // ระบุปุ่มที่ขึ้นต้นด้วย LOW

int buttonState2 = 0; // ระบุปุ่มที่ขึ้นต้นด้วย LOW

การตั้งค่าเป็นโมฆะ () {

// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว:

// เริ่มต้นพิน LED เป็นเอาต์พุต:

โหมดพิน (ledPin, เอาต์พุต);

// เริ่มต้นปุ่มกดเป็นอินพุต:

pinMode (ปุ่ม Pin1, INPUT);

pinMode(ปุ่มPin2, INPUT);

Serial.begin(9600); // ความเร็วของการสื่อสารในวงจร

}

// buttonPin1 จะเพิ่มความสว่างของ LED

// buttonPin2 จะลดความสว่างของ LED

วงเป็นโมฆะ () {

// ใส่รหัสหลักของคุณที่นี่เพื่อเรียกใช้ซ้ำ ๆ:

// ตั้งค่าความสว่างของพิน 9:

analogWrite (ledPin ความสว่าง); // ความสว่าง = 5, LED เปิดอยู่

ความสว่าง = ข้อ จำกัด (ความสว่าง, 0, 255); // จำกัดความสว่างระหว่าง 0 ถึง 255

// อ่านสถานะของค่าปุ่มกด:

buttonState1 = digitalRead (ปุ่มพิน1);

buttonState2 = digitalRead (buttonPin2);

// ตรวจสอบว่ามีการกดปุ่มหรือไม่:

// ถ้าเป็น -> buttonState = สูง:

// ปุ่มกด 1:

ถ้า (buttonState1 == สูง) {

ความสว่าง = ความสว่าง + จางจำนวน; // เพิ่มความสว่าง:

analogWrite (ledPin, ความสว่าง + จำนวนจาง);

}

อื่น { // ความสว่างอยู่ที่ระดับเดิมและ LED ยังคงปิดอยู่:

analogWrite (ledPin ความสว่าง);

}

// ปุ่มกด 2:

ถ้า (buttonState2 == สูง) {

ความสว่าง = ความสว่าง - fadeAmount; // ลดความสว่าง:

analogWrite(ledPin, ความสว่าง - fadeAmount);

}

อื่น {

// ความสว่างอยู่ที่ระดับเดิม ไม่มีการเปลี่ยนแปลงเกิดขึ้น:

analogWrite (ledPin ความสว่าง);

}

Serial.print("ความสว่าง");

Serial.println(ความสว่าง); }

ตอนนี้คุณสามารถปรับความเร็วในการสื่อสารและลองใช้งานมันได้เล็กน้อย จนกว่าคุณจะพบความเร็วที่ทำงานได้อย่างสมบูรณ์แบบสำหรับเครื่องมือมอนิเตอร์แบบอนุกรม [9600 Baud เป็นเพียงความเร็วมาตรฐาน]

แนะนำ: