12 ธ.ค. 2020 เวลา 08:39 • วิทยาศาสตร์ & เทคโนโลยี
สาย ป้ายไฟต้องมา อยากหาทำLED ป้ายวิ่ง
การต่อ dotmatrix display LED โดยใช้ Auduino ทำอย่างไร มาดูกัน....
หลายครั้งที่เรามักจะเห็นการติดตั้ง ป้ายอักษรไฟวิ่ง ซึ่งผมเองก็อยากได้มาติดตั้งที่ร้าน บ้างแต่ว่าราคาแพงไปนิดนึงและต้องให้ทางร้านทำป้าย ทำการติดตั้งให้ ซึ่งบางครั้งก็คิดว่า ทำไมเราไม่ซื้อของจากใน internet มาติดตั้งเอง จึงได้ไปหาข้อมูลมา ลองมาดูกันว่า ผมจะติดตั้งเองได้ไหม ก็เขียนเอาวไว้กันลืมละกันนะ
ในท้องตลาดมีการขายกันอยู่หลายรุ่นหลายขนาด แต่เท่าที่สังเกตุดูเหมือนว่าจะมีอยู่รุ่นหนึ่งที่เป็นที่นิยมกันมาก คือรุ่น P10 LED
ตัวนี้เป็น digital LED display boards ทีมีขายตามท้องตลาดทั่วไป ตัวนี้ใช้ระบบ 8x8 matrix LED จึงทำให้เราสามารถใช้ ชุดบอร์ด arduino ทำการควบคุมได้
สำหรับตัวอย่างในวันนี้เราจะใช้32x16 LED ในการทดสอบ เนื่องจากขนาดสามารถเอามาต่อไป (ตามยาว)ได้ อีก เพียงแค่เอามาต่อกัน หรือใครอยากจะต่อแนวตั้งก็ได้แล้วแต่สะดวก
อุปกรณ์ที่ใช้ในการประกอบมีดังนี้
§ ป้าย LED 32x16 1 ป้าย
§ สายคอนเนกเตอร์ สำหรับป้ายกับ arduino
§ Voltage support 5V
§ Arduion Uno R3
§ สายไฟสัญญาน in/out
§ PCB board (ตัวเสริม )
ก่อนอื่นเราต้องรู้ก่อนว่าเราสามารถต่อ สายแพร์ ระหว่าง ป้าย LED กับ ตัวบอร์ด Arduino ได้อย่างไร จากภาพด้ายบนจะเห็นได้ว่าราต้องมีสายทั้งหมด 16 เส้น(ไม่จำเป็นต้องต่อทั้งหมด)
คราวนี้เราก็ต่อสายตามภาพเลย คือ
OE ต่อ GPIO 9
GND ต่อกับ GND ( 7 สาย P10ต่อกับ 1สาย Arduino )
 
Aต่อ GPIO6 ,Bต่อ GPIO 7 , NC ไม่ต้องต่อ ,CLK ต่อ GPIO 13 ,SCLKต่อ GPIO 8 ,DATA ต่อ GPIO 11
เสร็จแล้วก็ต่อ สายไฟเลี้ยงบอร์ด Arduino และ ไฟเลี้ยงต่อบอร์ด P10LED ด้วย แนะนำให้แยกกันเพราะหากต้องการต่อหลายบอร์ด กำลังไป อาจจะไม่พอ ทำให้หลอดไม่สว่าง ต่อมาก็ทำการเขียนโค๊ด เข้าสู่ระบบ ตามนี้
อัพโหลด DMD.h library และ onetime.h library แล้วใส่โค๊ดตามรายการด้านล่าง
#include <SPI.h>
#include <DMD.h>
#include <TimerOne.h>
#include "SystemFont5x7.h"
#include "Arial_black_16.h"
#define ROW 1
#define COLUMN 1
#define FONT Arial_Black_16
DMD led_module(ROW, COLUMN);
void scan_module()
{
led_module.scanDisplayBySPI();
}
void setup()
{
Timer1.initialize(2000);
Timer1.attachInterrupt(scan_module);
led_module.clearScreen( true );
}
void loop()
{
led_module.selectFont(FONT);
led_module.drawMarquee("Welcome to Circuit Digest",25, (32 * ROW), 0);
long start = millis();
long timming = start;
boolean flag = false;
while (!flag)
{
if ((timming + 20) < millis())
{
flag = led_module.stepMarquee(-1, 0);
timming = millis();
}
}
}
อัพโหลด โปรแกรมผ่าน Arduino IDE เข้าบอร์ด Arduino Uno ถ้าตัวอักษรขั้น แสดงว่า OK
▶️▶️▶️▶️

ดูเพิ่มเติมในซีรีส์

โฆษณา