як друкувати рядок у 16 ​​* 16 Dot Matrix з AVR

Я хочу вивести рядок "LED GAME", як показано на малюнку. Але в матриці Dot є тільки 16 + 16 = 32 шпильки. чи є спосіб друкувати рядок від avr до dotmatrix?

enter image description here

0
Необхідно виконати растрове сканування - безперервно перебирати всі рядки, включаючи відповідні біти стовпців для кожного рядка. До тих пір, поки ви робите це досить швидко, око бачить його як безперервний дисплей, так само, як і старомодна CRT.
додано Автор Paul R, джерело
Необхідно виконати растрове сканування - безперервно перебирати всі рядки, включаючи відповідні біти стовпців для кожного рядка. До тих пір, поки ви робите це досить швидко, око бачить його як безперервний дисплей, так само, як і старомодна CRT.
додано Автор Paul R, джерело
Необхідно виконати растрове сканування - безперервно перебирати всі рядки, включаючи відповідні біти стовпців для кожного рядка. До тих пір, поки ви робите це досить швидко, око бачить його як безперервний дисплей, так само, як і старомодна CRT.
додано Автор Paul R, джерело
Розглянемо використання 4 8x8 світлодіодних матричних дисплеїв і керуючи ними щось подібне до MAX7219 . Там багато коду там для водіння цих речей з AVRs і як підключити їх. Звичайне мультиплексування «рядка за часом», ймовірно, не буде виглядати досить яскраво з 1/16 робочим циклом.
додано Автор Brett Hale, джерело
Розглянемо використання 4 8x8 світлодіодних матричних дисплеїв і керуючи ними щось подібне до MAX7219 . Там багато коду там для водіння цих речей з AVRs і як підключити їх. Звичайне мультиплексування «рядка за часом», ймовірно, не буде виглядати досить яскраво з 1/16 робочим циклом.
додано Автор Brett Hale, джерело
Розглянемо використання 4 8x8 світлодіодних матричних дисплеїв і керуючи ними щось подібне до MAX7219 . Там багато коду там для водіння цих речей з AVRs і як підключити їх. Звичайне мультиплексування «рядка за часом», ймовірно, не буде виглядати досить яскраво з 1/16 робочим циклом.
додано Автор Brett Hale, джерело
Ви також можете придбати 16x16 світлодіодні матричні дисплеї з вбудованим контролером, але я не маю досвіду з ними.
додано Автор Brett Hale, джерело
Ви також можете придбати 16x16 світлодіодні матричні дисплеї з вбудованим контролером, але я не маю досвіду з ними.
додано Автор Brett Hale, джерело
Ви також можете придбати 16x16 світлодіодні матричні дисплеї з вбудованим контролером, але я не маю досвіду з ними.
додано Автор Brett Hale, джерело

6 Відповіді

Більшість світлодіодних матриць побудовано внутрішньо таким чином:

LED matrix

Для 16x16 світлодіодної матриці у вас є 16 шпильок для рядків і 16 шпильок для стовпців. Щоб дізнатися, як створюється ваша матриця, вам доведеться знайти його таблицю.

Щоб написати що-небудь на дисплеї, ви встановите перший рядок в положення ON, всі інші - на OFF і активуйте потрібні колонки. Після затримки ви встановите перший рядок на OFF, другий рядок - на ON і активуйте колонки, які ви хочете бачити у другому рядку. Ви повторите всі рядки, подібні до цього. Оскільки затримка буде досить короткою, очі не будуть достатньо швидкими, щоб побачити, що світлодіоди відключаються більшу частину часу.

Я б запропонував використовувати таймер переривання на вас мікроконтролера і перебирати по рядках в рутині переривання. Таким чином, ви можете легко використовувати мікроконтролер для інших речей, не турбуючись занадто багато про часові проблеми.

3
додано

Більшість світлодіодних матриць побудовано внутрішньо таким чином:

LED matrix

Для 16x16 світлодіодної матриці у вас є 16 шпильок для рядків і 16 шпильок для стовпців. Щоб дізнатися, як створюється ваша матриця, вам доведеться знайти його таблицю.

Щоб написати що-небудь на дисплеї, ви встановите перший рядок в положення ON, всі інші - на OFF і активуйте потрібні колонки. Після затримки ви встановите перший рядок на OFF, другий рядок - на ON і активуйте колонки, які ви хочете бачити у другому рядку. Ви повторите всі рядки, подібні до цього. Оскільки затримка буде досить короткою, очі не будуть достатньо швидкими, щоб побачити, що світлодіоди відключаються більшу частину часу.

Я б запропонував використовувати таймер переривання на вас мікроконтролера і перебирати по рядках в рутині переривання. Таким чином, ви можете легко використовувати мікроконтролер для інших речей, не турбуючись занадто багато про часові проблеми.

3
додано

Більшість світлодіодних матриць побудовано внутрішньо таким чином:

LED matrix

