Maticový displej 8x8 s driverom MAX7219: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 25: | Riadok 25: | ||
::*CLK(alebo SCK - serial clock, pin 13) - je signál generovaný masterom, ktorý určuje synchronizačnú frekvenciu pre prenos dát medzi masterom a slave zariadením | ::*CLK(alebo SCK - serial clock, pin 13) - je signál generovaný masterom, ktorý určuje synchronizačnú frekvenciu pre prenos dát medzi masterom a slave zariadením | ||
Displej funguje na princípe ''' | Displej funguje na princípe '''multiplexingu''', teda sa prepína jeden riadok displeja v ktorom rozsvedsuje len tie diódy, ktoré chceme aby svietili. Potom prejdem na ďalší riadok a urobí to isté. Tento proces sa opakuje pre všetky riadky na displeji. Ak to robí dostatočne rýchlo (viac ako 100 krát za sekundu), naše oči to vnímajú ako stabilné svetlo, aj keď sa v skutočnosti každý riadok zapína a vypína postupne. Týmto spôsobom môžeme teda zobraziť rôzne informácie na displeji. | ||
# Prvým krokom v projekte bolo pripojenie displeja s radičom ku Arduinu, pomocou SPI(Serial Peripheral Interface) zbernice. | # Prvým krokom v projekte bolo pripojenie displeja s radičom ku Arduinu, pomocou SPI(Serial Peripheral Interface) zbernice. |
Verzia z 20:59, 2. máj 2024
Záverečný projekt predmetu MIPS / LS2024 - Ladislav Nagy
Zadanie
Zostrojte animáciu pohyblivéj šípky, na spôsob smerovky. Pri stlačení tlačidla do prava, alebo do ľava sa vytvorí animácia ukazujúca smer.
![](/sensorwiki/images/thumb/0/0e/Nano-pinnout.jpg/400px-Nano-pinnout.jpg)
Literatúra:
Analýza a opis riešenia
V projekte som využil maticový diplej so 64 LED diódami usporiadanými do matice 8x8, na displej je pripojený radič MAX7219, ktorý zjednodušuje komunikáciu s Arduinom. Celý modul sa pripájal pomocu 5-tich pinov:
- VCC - napájanie 5V
- GND - uzemnenie
- DIN(data in, pin 11) - MOSI(master out slave in) pin použtý na odosielanie dát z mastera (Arduino Nano) do slave zariadenia ( displeja s radicom MAX7219)
- CS(chip select, pin 10) - slúži na vybratie konkrétneho slave zariadenia, s ktorým má master (Arduino Nano) komunikovať
- CLK(alebo SCK - serial clock, pin 13) - je signál generovaný masterom, ktorý určuje synchronizačnú frekvenciu pre prenos dát medzi masterom a slave zariadením
Displej funguje na princípe multiplexingu, teda sa prepína jeden riadok displeja v ktorom rozsvedsuje len tie diódy, ktoré chceme aby svietili. Potom prejdem na ďalší riadok a urobí to isté. Tento proces sa opakuje pre všetky riadky na displeji. Ak to robí dostatočne rýchlo (viac ako 100 krát za sekundu), naše oči to vnímajú ako stabilné svetlo, aj keď sa v skutočnosti každý riadok zapína a vypína postupne. Týmto spôsobom môžeme teda zobraziť rôzne informácie na displeji.
- Prvým krokom v projekte bolo pripojenie displeja s radičom ku Arduinu, pomocou SPI(Serial Peripheral Interface) zbernice.
- SPI zbernica - je sériová synchrónna komunikačná zbernica, ktorá sa používa na prenos dát medzi mikrokontrolérmi a rôznymi zariadeniami.
- Princíp fungovania SPI komunikácie:
- Synchrónnu komunikáciu zabezpečuje synchronizačný signál, ktorý určuje kedy majú byť odosielané a prijímané dáta.
- Využíva Master-Slave komunikáciu, čo znamená, že v tejto komunikácií existuje zvyčajne jeden master(nadriadený) a viacero slave(podriadený) prvkov. Master teda zodpovedná za riadenie komunikácie a slaves reagujú na jeho príkazy.
- Uplatňuje sa full duplex komunikácia, teda umožňuje plný obojsmerný prenos dát, čo znamená, že master môže posielať dáta slave zariadeniu a súčasne prijímať dáta od neho.
- Princíp fungovania SPI komunikácie:
- SPI zbernica - je sériová synchrónna komunikačná zbernica, ktorá sa používa na prenos dát medzi mikrokontrolérmi a rôznymi zariadeniami.
- Druhým krokom bolo vytvorenie programovéj časti projektu, v ktoréj bolo potrebné inicializovať komunikáciu, vyvoriť funkciu na odosieľanie dát z Arduina, nastavenie displeja pomocou registrov a vytvorenie funkcií, ktoré zobrazovali animáciu šípok.
![](/sensorwiki/images/thumb/d/d7/8x8.jpg/400px-8x8.jpg)
Schéma zapojenia
![](/sensorwiki/images/thumb/9/93/SchemaNagy.png/400px-SchemaNagy.png)
Algoritmus a program
Algoritmus programu je....
#include <avr/io.h>
int main(void)
{
unsigned int measuredValue;
while (1)
{
/* relax */
}
return(0);
}
#include <avr/io.h>
void adc_init(void); // A/D converter initialization
unsigned int adc_read(char a_pin);
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:
Zdrojový kód: zdrojaky.zip
Overenie
Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.
![](/sensorwiki/images/thumb/f/f4/Fotka.jpg/400px-Fotka.jpg)
Video:
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.