สารบัญ:

การแสดงภาพและเสียง LED: 8 ขั้นตอน
การแสดงภาพและเสียง LED: 8 ขั้นตอน

วีดีโอ: การแสดงภาพและเสียง LED: 8 ขั้นตอน

วีดีโอ: การแสดงภาพและเสียง LED: 8 ขั้นตอน
วีดีโอ: วงจรไฟ LED วิ่ง 8 ช่อง 20โหมด 5V-12V-24V 600mA 2024, กรกฎาคม
Anonim
Image
Image
จอแสดงผลภาพและเสียง LED
จอแสดงผลภาพและเสียง LED
จอแสดงผลภาพและเสียง LED
จอแสดงผลภาพและเสียง LED

โดย beckslelandsimpsonติดตามเพิ่มเติมโดยผู้เขียน:

เริ่มสวนตั้งแต่เริ่มต้นจากเรื่องที่สนใจ
เริ่มสวนตั้งแต่เริ่มต้นจากเรื่องที่สนใจ
เริ่มสวนตั้งแต่เริ่มต้นจากเรื่องที่สนใจ
เริ่มสวนตั้งแต่เริ่มต้นจากเรื่องที่สนใจ

[คำเตือน: ไฟกะพริบในวิดีโอ]

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

ด้วยการติดเซนเซอร์เสียง ปุ่ม และจอยสติ๊กที่มีให้เลือกหลายแบบ ทำให้สามารถสลับการแสดงผลระหว่างโหมดโต้ตอบและโหมดอัตโนมัติด้วยสี เอฟเฟกต์ โหมด ความเร็ว ความสว่าง และรูปแบบที่กำหนดค่าได้

ผู้ใช้สามารถสลับระหว่างโหมดและการกำหนดค่าต่างๆ โดยใช้ปุ่ม MODE และ CONFIG โดยใช้จอยสติ๊กและปุ่ม SELECT เพื่อทำการเลือก ตัวเลือกปัจจุบันของผู้ใช้จะแสดงบนหน้าจอ LCD ขนาด 16x2 ที่กึ่งกลางคอนโซล

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

โหมด

  • เกม: เกมสามารถเล่นได้โดยใช้เมทริกซ์นำเป็นหน้าจอ
  • เสียงรบกวน: ไฟ LED จะสว่างขึ้นตามระดับเสียงและความถี่ของเสียงรบกวนจากสิ่งแวดล้อม
  • สี: ไฟ LED ที่ใช้เป็นแสงแสดงจานสีที่กำหนดไว้ล่วงหน้า
  • ฝน: เอฟเฟกต์แสงฝนที่ตกลงมา

การกำหนดค่าโหมด

  • สี - ตั้งค่าจานสีของแถบ

    • Pride Flag - สายรุ้ง
    • ธงชาติทรานส์ - ฟ้า ชมพู ขาว
    • ไฟ - แดง ส้ม เหลือง
    • แสง - สีขาว
  • สไตล์ - ตั้งค่าเอฟเฟกต์การแสดงแถบ

    • บล็อก - หากอยู่ในโหมดสี สีของไฟ LED จะคงที่ ในสัญญาณรบกวนของโหมด จะทำให้ LED ทั้งหมดตั้งค่าสีของสัญญาณรบกวนล่าสุด ทำให้เกิดเอฟเฟกต์กะพริบ
    • Shimmer - ไฟ LED สลับกันสั่น ซีดจางระหว่างเปิดและปิด
    • แทร็ก - หากอยู่ในโหมดสี แบบแผนชุดสีของไฟ LED จะเคลื่อนที่ข้ามแถบ ในโหมดนอยส์ จะทำให้สีของสัญญาณรบกวนเคลื่อนที่ข้ามแถบเป็นคลื่นเคลื่อนที่
  • Rain Effect - วิธีสร้างรูปแบบฝน

    • สุ่ม - แถบฝนใหม่จะถูกจัดตำแหน่งแบบสุ่ม และรูปแบบจะแตกต่างกันไป
    • คงที่ - รูปแบบฝนซ้ำ
  • เกม - เกมไหนที่คุณสามารถเล่นบนเมทริกซ์

    Snake - Viva la Nokia เล่นได้เฉพาะเมื่อแถบอยู่ในการกำหนดค่าเมทริกซ์

  • Effect Color - เอฟเฟกต์ใช้แหล่งที่มาของสีอะไร

    • ชุดสี - เอฟเฟกต์ (เช่น ฝน) สุ่มสีจากชุดสีที่ตั้งไว้
    • ความถี่เสียงรบกวน - เอฟเฟกต์เมื่อสร้างจะใช้สีที่สอดคล้องกับความถี่ของสัญญาณรบกวนปัจจุบัน
    • Noise Vol - เอฟเฟกต์เมื่อสร้างจะใช้สีที่สอดคล้องกับระดับเสียงปัจจุบัน
  • ขนาด - การจัดวางจอภาพเป็นอย่างไร?

    • 250x1 สตริป
    • 50x5 เมทริกซ์
    • 25x10 เมทริกซ์

ความเร็วและความสว่าง

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

สถานะแฟลชและไฟ LED

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

ขั้นตอนที่ 1: ข้อกำหนด

ส่วนประกอบ:

  • เขียงหั่นขนม ~ 5 ปอนด์
  • StripBoard ~ 10 ปอนด์สำหรับชุด 5
  • Arduino Mega (โคลนอะไรก็ได้) ~ 20 ปอนด์
  • ตัวต้านทานโพเทนชิโอมิเตอร์ 2x 1M
  • แถบแอดเดรสแอดเดรสแยกได้ 300 RGB ~ 30 ปอนด์
  • ส่วนหัวของพิน ~ £5
  • 10x 10K, 1x 300 ตัวต้านทาน
  • โมดูล LCD I2C ~ £5
  • จอยสติ๊ก 4 สวิตช์ ~ 10 ปอนด์
  • เซ็นเซอร์เสียง ~ 5 ปอนด์
  • 1x 1μF, 1x 10μF, 1x 100nF ตัวเก็บประจุ
  • ปุ่ม 3x (ชั่วขณะ) คำแนะนำ: อาร์เคด มินิ ~ 3 ปอนด์
  • สวิตช์ 2x คำแนะนำ: สลับ ~ 5 ปอนด์
  • เพาเวอร์แจ็ค
  • กล่อง ~ 20x20x15 ซม. - กระดาษแข็งง่ายที่สุด แต่ถ้าคุณใช้เครื่องตัดเลเซอร์ได้ แสดงว่าคุณทำสำเร็จ

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

ในขณะที่ฉันใช้พิน I/O ของ Arduino Megas เป็นเปอร์เซ็นต์ขั้นต่ำ แต่มันถูกเลือกเนื่องจากเป็นไดนามิกที่ใหญ่กว่าและขนาดหน่วยความจำของโปรแกรม ซึ่ง Arduino Uno พิสูจน์แล้วว่าไม่เพียงพอ

ทางเลือก LEDStrip

แถบ LED ที่ฉันใช้คือแถบยืดหยุ่น LED WS2813 LED ที่สามารถระบุแอดเดรสได้ 300 RGB WS2812 เวอร์ชันอัปเกรด รูปแบบนี้แม้ว่าจะมีราคาแพงกว่าเล็กน้อย แต่ปรับปรุงใน WS2812 ด้วยการส่งสัญญาณคู่ ซึ่งหมายความว่าหาก LED ดวงหนึ่งหยุดทำงาน แถบที่เหลือหลังจากที่ยังคงทำงานอยู่ ด้วยเหตุนี้จึงมี 4 พิน: 5V, GND, DI (อินพุตข้อมูล) และ BI (อินพุตสำรอง)

ค่าใช้จ่ายทั้งหมด: ~ 100

อุปกรณ์:

  • หัวแร้ง + บัดกรี
  • มัลติมิเตอร์ (อุปกรณ์เสริม แต่แนะนำ)
  • เครื่องตัดและปอกสายไฟ
  • ลวด: ควรใช้แกนเดี่ยวแบบยืดหยุ่น (LOTS)
  • มีดผ่าตัด
  • ไม้บรรทัด/ดินสอ
  • แหล่งจ่ายไฟ 1x 5V
  • ไขควงมือ
  • เครื่องพิมพ์ A ถึง B สาย USB

ซอฟต์แวร์:

Arduino IDE

ทักษะ:

  • บัดกรี
  • Arduino บางส่วนมีประสบการณ์ทั้งหมด แต่จำเป็นอย่างยิ่ง

ขั้นตอนที่ 2: แผนผัง & รหัส

แผนผังและรหัส
แผนผังและรหัส
แผนผังและรหัส
แผนผังและรหัส
แผนผังและรหัส
แผนผังและรหัส

โปรเจ็กต์นี้ประกอบด้วยโพเทนชิโอมิเตอร์ 2 ตัว, เซ็นเซอร์เสียง 1 ตัว, แถบ LED 1 ดวง, ปุ่มชั่วขณะ 3 ปุ่ม, จอยสติ๊ก 1 ตัว (ปุ่มชั่วขณะ 4 ปุ่ม), โมดูล LCD 1 โมดูล และสวิตช์ 2 ตัว

ฉันแนะนำให้ตรวจสอบให้แน่ใจว่าคุณเข้าใจการเดินสายและตั้งค่าวงจรพื้นฐานบนเขียงหั่นขนม ก่อนบัดกรีอุปกรณ์อิเล็กทรอนิกส์กับแถบแถบในขั้นตอนต่อไปเพื่อความทนทานในระยะยาว อย่างน้อยที่สุดคุณควรจะสามารถเชื่อมต่อพิน Arduino ต่างๆ กับค่าเริ่มต้นของ HIGH(5V)/LOW(GND) และทดลองกับการตั้งค่าดั้งเดิมของ LEDStrip ที่แตกต่างกันในโค้ด (ซึ่งถูกทำเครื่องหมาย - ดูขั้นตอนโค้ด) เพื่อดู เอฟเฟกต์แสงเบื้องต้นบางส่วน

วงจรเสียง

วงจรเสียงจะกล่าวถึงในขั้นตอนต่อไป และจำเป็นเฉพาะถ้าคุณต้องการเอฟเฟกต์เสียง มิฉะนั้น คุณสามารถเชื่อมต่อพินอินพุตแบบอะนาล็อก AUDIO A0, A1 ถึง GND ผ่านตัวต้านทานแบบดึงลง (~300 โอห์ม) วงจรนี้พยายามแยกความถี่และระดับเสียงของเสียงที่วัดได้ โดยให้ค่าอินพุตสองค่าที่แตกต่างกันเพื่อควบคุมการแสดงภาพเสียง เช่น ความสูง (ปริมาตรปริมาตร) และสี (ความถี่)

แถบ LED

ฉันได้แนบแผ่นข้อมูลสำหรับแถบ WS2813 ซึ่งมีการเดินสายในอุดมคติ สามารถดึงพิน BI ผ่านตัวต้านทานลงกับพื้นได้ และควรเชื่อมต่อตัวเก็บประจุระหว่าง GND และ +5V และวางไว้ใกล้กับแถบ สิ่งนี้ทำให้การเปลี่ยนแปลงอย่างกะทันหันของความต้องการในปัจจุบันของแถบราบรื่นขึ้น ตัวอย่างเช่น หากมีการเพิ่มขึ้นอย่างมากอย่างกะทันหันเมื่อไฟ LED ทั้งหมดเปิดขึ้น ตัวเก็บประจุที่ใช้ประจุที่เก็บไว้สามารถจ่ายได้เร็วกว่า Arduino ซึ่งช่วยลดความเครียดบนส่วนประกอบบอร์ด

แถบถูกควบคุมโดยใช้ไลบรารี FASTLED (ดูขั้นตอนโค้ดสำหรับรายละเอียดเพิ่มเติม) และเชื่อมต่อกับพิน 5

โมดูล LCD

โมดูล LCD ที่ฉันแนะนำใช้วงจรภายในเพื่อให้ต้องใช้พินอินพุต 2 ตัวเท่านั้น ซึ่งจะช่วยลดความซับซ้อนของการบัดกรีลงในวงจรได้อย่างมาก มันเชื่อมต่อกับหมุด SCL, SDA

โพเทนชิโอมิเตอร์

โพเทนชิโอมิเตอร์เป็นตัวต้านทานแบบปรับค่าได้ ซึ่งช่วยให้คุณควบคุมแรงดันไฟฟ้าที่วัดได้ที่ขาภายใน Arduino สามารถอ่านค่านี้เป็นค่าแอนะล็อกได้ ฉันใช้สิ่งเหล่านี้เป็นวิธีการโต้ตอบเพื่อควบคุมความเร็วและความสว่างของจอแสดงผลด้วยตนเอง และพวกมันเชื่อมต่อกับพินอินพุตแบบอะนาล็อก: A3, A2

พลังงานภายนอก

สำหรับโครงการขนาดเล็ก (< 20 LEDs) Arduino สามารถขับเคลื่อนผ่าน USB เพียงอย่างเดียว แต่สำหรับกรณีการใช้งานที่ใหญ่กว่านี้ (250 LEDs) เนื่องจากความต้องการกระแสไฟขนาดใหญ่จำเป็นต้องมีแหล่งจ่ายไฟภายนอก +5V ฉันขับเคลื่อน Arduino ผ่านแจ็คภายนอกที่เชื่อมต่อกับ GND และ VIN ของ Arduino เมื่อใช้พลังงานผ่าน USB เท่านั้น สีของ LED จะบิดเบี้ยวและหน้าจอ LCD จะไม่สว่างเต็มที่

ปุ่ม/สวิตช์/จอยสติ๊ก

ในตำแหน่งที่เป็นกลาง หมุด INPUT ของปุ่มต่างๆ จะถูกดึงลงไปที่ GND และ Arduino จะอ่านค่า LOW แบบดิจิตอล แต่เมื่อกดลงไป หมุดจะเชื่อมต่อกับค่า +5V สำหรับการอ่านค่า high แบบดิจิตอล ดูตัวอย่างปุ่ม Arduino ทั่วไปที่นี่ ค่าที่อ่านเหล่านี้สามารถใช้เป็นค่าบูลีนแบบมีเงื่อนไขสำหรับโปรแกรม ทำให้เกิดการประมวลผลส่วนต่างๆ ของโค้ด ปุ่ม/สวิตช์เชื่อมต่อกับพินอินพุตดิจิตอลต่อไปนี้: โหมด/การกำหนดค่า: 3/2 จอยสติ๊ก L/R/U/D: 10/11/13/12 เลือก: 9

ขั้นตอนที่ 3: เอฟเฟกต์เสียง

เอฟเฟกต์เสียง
เอฟเฟกต์เสียง
เอฟเฟกต์เสียง
เอฟเฟกต์เสียง
เอฟเฟกต์เสียง
เอฟเฟกต์เสียง

ส่วนที่ซับซ้อนที่สุดของวงจรคือ ตัวแปลงแรงดันเสียง - ความถี่ ฉันทำตามแผนผังที่แสดงด้านบน (ดูข้อมูลเพิ่มเติมที่นี่) อาจต้องมีการปรับเปลี่ยนตัวเก็บประจุ ค่าความต้านทาน ขึ้นอยู่กับความแรงของสัญญาณเสียงของคุณ ตัวอย่างที่ให้มา โดยใช้สัญญาณสลับ 12V ฉันพบผลลัพธ์ที่ดีโดยใช้ 3.3V เป็นแรงดันไฟฟ้า และป้อน 5V เข้าไปในเซ็นเซอร์เสียง

สัญญาณสองสัญญาณที่ฉันดึงออกมาจากวงจรนี้คือความถี่ (VOUT) และระดับเสียง (V2 +)

หมายเหตุที่เป็นประโยชน์

ตัวเก็บประจุขนาดใหญ่กว่า (เกณฑ์ประมาณเหนือ 1µF โดยประมาณ ไม่ใช่เซรามิก) เป็นแบบโพลาไรซ์ ซึ่งรวมถึงตัวเก็บประจุด้วยไฟฟ้า กระแสไหลจาก + ไป - ข้าง บนไดอะแกรม ฉันได้สังเกตทิศทางที่ควรจัด

ทรานซิสเตอร์ที่ใช้ในวงจรนี้คือ PNP ทรานซิสเตอร์เหล่านี้ยอมให้กระแสไหลจากตัวปล่อยไปยังตัวสะสมเมื่อขั้วลบถูกนำไปใช้กับฐานที่สัมพันธ์กับตัวปล่อย

ความเศร้า #1

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

ขั้นตอนที่ 4: การออกแบบและสร้างคอนโซล

การออกแบบและสร้างคอนโซล
การออกแบบและสร้างคอนโซล
การออกแบบและสร้างคอนโซล
การออกแบบและสร้างคอนโซล
การออกแบบและสร้างคอนโซล
การออกแบบและสร้างคอนโซล
การออกแบบและสร้างคอนโซล
การออกแบบและสร้างคอนโซล

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

  1. ร่างเค้าโครงทั่วไปของคอนโซลที่คุณต้องการ
  2. วัดและทำเครื่องหมายตำแหน่งของส่วนประกอบต่างๆ ที่ด้านบนของกล่อง ตรวจสอบให้แน่ใจว่าคุณวัดขนาดด้านในของปุ่ม/สวิตช์/จอยสติ๊ก เนื่องจากคุณต้องการให้ช่องว่างใหญ่พอที่จะกดส่วนประกอบผ่านเข้าไปได้ แต่ขอบด้านนอกของปุ่มเหล่านั้นยังติดอยู่ที่กระดาษแข็ง ฉันแนะนำให้ใช้มีดผ่าตัดเพื่อตัดรูเหล่านี้ แต่ควรใช้กรรไกรคมร่วมกับไขควงสำหรับรูกลม ตัดช้าๆ พยายามใส่ส่วนประกอบให้พอดี และค่อยๆ ขยายขนาดที่จับ ทำทีละส่วนประกอบ
  3. สำหรับส่วนประกอบที่มีขนาดใหญ่กว่า เช่น จอยสติ๊กและจอ LCD ฉันแนะนำให้ขันน็อต/สลักเกลียวผ่านด้านบนของคอนโซลเพื่อยึดเข้าที่อย่างแน่นหนา
  4. ตัดสามรูที่ด้านล่างของคอนโซล ใช้สำหรับอินพุตพลังงาน อินพุต USB เพื่อตั้งโปรแกรมขั้วต่อเอาต์พุต Arduino และ LEDStrip

เคล็ดลับ

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

ขั้นตอนที่ 5: แผนผังประสาน

แผนผังประสาน
แผนผังประสาน
แผนผังประสาน
แผนผังประสาน
แผนผังประสาน
แผนผังประสาน
แผนผังประสาน
แผนผังประสาน

คุณจะต้องใช้แผ่นกระดานสตริปอย่างน้อย 25 แถว คูณ 20 โคลส อย่างไรก็ตาม เมื่อเลือกอันที่ใหญ่กว่า คุณจะสามารถแท๊กไมโครคอนโทรลเลอร์ของคุณเป็นสีน้ำเงินบน Stripboard ข้างๆ สายไฟได้ ซึ่งหมายความว่าการเชื่อมต่อที่ไม่เสถียรเพียงอย่างเดียวคือการเชื่อมต่อระหว่าง Stripboard และส่วนประกอบที่ติดอยู่กับพื้นผิวคอนโซล สิ่งสำคัญในทุกขั้นตอนของกระบวนการนี้คือเมื่อสามารถลดความเครียดในการเดินสายได้ เพื่อให้แน่ใจว่าผลิตภัณฑ์ขั้นสุดท้ายจะมีอายุการใช้งานยาวนาน

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

ฉันสนับสนุน Stripboard ที่ถือวงจรที่หนักที่สุดบางส่วนโดยใช้สตริง/ลวดเพื่อเชื่อมต่อกับผนังด้านในของกล่องกระดาษแข็ง

สายไฟหลักและสายไฟ LEDStrip ที่ออกจากคอนโซลมีขั้วต่อ midwire ซึ่งสามารถถอดออกได้ ซึ่งหมายความว่าสายไฟสามารถร้อยเกลียวผ่านรูที่ด้านล่างของคอนโซลและยังคงเปิดกล่องได้

เคล็ดลับการบัดกรี

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

เคล็ดลับเลย์เอาต์

สายไฟทั้งหมด (ไปทางหมุด Arduinos) อยู่ที่ขอบของบอร์ด

หากเป็นไปได้ การใช้ลวดสีต่างกันในแถวใกล้เคียงจะช่วยหลีกเลี่ยงความสับสนในการเดินสาย

GND, +3.3V, +5.5V ควรวางไว้ที่แถวขอบเสมอเพื่อให้ระบุได้ง่าย การวาง GND และ +3.3/5V ที่ขอบตรงข้ามช่วยป้องกันการลัดวงจรที่อาจเกิดขึ้น แต่โดยส่วนตัวแล้วฉันไม่ได้กังวลและวางไว้ใน 3 อันดับแรก แถว เลย์เอาต์ของคอนโซลสามารถกำหนดลำดับของแถวลวดได้บางส่วน ส่วนประกอบใกล้เคียงจะจับคู่กับแถวที่อยู่ใกล้เคียง หมายเลข PIN ใน Arduino IDE สามารถเขียนใหม่ได้เสมอ

ด้วยการบัดกรีหมุด +5V ของปุ่ม/ตัวต้านทานทั้งหมดเข้าด้วยกันที่ด้านหลังของคอนโซลเข้าด้วยกันในสายโซ่เดซี่ จำเป็นต้องมีสายไฟ +5V เพียงเส้นเดียวระหว่าง Stripboard และส่วนบนของคอนโซล ซึ่งช่วยลดจำนวนสายเชื่อมต่อที่มีช่องโหว่ได้อย่างมาก ตัวอย่างเช่น สำหรับสวิตช์ 4 ตัวของจอยสติ๊ก ฉันเชื่อมต่อขั้ว 5V ทั้งหมดเข้าด้วยกัน

จงใจกว้างกับความยาวของสายไฟที่ต่อระหว่าง Stripboard กับคอนโซล ซึ่งง่ายกว่ามากที่จะลดในภายหลัง มากกว่าพยายามเพิ่ม

หากเป็นไปได้ ให้ใช้สายที่ยืดหยุ่นระหว่างส่วนประกอบ Stripboard และคอนโซล ซึ่งจะทำให้เปิดและดีบักคอนโซลได้ง่ายขึ้นในภายหลัง

ขั้นตอนที่ 6: ส่วนขยาย 1: LED Matrix

ส่วนขยาย 1: LED Matrix
ส่วนขยาย 1: LED Matrix
ส่วนขยาย 1: LED Matrix
ส่วนขยาย 1: LED Matrix
ส่วนขยาย 1: LED Matrix
ส่วนขยาย 1: LED Matrix

ด้วยการเชื่อมต่อแถบ LED เช่นเดียวกับคอนโซล เอฟเฟกต์ฝน สี ไฟแฟลช และสัญญาณรบกวนส่วนใหญ่สามารถแสดงผลได้ แต่รูปแบบการแสดงภาพมีจำกัด รหัสช่วยให้สามารถกำหนดค่าการแสดงผลเพิ่มเติมในการจัดเรียง 250x1, 50x5 และ 25x10 ซึ่งช่วยให้สามารถสร้างภาพเมทริกซ์ได้ สัญญาณรบกวนสามารถแสดงเป็นคลื่นที่เคลื่อนที่ได้ สามารถเล่นเกมบนเมทริกซ์ได้เหมือนหน้าจอความละเอียดต่ำ การเลือกความยาวแถบแต่ละแถบ 25 พิกเซลเป็นเรื่องส่วนตัว และคุณสามารถเลือกสิ่งนี้เองและตั้งค่าในโค้ด สิ่งที่ฉันต้องการเหนือสิ่งอื่นใดคือความยืดหยุ่น ดังนั้นไม่ว่าเอฟเฟกต์กราฟิกใดก็ตามที่ฉันตัดสินใจเขียนโค้ดในภายหลัง ฉันสามารถประกอบ HW ในการจัดเรียงที่จำเป็นได้

ความเศร้า #2

ฉันมีความฝัน และต้องใช้หมึกนำไฟฟ้าเพื่อระบายสีวงจรต่อบนกระดาษแข็ง ซึ่งสามารถกดติดกับปลายแถบไฟ LED ที่ติดกันได้

ประโยชน์:

  1. ดูเท่สุดๆ และฉันสามารถใช้กระดาษแข็งสีต่างๆ ได้
  2. ฉันได้วาดวงจร
  3. การปรับแต่งขั้นสูงสุด คิดการจัดเรียงใหม่ เพียงแค่วาด

ข้อเสีย:

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

ฉันยืนยันว่าถ้ามันใช้งานได้มันคงจะเจ๋งจริงๆ และฉันเสียใจเพียงบางส่วนที่ใช้เวลา 2 ชั่วโมงที่จัดสรรให้กับความพยายามนี้

ทางออกที่แท้จริง

ฉันตัดสินใจใช้ระบบหัวต่อตัวผู้/ตัวเมียแบบเสียบได้ คล้ายกับที่ใช้เชื่อมต่อสาย Stripboard กับ Arduino โดยการวาง M/F ไว้ที่ปลายแต่ละด้าน คุณสามารถเลือกเสียบแถบแต่ละเส้นเข้าด้วยกันเพื่อสร้างแถบที่ไม่ได้เจียระไนเดิมขึ้นมาใหม่ได้ หรือสามารถใช้ขั้วต่อสายไฟแบบยืดหยุ่นระดับกลางได้ เพื่อให้สามารถพับแถบกลับเข้าหากันเพื่อสร้างเมทริกซ์หรือโครงแบบพิเศษอื่นๆ

  1. ตัด Led Strip ออกเป็นส่วนๆ ฉันเลือก 10 แถบยาว 25 เหลือ 50 LEDs สำรองสำหรับโครงการอื่น
  2. ประสานการเชื่อมต่อทองแดงแต่ละอันที่ปลายแต่ละด้านของแถบ ระวังอย่าให้พลาสติกละลาย ถ้าคุณซื้อแบบมีฝาปิดแบบกันน้ำ คุณจะต้องตัดส่วนบนเล็กๆ ที่ปลายแต่ละด้าน
  3. LEDStrip ของฉันมีตัวเชื่อมต่อ 4 ตัวที่ปลายแต่ละด้าน และ 10 แถบ ดังนั้นฉันจึงตัดส่วนหัว 10 ตัวผู้ 10 ตัวเมีย 10 ตัวต่อความยาว 4 ตัว สำหรับแต่ละแถบฉันบัดกรีตัวผู้กับปลายด้านหนึ่งและตัวเมียกับอีกด้านหนึ่ง ตรวจสอบให้แน่ใจว่าปลายแต่ละอันเป็นชาย/หญิง ซึ่งจะทำให้คุณสามารถเชื่อมต่อเข้ากับสายโซ่เดซี่ได้เหมือนแฟชั่น
  4. ทดสอบการเชื่อมต่อโดยเสียบแถบ 10 แถบเข้าด้วยกัน แก้ไขด้วยการบัดกรีเพิ่มเติมหากจำเป็น
  5. ตอนนี้เราต้องการขั้วต่อสายไฟ ซึ่งจะใช้เพื่อเชื่อมต่อแถบแต่ละเส้นเข้าด้วยกันเป็นการจัดเรียงที่ยืดหยุ่น ไม่ว่าระยะห่างจากกันหรือการประกอบเมทริกซ์ก็ตามคือเป้าหมาย ความยาวของพวกมันจะเป็นตัวกำหนดว่าคุณสามารถวางแต่ละส่วนต่อเนื่องของ LEDStrip ได้ไกลแค่ไหน ตัดลวดให้ยาวกว่าที่คุณต้องการเล็กน้อยเนื่องจากความยาวบางส่วนจะหายไปเมื่อเชื่อมต่อสายไฟ ตัดตัวผู้อีก 10 ตัว ส่วนหัวตัวเมีย 10 ท่อนที่มีความยาว 4. ตัดลวด 40 ชิ้น (ควรมีหลายสีและยืดหยุ่นได้) ดึงปลายแต่ละด้านออกและบัดกรีก่อน
  6. ในการสร้างการเชื่อมต่อแบบมีสาย ขั้นแรกให้ใช้สายไฟ 4 เส้น (ควรใช้สีที่แตกต่างกันเพื่อให้ระบุได้ว่าสายใดเชื่อมต่อกับพินใด) และประสานเข้ากับส่วนหัวของตัวผู้ จากนั้นคุณต้องการถักเปีย 4 เส้นนี้ ซึ่งจะทำให้การเดินสายเป็นไปอย่างเรียบร้อย เมื่อถักแล้ว (คุณภาพที่เราต้องการที่นี่เพียงพอแล้ว) คุณสามารถบัดกรีปลายอีกด้านเข้ากับขั้วต่อตัวเมียได้ ตรวจสอบให้แน่ใจว่าได้บัดกรีสายเดียวกันเข้ากับหมุดเดียวกัน หากลวดทั้งหมดของคุณมีสีเดียวกัน ให้ทำเครื่องหมายหรือใช้มัลติมิเตอร์เพื่อพิจารณาว่าเส้นลวดใดเป็นเส้นใด เนื่องจากหลังจากถักแล้วลวดจะไม่มีความชัดเจน ทำขั้นตอนนี้ซ้ำสำหรับการเชื่อมต่อแบบมีสายแต่ละครั้งที่คุณต้องการ
  7. ทดสอบการเชื่อมต่ออีกครั้ง โดยเชื่อมต่อแถบทั้งหมดด้วยการเชื่อมต่อแบบมีสาย ลองใช้การตั้งค่าขนาดคอนโซลและจัดเรียง LEDStrips ในรูปแบบเมทริกซ์ที่แตกต่างกัน เป็นการดีกว่าที่จะทำลายและระบุการเชื่อมต่อที่อ่อนแอก่อนหน้านี้มากกว่าในภายหลัง

ตอนนี้คุณมีแถบแยก 10 แถบ ซึ่งสามารถเชื่อมต่อโดยตรงเพื่อสร้างแถบยาวเดี่ยว หรือจัดเรียงใหม่ในรูปแบบเมทริกซ์

ขั้นตอนที่ 7: การกำหนดค่าและการตั้งค่า

การกำหนดค่าและการตั้งค่า
การกำหนดค่าและการตั้งค่า
การกำหนดค่าและการตั้งค่า
การกำหนดค่าและการตั้งค่า

เวอร์ชันล่าสุดสามารถพบได้ใน github ของฉันเสมอ: rs6713/leddisplay/ อย่าลังเลที่จะแยกมัน/ดาวน์โหลดและเล่น

ติดตั้ง Arduino IDE

ในกรณีอัศจรรย์ที่คุณทำแบบฝึกหัดนี้เสร็จสิ้นโดยที่ไม่มี Arduino Experience มาก่อน คุณสามารถดาวน์โหลด Arduino IDE ได้ที่นี่ เพียงติดตั้งและเปิดรหัสใน IDE เสียบบอร์ดผ่านสายเคเบิลเครื่องพิมพ์เข้ากับคอมพิวเตอร์ (คุณอาจต้องติดตั้งไดรเวอร์เพื่อให้คอมพิวเตอร์รู้จักบอร์ด Arduino แต่สิ่งนี้จะเกิดขึ้นโดยอัตโนมัติในครั้งแรกที่คุณเสียบ Arduino เข้ากับคอมพิวเตอร์ของคุณ) เลือกประเภทบอร์ด และเลือกพอร์ต COMM ที่ใช้งานอยู่ที่ Arduino เสียบอยู่

การกำหนดค่า

หากต้องการเปลี่ยนการตั้งค่าต่างๆ ของจอแสดงผล ไม่จำเป็นต้องมีความรู้ด้านการเขียนโปรแกรมที่ซับซ้อน

พื้นที่ในโปรแกรมที่ไวต่อการกำหนดค่าจะมีเครื่องหมาย /*** CONFIGURE ME ***/

คุณสามารถเปลี่ยน/กำหนดค่าพื้นที่ต่อไปนี้ของโปรแกรมได้อย่างง่ายดาย:

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

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

ที่อัพโหลด

เมื่อคุณตั้งค่าหมายเลข PIN ที่ถูกต้องสำหรับส่วนประกอบ ขนาดสตริป และจำนวน LED แล้ว คุณสามารถอัปโหลดโปรแกรมไปยัง Arduino ได้โดยกดอัปโหลด หวังว่าคุณจะได้ทำสิ่งนี้ไปแล้วในขั้นตอนนี้แน่นอนในระหว่างการทดสอบ เสียบแหล่งจ่ายไฟภายนอก 5V และคุณน่าจะไปได้ดี

