สารบัญ:

โปรแกรมซีเควนเซอร์ RGB LED ที่ตั้งโปรแกรมได้ (โดยใช้ Arduino และ Adafruit Trellis): 7 ขั้นตอน (พร้อมรูปภาพ)
โปรแกรมซีเควนเซอร์ RGB LED ที่ตั้งโปรแกรมได้ (โดยใช้ Arduino และ Adafruit Trellis): 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โปรแกรมซีเควนเซอร์ RGB LED ที่ตั้งโปรแกรมได้ (โดยใช้ Arduino และ Adafruit Trellis): 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โปรแกรมซีเควนเซอร์ RGB LED ที่ตั้งโปรแกรมได้ (โดยใช้ Arduino และ Adafruit Trellis): 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino Sequential LED Project ||LED Chaser with Awesome Cool EFFECTS | code in description 2024, กรกฎาคม
Anonim
Image
Image
ต่อสายบอร์ดไดรเวอร์
ต่อสายบอร์ดไดรเวอร์

ลูกชายของฉันต้องการแถบ LED สีเพื่อทำให้โต๊ะทำงานของพวกเขาสว่างขึ้น และฉันไม่ต้องการใช้ตัวควบคุมแถบ RGB แบบกระป๋อง เพราะฉันรู้ว่าพวกเขาคงจะเบื่อกับรูปแบบตายตัวที่ตัวควบคุมเหล่านี้มี ฉันยังคิดว่ามันน่าจะเป็นโอกาสที่ดีที่จะสร้างเครื่องมือการสอนสำหรับพวกเขา ที่พวกเขาสามารถใช้เพื่อเพิ่มพูนทักษะด้านการเขียนโปรแกรมและอิเล็กทรอนิกส์ที่ฉันสอนพวกเขา นี่คือผลลัพธ์

ฉันจะแสดงวิธีสร้างตัวควบคุมแถบไฟ RGB LED แบบเรียบง่ายที่ตั้งโปรแกรมได้โดยใช้ Arduino Uno (หรือนาโน) Adafruit Trellis และส่วนอื่นๆ อีกเล็กน้อย

Adafruit Trellis เป็นหนึ่งในของเล่นชิ้นใหม่ที่ฉันโปรดปรานจาก Lady Ada และทีมงาน อย่างแรกเลย มีเพียง $9.95 สำหรับบอร์ด และ $4.95 สำหรับปุ่มซิลิโคนอีลาสโตเมอร์ (ราคา ณ วันที่เขียนนี้) นั่นเป็นจำนวนมากสำหรับเมทริกซ์ 4x4 16 ปุ่มพร้อมไฟ LED มันไม่ได้มาพร้อมกับ LED ใดๆ ที่ติดตั้งไว้ คุณต้องจัดหาให้ แต่นั่นให้ความยืดหยุ่นในการเลือกสีที่คุณต้องการ (และช่วยลดต้นทุนและความซับซ้อน เมื่อเทียบกับการสร้างใน LED ที่กำหนดค่าได้) ในการสร้างโปรเจ็กต์นี้เหมือนของฉัน คุณจะต้องมีไฟ LED 3 มม. จำนวนหนึ่ง ฉันใช้ 2 สีแดง 2 สีเขียว 2 สีฟ้า 4 สีเหลืองและ 6 สีขาว

Trellis ใช้ I2C ในการสื่อสาร ดังนั้นจึงต้องใช้พิน I/O เพียงสองตัว (ข้อมูลและนาฬิกา) เพื่อควบคุมปุ่ม 16 ปุ่มและ LED 16 ดวง

คุณสามารถทำส่วนฮาร์ดแวร์ของโปรเจ็กต์นี้ได้บนโปรโตบอร์ดขนาดเล็ก ซึ่งเป็นวิธีที่ฉันทำต้นแบบของฉัน ฉันรู้ได้อย่างรวดเร็วว่าฉันต้องการบางสิ่งที่เรียบร้อยกว่านี้และวางไว้บนโต๊ะทำงานของพวกเขามากขึ้น (บอร์ด Arduino เปล่าและโปรโตที่กระแทกไปมาจะเปราะบางเกินไป) ดังนั้นฉันจึงสร้างเกราะป้องกันของตัวเองเพื่อขับเคลื่อนแถบ LED คำแนะนำและไฟล์สำหรับการสร้างเกราะป้องกันจะรวมอยู่ในขั้นตอนสุดท้าย