Для 16x16 світлодіодної матриці у вас є 16 шпильок для рядків і 16 шпильок для стовпців. Щоб дізнатися, як створюється ваша матриця, вам доведеться знайти його таблицю.

Щоб написати що-небудь на дисплеї, ви встановите перший рядок в положення ON, всі інші - на OFF і активуйте потрібні колонки. Після затримки ви встановите перший рядок на OFF, другий рядок - на ON і активуйте колонки, які ви хочете бачити у другому рядку. Ви повторите всі рядки, подібні до цього. Оскільки затримка буде досить короткою, очі не будуть достатньо швидкими, щоб побачити, що світлодіоди відключаються більшу частину часу.

Я б запропонував використовувати таймер переривання на вас мікроконтролера і перебирати по рядках в рутині переривання. Таким чином, ви можете легко використовувати мікроконтролер для інших речей, не турбуючись занадто багато про часові проблеми.

3
додано

Як можна визначити Pin 1 Of Dot matrix?

Найбільш лівий штифт точкової матриці на протилежній ділянці мітки "2088BH-B" є висновком 1.

Ви можете отримати повну ідею з двох наступних зображень. введіть опис зображення тут

enter image description here

Сподіваюся, що це допоможе вам багато. Ви також можете спробувати наступний код, який написано для показу 9-матової матриці (компілятор: micro-C)

void main() 
{
     DDRB = 0b11111111;
     DDRC = 0b11111111;
     while(1)
     {
           PORTB=0b00000000; //1
           PORTC=0b10000000;
            Delay_us(5);

           PORTB=0b00000000;       //2
           PORTC=0b01000000;
            Delay_us(5);

           PORTB=0b00000000;          //3
           PORTC=0b00100000;
            Delay_us(5);

           PORTB=0b00000000;             //4
           PORTC=0b00010000;
            Delay_us(5);

           PORTB=0b10011110; //5
           PORTC=0b00001000;
            Delay_us(5);

           PORTB=0b10010010;       //6
           PORTC=0b00000100;
            Delay_us(5);

           PORTB=0b10010010;          //7
           PORTC=0b00000010;
           Delay_us(5);

           PORTB=0b11111110;             //8
           PORTC=0b00000001;
           Delay_us(5);

     }
}
0
додано

Як можна визначити Pin 1 Of Dot matrix?

Найбільш лівий штифт точкової матриці на протилежній ділянці мітки "2088BH-B" є висновком 1.

Ви можете отримати повну ідею з двох наступних зображень. введіть опис зображення тут

enter image description here

Сподіваюся, що це допоможе вам багато. Ви також можете спробувати наступний код, який написано для показу 9-матової матриці (компілятор: micro-C)

void main() 
{
     DDRB = 0b11111111;
     DDRC = 0b11111111;
     while(1)
     {
           PORTB=0b00000000; //1
           PORTC=0b10000000;
            Delay_us(5);

           PORTB=0b00000000;       //2
           PORTC=0b01000000;
            Delay_us(5);

           PORTB=0b00000000;          //3
           PORTC=0b00100000;
            Delay_us(5);

           PORTB=0b00000000;             //4
           PORTC=0b00010000;
            Delay_us(5);

           PORTB=0b10011110; //5
           PORTC=0b00001000;
            Delay_us(5);

           PORTB=0b10010010;       //6
           PORTC=0b00000100;
            Delay_us(5);

           PORTB=0b10010010;          //7
           PORTC=0b00000010;
           Delay_us(5);

           PORTB=0b11111110;             //8
           PORTC=0b00000001;
           Delay_us(5);

     }
}
0
додано

Як можна визначити Pin 1 Of Dot matrix?

Найбільш лівий штифт точкової матриці на протилежній ділянці мітки "2088BH-B" є висновком 1.

Ви можете отримати повну ідею з двох наступних зображень. введіть опис зображення тут

enter image description here

Сподіваюся, що це допоможе вам багато. Ви також можете спробувати наступний код, який написано для показу 9-матової матриці (компілятор: micro-C)

void main() 
{
     DDRB = 0b11111111;
     DDRC = 0b11111111;
     while(1)
     {
           PORTB=0b00000000; //1
           PORTC=0b10000000;
            Delay_us(5);

           PORTB=0b00000000;       //2
           PORTC=0b01000000;
            Delay_us(5);

           PORTB=0b00000000;          //3
           PORTC=0b00100000;
            Delay_us(5);

           PORTB=0b00000000;             //4
           PORTC=0b00010000;
            Delay_us(5);

           PORTB=0b10011110; //5
           PORTC=0b00001000;
            Delay_us(5);

           PORTB=0b10010010;       //6
           PORTC=0b00000100;
            Delay_us(5);

           PORTB=0b10010010;          //7
           PORTC=0b00000010;
           Delay_us(5);

           PORTB=0b11111110;             //8
           PORTC=0b00000001;
           Delay_us(5);

     }
}
0
додано