Operácie

Maticový displej 8x8 s driverom MAX7219

Zo stránky SensorWiki

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.

Vývojová doska Arduino Nano.
8x8 maticový displej s radičom MAX7219.

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) - je signál používaný na odosielanie dát z mastera (Arduino Nano) do slave zariadenia ( displeja s radicom MAX7219)
  • CS(chip select) - slúži na vybratie konkrétneho slave zariadenia, s ktorým má master (Arduino Nano) komunikovať
  • CLK(SCK) - je signál generovaný masterom, ktorý určuje synchronizačnú frekvenciu pre prenos dát medzi masterom a slave zariadením
  1. 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é.
  • 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. V mojom prípade je Arduino Nano Master a displej s radičom Slave.
RGB LED.

Schéma zapojenia

Schéma zapojenia LCD displeja.


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.

Aplikácia.

Video:

Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.