วิธีเชื่อมต่อ LED กับบอร์ด Arduino
แพลตฟอร์ม Arduino ได้รับความนิยมอย่างมากทั่วโลก เครื่องมือในอุดมคติสำหรับขั้นตอนแรกในการพัฒนาการเขียนโปรแกรมและการจัดการฮาร์ดแวร์ เมื่อคุณพัฒนาทักษะ คุณสามารถเพิ่มขนาดสถาปัตยกรรมโดยการเพิ่มอุปกรณ์ต่อพ่วง และสร้างระบบที่ซับซ้อนมากขึ้นซึ่งรันโปรแกรมที่ซับซ้อนมากขึ้น บอร์ด Arduino Uno และ Arduino Nano เหมาะสำหรับการฝึกเบื้องต้น ในตัวอย่าง จะพิจารณาการเชื่อมต่อ LED กับ Arduino
Arduino Uno และ Arduino Nano คืออะไร
พื้นฐานของบอร์ด Arduino Uno คือไมโครคอนโทรลเลอร์ ATmega328 นอกจากนี้ยังมีองค์ประกอบเพิ่มเติม:
- แร่ควอทซ์;
- ปุ่มรีเซ็ต;
- ขั้วต่อ USB;
- ตัวปรับแรงดันไฟฟ้าในตัว
- ขั้วต่อสายไฟ;
- ไฟ LED หลายดวงสำหรับระบุโหมด
- ชิปสื่อสารสำหรับช่อง USB;
- คอนเนคเตอร์สำหรับการเขียนโปรแกรมในวงจร
- องค์ประกอบที่ใช้งานและไม่โต้ตอบอีกสองสามรายการ
ทั้งหมดนี้ช่วยให้คุณทำขั้นตอนแรกได้โดยไม่ต้องใช้หัวแร้ง และหลีกเลี่ยงขั้นตอนการผลิตแผงวงจรพิมพ์เครื่องนี้ใช้พลังงานจากแหล่งจ่ายแรงดันไฟภายนอก 7..12 V หรือผ่านขั้วต่อ USB โมดูลเชื่อมต่อกับพีซีเพื่อดาวน์โหลดภาพร่าง บอร์ดนี้มีแหล่งจ่ายแรงดันไฟ 3.3 V สำหรับจ่ายไฟให้กับอุปกรณ์ภายนอก มีเอาต์พุตดิจิตอลเอนกประสงค์ 6, 14 ช่องสำหรับการใช้งาน ความจุโหลดของเอาต์พุตดิจิตอลเมื่อขับเคลื่อนโดย 5 V คือ 40 mA ซึ่งหมายความว่าสามารถเชื่อมต่อ LED ได้โดยตรงผ่าน ตัวต้านทานจำกัด.

บอร์ด Arduino Nano เข้ากันได้กับ Uno อย่างสมบูรณ์ แต่มีขนาดเล็กกว่าและมีความแตกต่างและความเรียบง่ายที่ระบุไว้ในตาราง
| จ่าย | คอนโทรลเลอร์ | ขั้วต่อสำหรับแหล่งจ่ายไฟภายนอก | ไมโครชิปสำหรับการสื่อสารผ่าน USB | ขั้วต่อ USB |
|---|---|---|---|---|
| Arduino Uno | ATmega328 | มี | ATmega8U2 | USB A-B |
| Arduino นาโน | ATmega328 | ไม่ | FT232RL | ไมโคร USB |