ไดรเวอร์ใช้ IRLB8721 MOSFET สามตัวและตัวต้านทานสามตัว และแน่นอน คุณจะต้องมีแถบ LED เพื่อขับเคลื่อน แถบ LED 12V RGB LED ธรรมดา ๆ จะทำได้ เหล่านี้เป็นไฟ LED ธรรมดา ๆ เช่น SMD 5050 ไม่ใช่ไฟ LED ที่สามารถระบุตัวบุคคลได้ (ไม่มี NeoPixels ฯลฯ) ซึ่งเป็นอีกโครงการหนึ่ง! คุณต้องใช้แหล่งจ่ายไฟ 12V ที่ใหญ่พอที่จะขับเคลื่อนจำนวน LED ที่คุณต้องการใช้

เพื่อสรุป ต่อไปนี้คือความต้องการฮาร์ดแวร์พื้นฐานสำหรับโครงการนี้:

  • Arduino Uno หรือ Nano หนึ่งตัว (คำแนะนำเหล่านี้มีไว้สำหรับ Uno ที่ติดตั้งส่วนหัวของเพศหญิง แต่ Nano บนเขียงหั่นขนมทำงานได้ดี) (Adafruit, Amazon, Mouser);
  • กระดาน Adafruit Trellis หนึ่งอันและแผ่นรองซิลิโคน (Adafruit);
  • IRLB8721 N-channel MOSFET สามตัว (Adafruit, Amazon, Mouser);
  • ตัวต้านทาน 1K สามตัว (Amazon, Mouser);
  • ตัวต้านทาน 220 โอห์มสามตัว (Amazon, Mouser)
  • บอร์ดโปรโตขนาดเล็กหนึ่งบอร์ด (อันแรกของฉันมีขนาด 1/4 - เลือกขนาดใดก็ได้ที่คุณสามารถใช้ได้อย่างสะดวกสบาย) (Adafruit, Amazon);
  • แถบ LED RGB 12V (SMD 5050) (Adafruit, Amazon);
  • แหล่งจ่ายไฟ 12V -- เลือกกำลังไฟที่เหมาะสมกับจำนวน LED ที่คุณวางแผนจะขับ

ข้อจำกัดความรับผิดชอบที่จำเป็น: ลิงก์ด้านบนมีให้เพื่อความสะดวกของคุณและไม่ใช่การรับรองผลิตภัณฑ์หรือผู้ขายใดๆ ฉันไม่ได้กำไรจากการซื้อใด ๆ ที่ทำที่ลิงค์เหล่านี้ หากคุณมีผู้ขายที่คุณชอบมากกว่า ยังไงก็สนับสนุนพวกเขา!

มาเริ่มกันเลย…

ขั้นตอนที่ 1: ต่อสายบอร์ดไดรเวอร์

ต่อสายบอร์ดไดรเวอร์
ต่อสายบอร์ดไดรเวอร์

นี่คือวงจรขับ LED มันง่ายมาก ใช้ IRBLxxx N-channel MOSFET สำหรับแต่ละช่องสัญญาณบนแถบ LED แถบ LED เป็นขั้วบวกทั่วไป หมายความว่า +12V ถูกส่งไปยังแถบ LED และช่อง LED สีแดง สีเขียว และสีน้ำเงินจะถูกควบคุมโดยให้กราวด์ในการเชื่อมต่อกับแถบนั้นตามลำดับ ดังนั้น เราจะเชื่อมต่อท่อระบายน้ำของ MOSFET กับช่องสี LED และแหล่งที่มาลงกราวด์ ประตูจะเชื่อมต่อกับเอาท์พุตดิจิตอล Arduino และตัวต้านทานจะให้การดึงลงเพื่อให้แน่ใจว่า MOSFET แต่ละตัวเปิดหรือปิดอย่างเต็มที่ตามต้องการ

Arduino มีการมอดูเลตความกว้างพัลส์บนเอาต์พุตดิจิตอลบางตัว ดังนั้นเราจะใช้เอาต์พุตเหล่านั้น (โดยเฉพาะ D9, D10, D11) เพื่อให้สามารถควบคุมความเข้มของช่องสีแต่ละช่องได้

หากคุณสับสนว่าต้องเชื่อมต่ออะไรกับ IRLB8721 MOSFET ให้ถือในมือโดยให้ด้านหน้าหันเข้าหาคุณดังที่แสดงในภาพด้านบน พินทางด้านซ้าย (พิน 1) คือเกต และจะเชื่อมต่อกับพินเอาต์พุตดิจิตอล Arduino และตัวต้านทาน (ปลายอีกด้านหนึ่งของตัวต้านทานควรเชื่อมต่อกับกราวด์) หมุดตรงกลาง (พิน 2) คือท่อระบายน้ำ และเชื่อมต่อกับช่องสีแถบ LED พินทางด้านขวา (พิน 3) เป็นแหล่งที่มา และเชื่อมต่อกับกราวด์ ตรวจสอบให้แน่ใจว่าคุณติดตามว่าทรานซิสเตอร์ตัวใดเชื่อมต่อกับช่องสัญญาณ LED สีใด

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

คุณสามารถเขียงหั่นขนมนี้ขึ้น แน่นอนมันจะเร็วกว่าการบัดกรีทุกอย่างบนบอร์ดโปรโต แต่ถาวรน้อยกว่า

เมื่อคุณต่อสายไดรเวอร์แล้ว ให้เชื่อมต่ออินพุตเกต MOSFET กับพินเอาต์พุตดิจิทัล Arduino: D9 สำหรับช่องสีเขียว D10 สำหรับช่องสีแดง และ D11 สำหรับช่องสีน้ำเงิน เชื่อมต่อแถบ LED กับบอร์ดโปรโตของคุณด้วย

นอกจากนี้ ตรวจสอบให้แน่ใจว่าบอร์ดไดรเวอร์ของคุณมีการเชื่อมต่อแยกจากกราวด์กับพินกราวด์ของ Arduino

สุดท้าย สำหรับไฟ LED ให้ต่อขั้วลบ (กราวด์) ของแหล่งจ่ายไฟ 12V เข้ากับกราวด์บนบอร์ดไดรเวอร์ของคุณ จากนั้นเชื่อมต่อขั้วบวกของแหล่งจ่ายไฟ 12V กับขั้วบวกของแถบ LED ของคุณ (นี่คือสายสีดำบนสายเคเบิลของฉันที่แสดงในภาพ)

ในที่สุด ฉันก็ลงเอยด้วยการออกแบบแผงป้องกันบอร์ด PC ที่ติดตั้งบน Uno และยังมีการรองรับการติดตั้งสำหรับ Trellis ด้วย นี่เป็นผลิตภัณฑ์ขั้นสุดท้ายที่เสร็จสิ้นมากขึ้น หากคุณต้องการทำเช่นนั้น คุณอาจข้ามการใช้บอร์ดโปรโตตามที่อธิบายไว้ที่นี่ และทำเพียงแค่สร้างชีลด์บอร์ด ที่อธิบายไว้ในขั้นตอนสุดท้าย

ขั้นตอนที่ 2: ใส่ไฟ LED บน Trellis

ติดไฟ LED บน Trellis
ติดไฟ LED บน Trellis

กระดาน Trellis มีแผ่นเปล่าสำหรับ LED 3 มม. ที่เราจะต้องเติม สังเกตสัญลักษณ์ที่แผ่นอิเล็กโทรดอย่างระมัดระวัง - มีเครื่องหมาย "+" ที่ละเอียดอ่อนมากถัดจากแผ่นอิเล็กโทรดเพื่อกำหนดด้านแอโนด หากคุณถือกระดานโดยให้ข้อความอยู่ทางด้านขวา จะมีสัญลักษณ์กำกับไว้ที่ด้านบนและด้านล่างของบอร์ดเพื่อแจ้งว่า LED anodes จะอยู่ทางด้านซ้าย

บัดกรี LED 3 มม. ของคุณเข้ากับบอร์ด ดูที่ด้านหน้าของบอร์ด ข้อความด้านขวาขึ้น สวิตช์ด้านซ้ายบน/ตำแหน่ง LED คือ #1 ด้านขวาบนคือ #4 ด้านซ้ายล่างคือ #13 และด้านล่างขวาคือ #16 นี่คือสีที่ฉันใช้ในแต่ละตำแหน่ง (และมีเหตุผลด้วย ดังนั้นฉันแนะนำให้คุณทำตามรูปแบบของฉันอย่างน้อยสำหรับสองแถวบนสุด):

1 - แดง2 - เขียว3 - น้ำเงิน4 - ขาว5 - แดง6 - เขียว7 - น้ำเงิน8 - ขาว9 - ขาว10 - ขาว11 - เหลือง12 - เหลือง13 - ขาว14 - ขาว15 - เหลือง16 - เหลือง

CC Attribution: รูปภาพ Trellis ด้านบนเป็นของ Adafruit และใช้ภายใต้สัญญาอนุญาต Creative Commons -- Attribution/ShareAlike

ขั้นตอนที่ 3: เชื่อมต่อ Trellis กับ Arduino

เชื่อมต่อ Trellis กับ Arduino
เชื่อมต่อ Trellis กับ Arduino

Trellis มีแผ่นสายไฟห้าแผ่น แต่ใช้เพียงสี่แผ่นในโครงการนี้ Trellis ต้องการ SDA และ SCL เพื่อสื่อสารกับ Arduino (โดยใช้ I2C) และ 5V และ GND สำหรับพลังงาน ไม่ได้ใช้แผ่นสุดท้าย INT แผ่นผ้า Trellis ปรากฏบนขอบทั้งสี่ของกระดาน คุณสามารถใช้แผ่นอิเล็กโทรดใดก็ได้ตามต้องการ

บัดกรีสายเชื่อมต่อที่เป็นของแข็งกับแผ่น 5V, GND, SDA และ SCL จากนั้นเชื่อมต่อสาย 5V กับพิน 5V บน Arduino, GND กับพินกราวด์, สาย SDA กับ A4 และสาย SCL กับ A5

ต่อไป เราจะเพิ่มพลังให้ Arduino และอัปโหลดภาพร่าง ตอนนี้เป็นเวลาที่ดีที่จะวางแผ่นปุ่มซิลิโคนบนกระดาน Trellis เพียงแค่วางบนกระดาน (สังเกต "nubs" ที่ด้านล่างของแผ่นที่พอดีกับรูบนกระดาน) ดังนั้นคุณอาจต้องการใช้เทปสองสามแผ่นเพื่อยึดขอบของแผ่นกับกระดานสำหรับ ตอนนี้.

CC Attribution: รูปภาพการเดินสายไฟ Trellis ด้านบนเป็นเวอร์ชันครอบตัดของรูปภาพนี้โดย Adafruit และใช้ภายใต้ใบอนุญาต Creative Commons -- Attribution/ShareAlike

ขั้นตอนที่ 4: ดาวน์โหลด Project Sketch และอัปโหลดไปยัง Arduino

คุณสามารถดาวน์โหลดภาพร่างจาก repo Github ของฉันสำหรับโครงการนี้

เมื่อคุณได้รับแล้ว ให้เปิดใน Arduino IDE เชื่อมต่อ Arduino โดยใช้สาย USB และอัปโหลดภาพร่างไปยัง Arduino

หากอัปโหลดภาพสเก็ตช์และเชื่อมต่อ Trellis อย่างถูกต้อง ปุ่มใดๆ บน Trellis ควรกะพริบอย่างรวดเร็วสามครั้งเมื่อกด นี่เป็นการบ่งชี้ว่าคุณได้กดปุ่มที่ไม่ถูกต้อง เนื่องจากระบบมีสถานะ "ปิด" ดังนั้นการกดปุ่มที่ถูกต้องเพียงอย่างเดียวจึงเป็นปุ่มที่จำเป็นในการเปิดเครื่อง

หากต้องการเปิดระบบ ให้กดปุ่มซ้ายล่าง (#13) ค้างไว้อย่างน้อยหนึ่งวินาที เมื่อคุณปล่อยปุ่ม ไฟ LED ทั้งหมดจะสว่างขึ้นชั่วครู่ จากนั้นสองแถวด้านล่างจะดับลง ยกเว้น #13 (ล่างซ้าย) ขณะนี้ระบบอยู่ในสถานะเปิดเครื่องและไม่ได้ใช้งาน

คุณสามารถลองใช้สองแถวบนสุดเพื่อเพิ่มความสว่างและหรี่ช่อง LED ในการทดสอบครั้งแรก หากได้ผล คุณก็พร้อมที่จะไปยังขั้นตอนต่อไป ถ้าไม่ตรวจสอบ:

  1. เชื่อมต่อและเปิดแหล่งจ่ายไฟ LED แล้ว
  2. MOSFET ของบอร์ดไดรเวอร์ได้รับการต่อสายอย่างถูกต้อง หากคุณใช้ IRLB8721 เดียวกันกับที่ฉันใช้ ให้ตรวจสอบ:

    • อินพุตสัญญาณของบอร์ดไดรเวอร์ (ประตู MOSFET, IRLB8721 ขา 1) เชื่อมต่อกับ Arduino D9 = สีเขียว, D10 = สีแดง, D11 = สีน้ำเงิน (ดูหมายเหตุด้านล่าง);
    • แถบ LED เชื่อมต่อกับบอร์ดควบคุมและช่องสี LED เชื่อมต่อกับท่อระบายน้ำ MOSFET (IRLB8721 พิน 2)
    • หมุดแหล่งสัญญาณ MOSFET (IRLB8721 พิน 3) เชื่อมต่อกับกราวด์บนบอร์ดไดรเวอร์
  3. การเชื่อมต่อกราวด์ระหว่างบอร์ดไดรเวอร์และพินกราวด์ Arduino

ในขั้นตอนต่อไป เราจะเล่นด้วยฟังก์ชันบางอย่างของอินเทอร์เฟซผู้ใช้ของแป้นกด

หมายเหตุ: หากคอนโทรลเลอร์ของคุณทำงาน แต่ปุ่มปรับความเข้มไม่ควบคุมสีที่ถูกต้อง ไม่ต้องกังวลและไม่ต้องต่อสายใหม่! เพียงเข้าไปใน Sketch ใน Arduino IDE และแก้ไขคำจำกัดความพิน RED, GREEN และ BLUE ใกล้กับด้านบนของไฟล์

ขั้นตอนที่ 5: ฟังก์ชันการควบคุมพื้นฐาน

ฟังก์ชั่นการควบคุมพื้นฐาน
ฟังก์ชั่นการควบคุมพื้นฐาน

เมื่อระบบได้รับพลังงานแล้ว เราก็สามารถเล่นกับปุ่มบางปุ่มและทำให้มันทำงานต่างๆ ได้

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

สองแถวล่างสุดใช้เล่นรูปแบบที่ตั้งไว้ล่วงหน้า รูปแบบเหล่านี้ถูกเก็บไว้ใน EEPROM ของ Arduino เมื่อสเก็ตช์รันเป็นครั้งแรก จะเห็นว่า EEPROM ไม่มีรูปแบบใดๆ ที่จัดเก็บไว้ และจัดเก็บชุดของรูปแบบเริ่มต้นไว้ หลังจากนั้น คุณสามารถเปลี่ยนรูปแบบเหล่านี้ และการเปลี่ยนแปลงของคุณจะถูกเก็บไว้ใน EEPROM ของ Arduino แทนที่รูปแบบที่กำหนดไว้ล่วงหน้า เพื่อให้แน่ใจว่ารูปแบบของคุณรอดพ้นจากการตัดกระแสไฟ ฟังก์ชันการแก้ไขได้อธิบายไว้ในขั้นตอนต่อไป

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

หากคุณปล่อยโปรเจ็กต์ทิ้งไว้สักครู่โดยไม่แตะปุ่มใดๆ คุณจะสังเกตเห็นว่าไฟ LED หรี่ลง นี่เป็นทั้งการประหยัดพลังงานและเพื่อหลีกเลี่ยงไม่ให้ Trellis ส่อง "อารมณ์" ใด ๆ ที่ LED พยายามสร้างมากเกินไป การแตะปุ่มบน Trellis จะทำให้เครื่องกลับมาทำงานอีกครั้ง

หากต้องการปิดระบบ ให้กดปุ่มซ้ายล่าง (#13) ค้างไว้อย่างน้อยหนึ่งวินาทีแล้วปล่อย แถบ Trellis และแถบ LED จะมืดลง

ขั้นตอนที่ 6: การแก้ไขรูปแบบบนปุ่มกด

การแก้ไขรูปแบบบนปุ่มกด
การแก้ไขรูปแบบบนปุ่มกด

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

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

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

หลังจากที่คุณออกจากการแก้ไขรูปแบบ รูปแบบจะเล่นโดยอัตโนมัติ

แค่นั้นแหละ! ตอนนี้คุณมีตัวควบคุม RGB LED ที่จะจัดลำดับรูปแบบที่คุณสามารถตั้งโปรแกรมผ่านปุ่มกดได้ คุณสามารถหยุดที่นี่ หรือถ้าคุณต้องการสร้างเวอร์ชันที่เป็นทางการมากขึ้นของโครงการนี้ ให้ทำตามขั้นตอนที่เหลือต่อไป

ขั้นตอนที่ 7: ฮาร์ดแวร์ที่ดีกว่า: RGB LED Driver Shield และ Enclosure

Image
Image
ฮาร์ดแวร์ที่ดีกว่า: แผงไดรเวอร์ RGB LED และกล่องหุ้ม
ฮาร์ดแวร์ที่ดีกว่า: แผงไดรเวอร์ RGB LED และกล่องหุ้ม
ฮาร์ดแวร์ที่ดีกว่า: แผงไดรเวอร์ RGB LED และกล่องหุ้ม
ฮาร์ดแวร์ที่ดีกว่า: แผงไดรเวอร์ RGB LED และกล่องหุ้ม

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

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

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

ฉันตัดสินใจว่าพลังสำหรับโครงการควรมาจากเกราะป้องกัน 12V ที่จ่ายให้กับชิลด์จ่ายไฟให้กับทั้งแถบ LED และ Arduino จ่ายไฟให้กับ Arduino โดยเชื่อมต่ออินพุตของแหล่งจ่ายเข้ากับพิน VIN ของ Arduino ซึ่งเป็นแบบสองทิศทาง (คุณสามารถจ่ายพลังงานให้กับ Arduino บนพินนี้ หรือหากคุณเชื่อมต่อพลังงานกับ Arduino ที่อื่น มันจะให้พลังงานที่ให้มาแก่คุณ เปิดพินนี้) ไดโอดป้องกัน D1 ป้องกันไม่ให้กระแสไฟใดๆ ที่เชื่อมต่อโดยตรงกับ Arduino (เช่น USB) พยายามเปิดไฟ LED

ทำไมไม่ใช้แจ็คไฟของ Arduino และเพียงแค่เชื่อมต่อ 12V ที่นั่น? ในขณะที่ฉันสามารถจ่ายไฟ 12V ให้กับแจ็คจ่ายไฟของ Arduino และใช้พิน VIN เพื่อคว้าพลังงานนั้นสำหรับโล่ แต่ฉันกังวลว่าไดโอด D1 ของ Arduino และร่องรอยจะไม่สูงถึงกระแสสูงที่เป็นไปได้ในการขับ LED แถบ. ดังนั้นฉันจึงตัดสินใจว่าโล่ของฉันจะเข้าควบคุมอินพุตพลังงานและจ่ายพลังงานให้กับ Arduino แทน ฉันยังต้องการ 5V สำหรับ Trellis แต่การควบคุมพลังงานออนบอร์ดของ Arduino จ่าย 5V บนพินหลายตัว ดังนั้นฉันจึงใช้หนึ่งในนั้นสำหรับ โครงสร้างบังตาที่เป็นช่อง นั่นช่วยให้ฉันวางวงจรควบคุมไว้บนโล่

จากนั้นฉันก็วาง PCB ฉันใช้แหล่งข้อมูลบางอย่างที่ฉันพบเพื่อวัดตำแหน่งที่แน่นอนของพินเพื่อให้ตรงกับส่วนหัวของ Arduino Uno ความขยันเล็กน้อยและจับคู่กับการลองครั้งแรก วงจรป้องกันมีไม่มาก ดังนั้นฉันจึงมีพื้นที่เหลือเฟือ ฉันวางร่องรอยไว้กว้างสำหรับโหลด LED ดังนั้นจึงมีความจุกระแสไฟฟ้าเพียงพอสำหรับความต้องการของฉัน ฉันตั้งค่า MOSFET ไว้ในตำแหน่งที่สามารถติดตั้งแบบเรียบ มีหรือไม่มีฮีตซิงก์ จนถึงตอนนี้ ฉันไม่ต้องการฮีตซิงก์สำหรับจำนวนไฟ LED ที่ฉันใช้อยู่ แต่มีพื้นที่ว่างหากจำเป็น

ฉันยังเพิ่มรูที่เข้ากับรูยึดบน Trellis เพื่อให้ฉันสามารถใช้สแตนด์ออฟเพื่อยึด Trellis เข้ากับเกราะของฉันได้ เมื่อเสียบชิลด์เข้ากับ Arduino และ Trellis ถูกแขวนไว้เหนือชิลด์ ทุกอย่างควรจะดีและมั่นคง

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

จากนั้นฉันก็เริ่มทำงานกับตู้ เมื่อใช้ Fusion 360 ฉันได้ออกแบบกล่องหุ้มที่เรียบง่ายเพื่อให้มีสามแผง (Arduino Uno, ชิลด์ และ Trellis) รูในตัวเครื่องช่วยให้สามารถเชื่อมต่อกับพอร์ต USB ของ Arduino และแน่นอนว่าสามารถเข้าถึงการเชื่อมต่อแถบ LED และแจ็คไฟของโล่ได้ ช่องเสียบไฟ Arduino ถูกปิดไว้โดยกล่องหุ้มเพื่อให้แน่ใจว่าไม่ได้ใช้งาน หลังจากสร้างต้นแบบสำหรับการทดสอบฟิตติ้งสองสามตัว ในที่สุดฉันก็ได้แบบที่ฉันพอใจ ฉันได้โพสต์ไฟล์ STL สำหรับสิ่งที่แนบมากับ Thingiverse

ในอนาคต ฉันจะทำเวอร์ชันของบอร์ดที่สามารถเสียบ Nano ได้โดยตรง ซึ่งจะทำให้โปรเจ็กต์นี้กะทัดรัดยิ่งขึ้น ก่อนหน้านั้น คุณสามารถใช้อะแด็ปเตอร์ Nano to Uno shield แบบนี้ได้

หากคุณกำลังจะทำโล่ นี่คือสิ่งที่คุณต้องการนอกเหนือจากชิ้นส่วนที่กล่าวถึงในขั้นตอนที่ 1:

  • RGB LED Driver Shield PC board (จาก ExpressPCB หรืออื่น ๆ คุณสามารถดาวน์โหลดไฟล์จาก repo Github ของฉันสำหรับโครงการ);
  • 1N4002 ไดโอด;
  • ตัวเก็บประจุอิเล็กโทรไลต์รัศมี 100uF 25V (ใช้ 220uF หรือ 470uF หากโหลด LED ขนาดใหญ่);
  • เต้ารับไฟฟ้า รุ่น PJ202-AH (รุ่นพิกัด 5A)

ส่วนต่อไปนี้เป็นตัวเลือก:

  • LED 3 มม. - สีใดก็ได้ สำหรับหลอดไฟนำร่อง (อาจละเว้น)
  • ตัวต้านทาน 1500 โอห์ม - จำเป็นเฉพาะเมื่อใช้หลอดไฟนำร่อง LED

แนะนำ: