สารบัญ:
วีดีโอ: ตัวสร้างอักขระที่กำหนดเอง (เมทริกซ์ Adafruit HT16k33): 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
การพิมพ์อักขระพิเศษบน LCD และ Led Matrices นั้นสนุกมาก ขั้นตอนในการพิมพ์อักขระพิเศษหรืออักขระที่กำหนดเองคือการสร้างอาร์เรย์ที่มีค่าไบนารีสำหรับแต่ละแถวและคอลัมน์ การค้นหาโค้ดที่ถูกต้องสำหรับอักขระที่กำหนดเองอาจเป็นเรื่องที่ยุ่งยาก ดังนั้น โครงการนี้จะทำให้ระบบอัตโนมัติและสร้างโค้ดสำหรับเมทริกซ์ led 8x8 และจะพิมพ์อักขระที่กำหนดเองบน Adafruit HT16k33 8x8 Bicolor Matrix
Adafruit HT16k33 ขนาด 1.2 นิ้ว 8x8 Bicolor Led Matrix สื่อสารกับ Arduino ผ่านโปรโตคอลการสื่อสาร I2C
Adafruit ระบุว่า " กระเป๋าเป้ LED รุ่นนี้ออกแบบมาสำหรับเมทริกซ์ขนาด 1.2" 8x8 พวกเขาวัดได้เพียง 1.2 "x1.2" ดังนั้นจึงเป็นเรื่องน่าละอายที่จะใช้ชิปจำนวนมากเพื่อควบคุม กระเป๋าเป้ใบนี้แก้ปัญหาความรำคาญของการใช้หมุด 16 พินหรือชิปหลายตัว โดยมีตัวควบคุมเมทริกซ์กระแสไฟคงที่ I2C วางอย่างเป็นระเบียบที่ด้านหลังของ PCB ชิปควบคุมดูแลทุกอย่าง โดยวาด LED ทั้ง 64 ดวงในพื้นหลัง สิ่งที่คุณต้องทำคือเขียนข้อมูลโดยใช้อินเทอร์เฟซ I2C แบบ 2 พิน มีหมุดเลือกที่อยู่สองอัน ดังนั้นคุณสามารถเลือกหนึ่งใน 8 แอดเดรสเพื่อควบคุมได้มากถึง 8 อันบนบัส I2C แบบ 2 พินเดียว (รวมถึงชิปหรือเซ็นเซอร์ I2C อื่นๆ ที่คุณต้องการ) ชิปไดรเวอร์สามารถ 'หรี่' จอแสดงผลทั้งหมดได้ตั้งแต่ความสว่าง 1/16 จนถึงความสว่างเต็มที่ในขั้นตอนที่ 1/16 ไม่สามารถหรี่ไฟ LED แต่ละดวงได้ เฉพาะจอแสดงผลทั้งหมดในคราวเดียว"
ในคำแนะนำนี้ ฉันจะอธิบายวิธีรับรหัสสำหรับอักขระที่กำหนดเองแบบเรียลไทม์และพิมพ์อักขระนั้นบน Led Matrix
ขั้นตอนที่ 1: ส่วนประกอบ
คำแนะนำนี้เป็นโครงการพื้นฐานบน Adafruit HT16k33 Matrix คุณต้องการ:
- Adafruit HT16k33 1.2 '' x 1.2 '' 8x8 Bicolor Led Matrix.
- Arduino (รุ่นใดก็ได้ แต่แนะนำให้ใช้ Uno)
- เขียงหั่นขนม
- พาวเวอร์ซัพพลาย
ขั้นตอนที่ 2: แผนผัง
การเดินสายไฟ Adafruit HT16k33 Led matrix นั้นง่ายมาก เนื่องจากเราจำเป็นต้องเชื่อมต่อนาฬิกาและดาต้าพิน เช่นเดียวกับที่เรามักจะทำกับอุปกรณ์ I2C การเชื่อมต่อจะเป็นดังนี้:
- SCL (เข็มนาฬิกาของเมทริกซ์) เชื่อมต่อกับ A5 (เข็มนาฬิกาของ Arduino Uno โปรดดูเอกสารข้อมูลสำหรับ Arduino รุ่นอื่นๆ)
- SDA (พินข้อมูลของเมทริกซ์) เชื่อมต่อกับ A4 (ดูเอกสารข้อมูลสำหรับ Arduino รุ่นอื่นๆ)
- VCC เชื่อมต่อกับ 5V
- GND เชื่อมต่อกับ 0V
คุณยังสามารถศึกษาแผนผังที่แสดงในรูป
ขั้นตอนที่ 3: รหัส
รหัส Arduino
ประการแรก เราจะรวมไลบรารีทั้งหมดที่จำเป็น
- Wire.h:- สำหรับการสื่อสาร I2C
- Adafruit_LedBackpack
- Adafruit_GFX
ไลบรารีทั้งหมดเหล่านี้มีอยู่ใน Arduino IDE เอง คุณเพียงแค่ต้องติดตั้งจาก Library Manager ร่าง>>รวมไลบรารี่ >> จัดการไลบรารี
ฟังก์ชันการตั้งค่า ()
การตั้งค่าอาร์เรย์ 8 บิตจำนวนเต็มที่ไม่ได้ลงนามเป็นค่าไบนารี strore8 สำหรับ 8 แถว โดยแต่ละ 8 บิต (8 คอลัมน์) ตั้งค่าที่อยู่สำหรับการสื่อสาร I2C
ฟังก์ชันวนรอบ ()
เนื่องจากเราต้องพิมพ์อักขระ เราจึงต้องการรหัสสำหรับอักขระนั้นในแบบเรียลไทม์ วิธีที่สะดวกที่สุดคือส่งรหัสตามลำดับและ Arduino จะอ่านข้อมูลอนุกรมและพิมพ์อักขระตามลำดับ การส่งอาร์เรย์แบบอนุกรมอาจเป็นงานที่วุ่นวาย ดังนั้น เราสามารถส่งสตริงที่มีรหัสทั้งหมด 8 รหัส (แต่ละรหัส 8 บิต) คั่นด้วยเครื่องหมายจุลภาค
การอ่านสตริงอนุกรม:
if (Serial.available()>0) { data=Serial.readStringUntil('\n'); Serial.println (ข้อมูล); }
หลังจากอ่านข้อความแล้ว เราจำเป็นต้องถอดรหัสสตริงนี้และรับค่าไบนารีกลับมา ดังที่เราทราบ รูปแบบของสตริงอินพุตจะเหมือนกันเสมอ เราสามารถเข้ารหัสเพื่อค้นหาสตริงย่อยและแปลงสตริงเป็นค่าทศนิยมที่เทียบเท่ากัน จากนั้นเราจะส่งอาร์เรย์ทศนิยมที่สร้างขึ้น (uint8_t) เพื่อพิมพ์อักขระบนเมทริกซ์
การแปลงสตริง 8 บิตเป็นทศนิยม:
int val (สตริง str) { int v=0; สำหรับ (int i=0;i<8;i++) { if (str=='1') { v=v+power(2, (7-i)); } } ส่งคืน v; }
สำหรับการประเมินค่าเทียบเท่าทศนิยมโดยใช้ฟังก์ชันกำลัง (pow ()) คุณต้องจัดการกับค่าประเภทสอง ดังนั้นเราสามารถเขียนฟังก์ชันกำลังของเราเองเป็น:
กำลัง int (ฐาน int, เลขชี้กำลัง int) { int c=1; สำหรับ (int i=0;i { c=c*base; } return c; }
สุดท้ายนี้ เราจะเขียนโค้ดเพื่อพิมพ์อักขระโดยใช้อาร์เรย์ที่สร้างจากค่าทศนิยม 8 ค่า (หนึ่งค่าสำหรับแต่ละแถว)
เป็นโมฆะ print_emoji (uint8_t emoji , สีสตริง) { matrix.clear (); ถ้า (สี = = "สีแดง") { matrix.drawBitmap (0, 0, อีโมจิ, 8, 8, LED_RED); } อื่น ๆ { matrix.drawBitmap(0, 0, อีโมจิ, 8, 8, LED_GREEN); } matrix.writeDisplay(); ล่าช้า (500); }
คุณจะเข้าใจโค้ดนี้ได้ง่ายในขณะที่เรากำลังล้างเมทริกซ์ก่อน จากนั้นจึงแสดงอักขระโดยใช้อาร์เรย์อีโมจิโดยใช้ฟังก์ชัน matrix.drawBitmap() อย่าลืมเขียน "matrix.writeDisplay()" หลังจากการจัดรูปแบบทั้งหมด เนื่องจากฟังก์ชันนี้จะแสดงการจัดรูปแบบทั้งหมดที่ทำบนเมทริกซ์เท่านั้น
ตอนนี้คุณสามารถส่งสตริงพร้อมค่ารหัสทั้งหมดและ Arduino จะพิมพ์อักขระบนเมทริกซ์ คุณสามารถดาวน์โหลดรหัส Arduino ได้จากด้านล่าง เพื่อวัตถุประสงค์ในการทดลอง คุณสามารถเขียน
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
สตริงนี้ใน Serial Monitor และสามารถดูอักขระบนเมทริกซ์
ตอนนี้ เราต้องส่งข้อมูลซีเรียลโดยอัตโนมัติจากซอฟต์แวร์เมื่อเรากดปุ่ม "พิมพ์" เพื่อทำให้สิ่งนี้เป็นอัตโนมัติ เราจะทำการสาธิตเมทริกซ์ขนาด 8x8 และเราจะจัดเตรียมสิ่งอำนวยความสะดวกให้กับผู้ใช้ในการเลือกว่าเซลล์ใดควรถูกระบายสี จากนั้นซอฟต์แวร์จะสร้างโค้ดโดยอัตโนมัติและส่งข้อมูลตามลำดับไปยัง Arduino ในรูปแบบสตริง ฉันเลือกการประมวลผลสำหรับงานที่เหลือของฉัน ในการประมวลผล เราสามารถสร้างเมทริกซ์โดยใช้ปุ่ม 64 ปุ่ม (สี่เหลี่ยมที่มีฟังก์ชั่นกด) และสามารถกำหนดค่าและสีเฉพาะเมื่อเริ่มต้น (ปล่อยให้เป็นสีขาวที่มีค่า 0) ตอนนี้ทุกครั้งที่กดปุ่ม เราจะแปลงสีของปุ่มเป็นสีดำและตั้งค่าเป็น 1 หากผู้ใช้กดปุ่มเดิมอีกครั้ง ค่าของปุ่มจะเปลี่ยนเป็น 0 อีกครั้งและสีจะกลับเป็นสีขาว สิ่งนี้จะช่วยให้ผู้ใช้เปลี่ยนรหัสครั้งแล้วครั้งเล่าได้อย่างง่ายดายและสามารถแก้ไขได้อย่างง่ายดายโดยไม่ต้องลบเมทริกซ์ทั้งหมดอีกครั้ง เมื่อคลิกปุ่ม "พิมพ์" เราจะสร้างสตริงที่คล้ายกับที่แสดงด้านบนสำหรับการสาธิต จากนั้นสตริงจะถูกส่งไปยังพอร์ตอนุกรมเฉพาะ
คุณสามารถดาวน์โหลดรหัสการประมวลผลได้จากด้านล่าง นี่เป็นรหัสแรกของฉันในการประมวลผล ข้อเสนอแนะสำหรับวิธีการเขียนโค้ดขั้นสูงได้รับการชื่นชมอย่างสูง
คุณสามารถดูว่า GUI มีลักษณะอย่างไรและอักขระถูกสร้างขึ้นโดยใช้ระบบอย่างไร แทบจะใช้เวลาไม่กี่วินาทีในการสร้างอักขระตัวเดียวกันบนเมทริกซ์
คุณสามารถดาวน์โหลดโค้ดและรูปภาพของโปรเจ็กต์นี้ได้จาก GitHub Repository ของฉัน
แนะนำ:
เมทริกซ์ LED ที่ควบคุมโดย Google Assistant !: 7 ขั้นตอน (พร้อมรูปภาพ)
เมทริกซ์ LED ที่ควบคุมโดย Google Assistant !: ในบทช่วยสอนนี้ ฉันจะแสดงให้คุณเห็นถึงวิธีสร้างเมทริกซ์ LED ที่ควบคุมโดย Google Assistant ซึ่งคุณควบคุมรูปแบบได้ทุกที่โดยใช้สมาร์ทโฟน มาเริ่มกันเลย
เมทริกซ์ LED 10x10: 6 ขั้นตอน
10x10 LED Matrix: เมทริกซ์สิบคูณสิบนี้จะสามารถแสดงแอนิเมชั่นเจ๋ง ๆ ได้
เมทริกซ์ LED ปุ่มกด: 4 ขั้นตอน
เมทริกซ์ LED แบบปุ่มกด: โปรเจ็กต์นี้ถือได้ว่าเป็นอีกหนึ่งโปรเจ็กต์ Arduino เบื้องต้นที่ล้ำหน้ากว่าโปรเจ็กต์ 'ไฟ LED กะพริบ' ทั่วไปของคุณเล็กน้อย โปรเจ็กต์นี้รวม LED matrix, ปุ่มกด, shift register (ซึ่งสามารถบันทึกพินบน Ard
แสงเทียน LED เมทริกซ์: 10 ขั้นตอน (พร้อมรูปภาพ)
Matrix LED Candle Light: สวัสดี ในคำแนะนำนี้ คุณจะได้เรียนรู้วิธีสร้าง LED-Matrix-Candle ที่มีอายุการใช้งานยาวนานมาก มันดูทันสมัยมาก ไม่สูบบุหรี่;) และสามารถโหลดซ้ำด้วยเครื่องชาร์จสมาร์ทโฟนของคุณ แสงสีเหลืองช่วยให้คุณ การแสดงออกที่ดีมากของเปลวไฟที่แท้จริง ที่จะ
เมทริกซ์ LED โปร่งใสขนาดใหญ่ที่ยืดหยุ่นได้ราคาต่ำกว่า 150 ดอลลาร์ ทำง่าย 8 ขั้นตอน (พร้อมรูปภาพ)
เมทริกซ์ LED โปร่งใสขนาดใหญ่ที่ยืดหยุ่นได้ราคาต่ำกว่า 150 ดอลลาร์ ทำง่าย: ฉันต้องการเริ่มต้นด้วยการบอกว่าฉันไม่ใช่มืออาชีพ ฉันไม่มีปริญญาด้านอิเล็กทรอนิกส์ ฉันแค่สนุกกับการทำงานด้วยมือของฉันและค้นหาสิ่งต่างๆ ข้าพเจ้าขอกล่าวให้กำลังใจท่านผู้ไม่ประกอบอาชีพอย่างข้าพเจ้าทุกคน คุณมีความสามารถในการ