ความแตกต่างไม่ใช่พื้นฐานและไม่สำคัญสำหรับหัวข้อของการทบทวน
สิ่งที่คุณต้องการเพื่อเชื่อมต่อ LED กับบอร์ด Arduino
มีสองตัวเลือกสำหรับการเชื่อมต่อ LED เพื่อวัตถุประสงค์ในการเรียนรู้ คุณสามารถเลือกอะไรก็ได้
- ใช้ LED ในตัว. ในกรณีนี้ ไม่จำเป็นต้องใช้อย่างอื่น ยกเว้นสายเคเบิลสำหรับเชื่อมต่อกับพีซีผ่านขั้วต่อ USB สำหรับการจ่ายไฟและการตั้งโปรแกรม มันไม่สมเหตุสมผลเลยที่จะใช้แหล่งจ่ายแรงดันไฟภายนอกเพื่อจ่ายไฟให้กับบอร์ด: การบริโภคในปัจจุบันมีน้อยสาย USB AB เพื่อเชื่อมต่อ Arduino Uno กับพีซี
- เชื่อมต่อ LED ภายนอก. ที่นี่คุณจะต้องการเพิ่มเติม:
- LED เอง;
- ตัวต้านทานจำกัดกระแสที่มีกำลัง 0.25 W (หรือมากกว่า) ที่มีค่าเล็กน้อย 250-1000 โอห์ม (ขึ้นอยู่กับ LED)
- สายไฟและหัวแร้งสำหรับต่อวงจรภายนอก

ไฟ LED เชื่อมต่อแคโทดกับเอาต์พุตดิจิทัลของไมโครคอนโทรลเลอร์ แอโนดกับสายทั่วไปผ่านตัวต้านทานบัลลาสต์ ด้วย LED จำนวนมาก อาจจำเป็นต้องใช้แหล่งพลังงานเพิ่มเติม
เป็นไปได้ไหมที่จะเชื่อมต่อ LED หลายดวงเข้ากับเอาต์พุตเดียว
อาจจำเป็นต้องเชื่อมต่อ LED ภายนอกหรือกลุ่มของ LED กับเอาท์พุตใดๆ ความจุโหลดของเอาต์พุตหนึ่งตัวของไมโครคอนโทรลเลอร์ดังที่กล่าวไว้มีขนาดเล็ก LED หนึ่งหรือสองดวงที่ใช้กระแสไฟ 15 mA สามารถเชื่อมต่อโดยตรงกับ LED แบบขนาน มันไม่คุ้มที่จะทดสอบความอยู่รอดของผลผลิตด้วยภาระที่ใกล้จะถึงความเป็นไปได้หรือเกินกว่านั้น ควรใช้สวิตช์บนทรานซิสเตอร์ (สนามหรือสองขั้ว).
ตัวต้านทาน R1 ต้องเลือกเพื่อให้กระแสไหลผ่านไม่เกินความจุโหลดของเอาต์พุต เป็นการดีกว่าที่จะใช้ค่าสูงสุดครึ่งหนึ่งหรือน้อยกว่า ดังนั้นเพื่อตั้งค่ากระแสไฟปานกลางใน 10 mA, ความต้านทานที่ 5 โวลต์ของอุปทานควรเป็น 500 โอห์ม.
LED แต่ละตัวต้องมีตัวต้านทานบัลลาสต์ของตัวเอง ไม่ควรแทนที่ด้วยตัวต้านทานทั่วไป Rbal ถูกเลือกเพื่อตั้งค่ากระแสการทำงานผ่าน LED แต่ละตัว ดังนั้นสำหรับแรงดันไฟฟ้า 5 โวลต์และกระแสของ 20 mAความต้านทานควรเป็น 250 โอห์มหรือค่ามาตรฐานที่ใกล้ที่สุด
จำเป็นต้องตรวจสอบให้แน่ใจว่ากระแสรวมผ่านตัวสะสมของทรานซิสเตอร์ไม่เกินค่าสูงสุด ดังนั้น สำหรับทรานซิสเตอร์ KT3102 Ik ที่ใหญ่ที่สุดควรจำกัดไว้ที่ 100 mA ซึ่งหมายความว่าสามารถเชื่อมต่อไฟ LED ที่มีกระแสไฟได้ไม่เกิน 6 ดวง 15 mA. หากยังไม่เพียงพอ ต้องใช้คีย์ที่ทรงพลังกว่านี้นี่เป็นข้อ จำกัด เดียวสำหรับการเลือกทรานซิสเตอร์ n-p-n ในวงจรดังกล่าว ตามทฤษฎีแล้ว จำเป็นต้องคำนึงถึงอัตราขยายของไตรโอดด้วย แต่สำหรับเงื่อนไขเหล่านี้ (กระแสอินพุต 10 mA, เอาต์พุต 100) ควรมีอย่างน้อย 10 ตัวเท่านั้น ทรานซิสเตอร์สมัยใหม่ใดๆ ที่สามารถผลิต h21e ดังกล่าวได้
วงจรดังกล่าวไม่เหมาะสำหรับการเพิ่มเอาต์พุตปัจจุบันของไมโครคอนโทรลเลอร์เท่านั้น ดังนั้น คุณจึงสามารถเชื่อมต่อแอคทูเอเตอร์ที่มีกำลังเพียงพอ (รีเลย์ โซลินอยด์ มอเตอร์ไฟฟ้า) ที่ขับเคลื่อนด้วยแรงดันไฟฟ้าที่เพิ่มขึ้น (เช่น 12 โวลต์) เมื่อคำนวณ คุณต้องใช้ค่าแรงดันที่สอดคล้องกัน
คุณยังสามารถใช้เพื่อรันคีย์ MOSFETsแต่อาจต้องใช้แรงดันไฟฟ้าในการเปิดที่สูงกว่าที่ Arduino สามารถส่งออกได้ ในกรณีนี้จะต้องจัดให้มีวงจรและองค์ประกอบเพิ่มเติม เพื่อหลีกเลี่ยงปัญหานี้ จำเป็นต้องใช้ทรานซิสเตอร์แบบ field-effect ที่เรียกว่า "ดิจิทัล" ซึ่งต้องใช้ 5 โวลต์ เพื่อเปิด แต่พวกมันมีน้อยกว่าทั่วไป
การควบคุม LED โดยทางโปรแกรม
เพียงแค่เชื่อมต่อ LED เข้ากับเอาต์พุตของไมโครคอนโทรลเลอร์ก็ทำเพียงเล็กน้อย จำเป็นต้องควบคุม LED จาก Arduino โดยทางโปรแกรม สามารถทำได้ในภาษา Arduino ซึ่งใช้ C (C) ภาษาการเขียนโปรแกรมนี้เป็นการปรับตัวของ C สำหรับการเรียนรู้เบื้องต้น หลังจากเชี่ยวชาญแล้ว การเปลี่ยนไปใช้ C ++ จะเป็นเรื่องง่าย ในการเขียนสเก็ตช์ (ตามที่เรียกโปรแกรมสำหรับ Arduino) และดีบั๊กแบบสด คุณต้องทำสิ่งต่อไปนี้:
- ติดตั้ง Arduino IDE บนคอมพิวเตอร์ส่วนบุคคล
- คุณอาจต้องติดตั้งไดรเวอร์สำหรับชิปสื่อสาร USB
- เชื่อมต่อบอร์ดกับพีซีโดยใช้สาย USB-microUSB

เครื่องจำลองคอมพิวเตอร์สามารถใช้เพื่อดีบักโปรแกรมและวงจรอย่างง่าย รองรับการจำลองการทำงานของบอร์ด Arduino Uno และ Nano เช่น Proteus (เริ่มจากเวอร์ชัน 8) ความสะดวกของเครื่องจำลองคือไม่สามารถปิดการใช้งานฮาร์ดแวร์ด้วยวงจรที่ประกอบผิดพลาดได้

ภาพร่างประกอบด้วยสองโมดูล:
- ติดตั้ง - ดำเนินการครั้งเดียวเมื่อเริ่มต้นโปรแกรม เริ่มต้นตัวแปรและโหมดการทำงานของฮาร์ดแวร์
- ห่วง – ถูกดำเนินการแบบวนซ้ำหลังจากบล็อกการตั้งค่าเป็นอินฟินิตี้
สำหรับ การเชื่อมต่อ LED คุณสามารถใช้พินฟรี 14 พิน (พิน) ซึ่งมักถูกเรียกว่าพอร์ตอย่างไม่ถูกต้อง อันที่จริงพอร์ตนั้นเป็นเพียงกลุ่มพิน พินเป็นเพียงองค์ประกอบ
ตัวอย่างของการควบคุมได้รับการพิจารณาสำหรับพิน 13 - LED เชื่อมต่อกับบอร์ดแล้ว (ผ่านแอมพลิฟายเออร์ผู้ติดตามบนบอร์ด Uno ผ่านตัวต้านทานบนนาโน) ในการทำงานกับพินพอร์ต จะต้องกำหนดค่าในโหมดอินพุตหรือเอาต์พุต สะดวกในการทำสิ่งนี้ในเนื้อหาการตั้งค่า แต่ไม่จำเป็น - ปลายทางของเอาต์พุตสามารถเปลี่ยนแปลงได้แบบไดนามิก นั่นคือ ในระหว่างการดำเนินการของโปรแกรม พอร์ตสามารถทำงานได้ทั้งสำหรับอินพุตหรือเอาต์พุตข้อมูล
การเริ่มต้นของพิน 13 ของ Arduino (พิน PB5 ของพอร์ต B ของไมโครคอนโทรลเลอร์ ATmega 328) มีดังนี้:
การตั้งค่าเป็นโมฆะ ()
{
โหมดพิน (13, เอาต์พุต);
}
หลังจากดำเนินการคำสั่งนี้ พิน 13 ของบอร์ดจะทำงานในโหมดเอาต์พุต โดยค่าเริ่มต้นจะเป็นตรรกะที่ต่ำ ในระหว่างการดำเนินการของโปรแกรมสามารถเขียนศูนย์หรือหนึ่งรายการได้ บันทึกหน่วยมีลักษณะดังนี้:
วงเป็นโมฆะ ()
{
digitalWrite (13, สูง);
}
ตอนนี้พิน 13 ของบอร์ดจะถูกตั้งค่าสูง - ลอจิกหนึ่งและสามารถใช้เพื่อจุดไฟ LED ได้
ในการปิด LED คุณต้องตั้งค่าเอาต์พุตเป็นศูนย์:
digitalWrite (13, ต่ำ);
ดังนั้น คุณสามารถควบคุมอุปกรณ์ภายนอกได้โดยการเขียนค่าหนึ่งและศูนย์เป็นบิตที่สอดคล้องกันของพอร์ตรีจิสเตอร์
ตอนนี้คุณสามารถทำให้โปรแกรม Arduino ซับซ้อนขึ้นเพื่อควบคุม LED และเรียนรู้วิธีกะพริบองค์ประกอบการเปล่งแสง:
การตั้งค่าเป็นโมฆะ ()
{
โหมดพิน (13, เอาต์พุต);
}
วงเป็นโมฆะ ()
{
digitalWrite (13, สูง);
ล่าช้า (1000);
digitalWrite (13, ต่ำ);
ล่าช้า (1000);
}
ทีม ล่าช้า (1000) สร้างการหน่วงเวลา 1,000 มิลลิวินาทีหรือหนึ่งวินาที คุณสามารถเปลี่ยนความถี่หรือรอบการทำงานของไฟ LED ที่กะพริบได้โดยการเปลี่ยนค่านี้ หาก LED ภายนอกเชื่อมต่อกับเอาต์พุตอื่นของบอร์ด คุณต้องระบุหมายเลขพินที่เลือกในโปรแกรมแทน 13
เพื่อความชัดเจน เราขอแนะนำชุดวิดีโอ
เมื่อเชี่ยวชาญการเชื่อมต่อ LED กับ Arduino และเรียนรู้วิธีควบคุมแล้ว คุณสามารถก้าวไปสู่ระดับใหม่และเขียนโปรแกรมอื่นๆ ที่ซับซ้อนยิ่งขึ้นได้ ตัวอย่างเช่น คุณสามารถเรียนรู้วิธีสลับไฟ LED สองดวงขึ้นไปด้วยปุ่มเดียว เปลี่ยนความถี่การกะพริบโดยใช้โพเทนชิออมิเตอร์ภายนอก ปรับความสว่างของการเรืองแสงโดยใช้ PWM เปลี่ยนสีของตัวปล่อย RGB ระดับของงานถูกจำกัดด้วยจินตนาการเท่านั้น


