1
LED модуль 16 х 16 (ID:523)
Написано
admin
,
31 May 2015
·
3264 Просмотров
LED модуль 16 х 16 представляем собой табло с 256 красными светодиодами, на которое можно водить текст, анимацию и простые картинки.
Подключение к плате Arduino через разъем Cn1- in:
D - к выводу 2 платы Arduino.
C - к выводу 3 платы Arduino.
B - к выводу 4 платы Arduino.
A - к выводу 5 платы Arduino.
G - к выводу 6 платы Arduino.
DI - к выводу 7 платы Arduino.
CLK - к выводу 8 платы Arduino.
LAT- к выводу 9 платы Arduino.
Разъем CN4 - подключение питания +5 Вольт и общий провод GND.
Попробуем вывести на табло изображение. Для этого запишем в Arduino следующий скетч:
Принцип перевода картинки в массив данных лучше всего поясняет инструкция:
Другие примеры кода можно скачать по ссылке Arduino Demo for 16x 16 LED.zip (46.29К)
скачиваний: 166
Ссылка на витрину магазина http://dvrobot.ru/238/460.html.
Подключение к плате Arduino через разъем Cn1- in:
D - к выводу 2 платы Arduino.
C - к выводу 3 платы Arduino.
B - к выводу 4 платы Arduino.
A - к выводу 5 платы Arduino.
G - к выводу 6 платы Arduino.
DI - к выводу 7 платы Arduino.
CLK - к выводу 8 платы Arduino.
LAT- к выводу 9 платы Arduino.
Разъем CN4 - подключение питания +5 Вольт и общий провод GND.
Попробуем вывести на табло изображение. Для этого запишем в Arduino следующий скетч:
#include <Arduino.h> #define LEDARRAY_D 2 #define LEDARRAY_C 3 #define LEDARRAY_B 4 #define LEDARRAY_A 5 #define LEDARRAY_G 6 #define LEDARRAY_DI 7 #define LEDARRAY_CLK 8 #define LEDARRAY_LAT 9 unsigned char Display_Buffer[2]; const unsigned char Word1[1][32] = { 0xFF,0x80,0x80,0x9f,0x9f,0x9f,0x9f,0x80,0x80,0x9f,0x9f,0x9f,0x9f,0x80,0x80,0xFF, 0xFF,0x01,0x01,0xff,0xff,0xff,0xff,0x03,0x03,0xff,0xff,0xff,0xff,0x01,0x01,0xFF, }; const unsigned char Init_Display[1][32] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; void setup() { pinMode(LEDARRAY_D, OUTPUT); pinMode(LEDARRAY_C, OUTPUT); pinMode(LEDARRAY_B, OUTPUT); pinMode(LEDARRAY_A, OUTPUT); pinMode(LEDARRAY_G, OUTPUT); pinMode(LEDARRAY_DI, OUTPUT); pinMode(LEDARRAY_CLK, OUTPUT); pinMode(LEDARRAY_LAT, OUTPUT); Display(Init_Display); } void loop() { Display(Word1); } void Display(const unsigned char dat[][32]) { unsigned char i; for( i = 0 ; i < 16 ; i++ ) { digitalWrite(LEDARRAY_G, HIGH); Display_Buffer[0] = dat[0][i]; Display_Buffer[1] = dat[0][i+16]; Send(Display_Buffer[1]); Send(Display_Buffer[0]); digitalWrite(LEDARRAY_LAT, HIGH); delayMicroseconds(1); digitalWrite(LEDARRAY_LAT, LOW); delayMicroseconds(1); Scan_Line(i); digitalWrite(LEDARRAY_G, LOW); delayMicroseconds(500); } } void Scan_Line( unsigned char m) { switch(m) { case 0: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, LOW); break; case 1: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, HIGH); break; case 2: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, LOW); break; case 3: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, HIGH); break; case 4: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, LOW); break; case 5: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, HIGH); break; case 6: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, LOW); break; case 7: digitalWrite(LEDARRAY_D, LOW); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, HIGH); break; case 8: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, LOW); break; case 9: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, HIGH); break; case 10: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, LOW); break; case 11: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, LOW); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, HIGH); break; case 12: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, LOW); break; case 13: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, LOW); digitalWrite(LEDARRAY_A, HIGH); break; case 14: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, LOW); break; case 15: digitalWrite(LEDARRAY_D, HIGH); digitalWrite(LEDARRAY_C, HIGH); digitalWrite(LEDARRAY_B, HIGH); digitalWrite(LEDARRAY_A, HIGH); break; default : break; } } void Send( unsigned char dat) { unsigned char i; digitalWrite(LEDARRAY_CLK, LOW); delayMicroseconds(1); ; digitalWrite(LEDARRAY_LAT, LOW); delayMicroseconds(1); ; for( i = 0 ; i < 8 ; i++ ) { if( dat&0x01 ) { digitalWrite(LEDARRAY_DI, HIGH); } else { digitalWrite(LEDARRAY_DI, LOW); } delayMicroseconds(1); digitalWrite(LEDARRAY_CLK, HIGH); delayMicroseconds(1); digitalWrite(LEDARRAY_CLK, LOW); delayMicroseconds(1); dat >>= 1; } }Мы увидим изображение буквы Е.
Принцип перевода картинки в массив данных лучше всего поясняет инструкция:
Другие примеры кода можно скачать по ссылке Arduino Demo for 16x 16 LED.zip (46.29К)
скачиваний: 166
Ссылка на витрину магазина http://dvrobot.ru/238/460.html.