แก้จุดบกพร่อง

หาก LEDStrip/Console ไม่ทำงานตามที่คาดไว้ อาจมีสาเหตุหลายประการ

LEDStrip ปิดทั้งหมด/บางส่วน:

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

ความสว่างของหน้าจอ LCD ต่ำ/ สี LEDStrip ผิด:

  • ตรวจสอบว่าการเชื่อมต่อสายไฟภายนอกเปิดอยู่/เชื่อมต่ออย่างถูกต้อง เมื่อพลังงานเหลือน้อย ไฟ LED RGB บางสีจะสว่างขึ้นอย่างสม่ำเสมอและหน้าจอ LCD จะพยายามให้แสงสว่างในตัวเอง
  • สีอาจผิดได้หากกำหนดขนาดเช่น โปรแกรม 250x1 ไม่ได้สะท้อนการจัดเรียง LED ในชีวิตจริง
  • สถานการณ์กรณีที่เลวร้ายที่สุดคุณสามารถเปลี่ยนโปรแกรมเพื่อลดจำนวนแถบสว่าง

ความน่ากลัวแบบสุ่ม

วิธีสุดท้ายคือการแสดงความคิดเห็น Serial.prints ถูกทิ้งไว้ตลอดทั้งโค้ด การไม่ใส่ความคิดเห็นจะให้ข้อเสนอแนะเกี่ยวกับส่วนประกอบต่างๆ และสถานะของโปรแกรมภายใน

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

การปรับเปลี่ยนโปรแกรม

ส่วนเพิ่มเติมของการเปลี่ยนแปลงที่เป็นไปได้มีเครื่องหมาย /** CHANGE ME **/

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

  • เพิ่มตัวเลือกจานสีใหม่
  • เพิ่มเอฟเฟกต์ใหม่เช่น ระยับ
  • เพิ่มเกมใหม่

นี่เป็นเพียงคำแนะนำเท่านั้น คุณสามารถเปลี่ยนรหัสได้ตามต้องการ

ขั้นตอนที่ 8: ส่วนขยาย 2: OpenProcessing

ส่วนขยาย 2: OpenProcessing
ส่วนขยาย 2: OpenProcessing

** ในขณะที่เขียน คุณลักษณะนี้ยังคงไม่มีการดำเนินการ ดังนั้นขั้นตอนนี้มีขึ้นเพื่อเน้นแผน/การแสดงออกในอนาคตของโครงการนี้ และเพื่อเน้นความสำคัญของการขยาย LEDStrip เพื่อให้สามารถแสดงเมทริกซ์ **

เหตุผลหนึ่งที่ฉันตื่นเต้นมากที่การขยาย LEDStrip ทำให้สามารถจัดเรียงเป็นเมทริกซ์ได้ ก็คือการมีหน้าจอเปิดโอกาสมากมายในการแมปการแสดงภาพ 2D จากซอฟต์แวร์อื่นๆ ไปยัง Arduino HW

OpenProcessing เป็นชุมชนของกราฟิกเชิงโต้ตอบ 2D ตามภาษาการประมวลผล ด้วยการใช้ฟังก์ชัน Serial Print อย่างง่าย รูปลักษณ์ของแต่ละเฟรมสามารถส่งผ่านแบบพิกเซลต่อพิกเซลไปยัง Arduino ดังนั้นจึงอาจมีโหมดอนาคตสำหรับคอนโซล ซึ่ง Arduino เพียงแค่ฟังการเชื่อมต่อแบบอนุกรมและเพียงแค่อัปเดตเฟรม LED เมทริกซ์ทีละเฟรมตามแอนิเมชั่นที่ระบุโดยโปรแกรมการประมวลผล มีข้อดีหลายประการในการที่การประมวลผลเป็นภาษาที่เชี่ยวชาญด้านทัศนศิลป์และเรียนรู้ได้ง่าย ทำให้สร้างภาพศิลปะที่ซับซ้อนได้อย่างรวดเร็ว นอกจากนี้ยังย้ายหน่วยความจำและความซับซ้อนในการประมวลผลไปยังคอมพิวเตอร์ของคุณด้วย Arduino ที่มีหน่วยความจำ/การประมวลผลที่จำกัดโดยเปรียบเทียบเพียงแค่ต้องจัดการข้อมูลที่ส่งผ่านซีเรียลเท่านั้น

ด้วยการเอาท์ซอร์สการแสดงภาพ LED Display ของคุณไปยังไลบรารี 2D Graphic Effects ที่มีอยู่แล้ว ความเป็นไปได้ไม่มีที่สิ้นสุด ตรวจสอบแคตตาล็อก openprocessing.org เพื่อหาแรงบันดาลใจ

แนะนำ: