lamp.housecope.com
กลับ

วิธีเชื่อมต่อ LED กับบอร์ด Arduino

เผยแพร่เมื่อ: 16.08.2021
0
1490

แพลตฟอร์ม 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 Uno
Arduino Uno

บอร์ด Arduino Nano เข้ากันได้กับ Uno อย่างสมบูรณ์ แต่มีขนาดเล็กกว่าและมีความแตกต่างและความเรียบง่ายที่ระบุไว้ในตาราง

จ่ายคอนโทรลเลอร์ขั้วต่อสำหรับแหล่งจ่ายไฟภายนอกไมโครชิปสำหรับการสื่อสารผ่าน USBขั้วต่อ USB
Arduino UnoATmega328มีATmega8U2USB A-B
Arduino นาโนATmega328ไม่FT232RLไมโคร USB
Arduino นาโน
Arduino นาโน

ความแตกต่างไม่ใช่พื้นฐานและไม่สำคัญสำหรับหัวข้อของการทบทวน

สิ่งที่คุณต้องการเพื่อเชื่อมต่อ LED กับบอร์ด Arduino

มีสองตัวเลือกสำหรับการเชื่อมต่อ LED เพื่อวัตถุประสงค์ในการเรียนรู้ คุณสามารถเลือกอะไรก็ได้

  1. ใช้ LED ในตัว. ในกรณีนี้ ไม่จำเป็นต้องใช้อย่างอื่น ยกเว้นสายเคเบิลสำหรับเชื่อมต่อกับพีซีผ่านขั้วต่อ USB สำหรับการจ่ายไฟและการตั้งโปรแกรม มันไม่สมเหตุสมผลเลยที่จะใช้แหล่งจ่ายแรงดันไฟภายนอกเพื่อจ่ายไฟให้กับบอร์ด: การบริโภคในปัจจุบันมีน้อย

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

ไฟ LED เชื่อมต่อแคโทดกับเอาต์พุตดิจิทัลของไมโครคอนโทรลเลอร์ แอโนดกับสายทั่วไปผ่านตัวต้านทานบัลลาสต์ ด้วย LED จำนวนมาก อาจจำเป็นต้องใช้แหล่งพลังงานเพิ่มเติม

เป็นไปได้ไหมที่จะเชื่อมต่อ LED หลายดวงเข้ากับเอาต์พุตเดียว

อาจจำเป็นต้องเชื่อมต่อ LED ภายนอกหรือกลุ่มของ LED กับเอาท์พุตใดๆ ความจุโหลดของเอาต์พุตหนึ่งตัวของไมโครคอนโทรลเลอร์ดังที่กล่าวไว้มีขนาดเล็ก LED หนึ่งหรือสองดวงที่ใช้กระแสไฟ 15 mA สามารถเชื่อมต่อโดยตรงกับ LED แบบขนาน มันไม่คุ้มที่จะทดสอบความอยู่รอดของผลผลิตด้วยภาระที่ใกล้จะถึงความเป็นไปได้หรือเกินกว่านั้น ควรใช้สวิตช์บนทรานซิสเตอร์ (สนามหรือสองขั้ว).

การเชื่อมต่อ LED ผ่านสวิตช์ทรานซิสเตอร์บนไบโพลาร์ไตรโอด
การเชื่อมต่อ 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
อินเทอร์เฟซของสภาพแวดล้อมการพัฒนา Arduino IDE เป็นการเชิญให้เขียนโปรแกรม

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

การจำลองการทำงานของ Arduino ด้วย
การจำลอง Arduino ด้วย LED ที่เชื่อมต่อใน Proteus 8.23

ภาพร่างประกอบด้วยสองโมดูล:

  • ติดตั้ง - ดำเนินการครั้งเดียวเมื่อเริ่มต้นโปรแกรม เริ่มต้นตัวแปรและโหมดการทำงานของฮาร์ดแวร์
  • ห่วง – ถูกดำเนินการแบบวนซ้ำหลังจากบล็อกการตั้งค่าเป็นอินฟินิตี้

สำหรับ การเชื่อมต่อ 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 ระดับของงานถูกจำกัดด้วยจินตนาการเท่านั้น

ความคิดเห็น:
ยังไม่มีความคิดเห็น เป็นคนแรก!

เราแนะนำให้คุณอ่าน

วิธีซ่อมหลอดไฟ LED ด้วยตัวเอง