Arduino / TM1638 Ovládací panel s LED

Přehledný návod s programem:

http://navody.arduino-shop.cz/navody-k-produktum/ovladaci-panel-tm1638.html

 

knihovna taky z těcht stránek: tm1638_ovladaci_panel

 

// Ovládací panel s TM1638

// připojení knihovny
#include <TM1638.h>

// nastavení čísel pinů pro propojení s Arduinem
#define DATA 2
#define CLOCK 3
#define STROBE 4

// vytvoření instance panel z knihovny TM1638
TM1638 panel(DATA, CLOCK, STROBE);

void setup() {
  // komunikace přes sériovou linku rychlostí 9600 baud
  Serial.begin(9600);
}

void loop() {
  // vytvoření proměnné pro uložení stavu tlačítka
  // v čisté formě (panelTlac) a do rozsahu 1-8 (tlacitko)
  byte panelTlac = panel.getButtons();
  int tlacitko = 0;
  // vytvoření proměnné cas a uložení
  // aktuálního času od zapnutí Arduina
  // v sekundách
  long cas = millis()/1000;
  // rozsvícení LED diody s příslušným tlačítkem
  // fungující pro více tlačítek najednou
  panel.setLEDs(((panelTlac & 0xF0) << 8) | (panelTlac & 0xF));
  // pro rozsvícení jednotlivých LED slouží tento příkaz a příklad:
  // setLED(0 pro vypnutí/1 pro zapnutí), číslo LED 
  /// panel.setLED(1, 4); // zapnutí 4. LED diody

  // překlad čisté formy na rozsah 1-8
  switch(panelTlac) {
    case 1:
      tlacitko = 1;
      break;
    case 2:
      tlacitko = 2;
      break;
     case 4:
      tlacitko = 3;
      break;
    case 8:
      tlacitko = 4;
      break;
     case 16:
      tlacitko = 5;
      break;
    case 32:
      tlacitko = 6;
      break;
     case 64:
      tlacitko = 7;
      break;
    case 128:
      tlacitko = 8;
      break;
    default:
      tlacitko = 0;
  }
  // v případě, že bylo stisknuto tlačítko,
  // vypiš jeho číslo po sériové lince
  // a na displej vypiš ukázku znaků
  if (tlacitko > 0) {
    Serial.print("Stisk tlacitka: ");
    Serial.println(tlacitko);
    // výpis ukázky znaků v hex formátu,
    // 1 znamená tečku v prvním znaku
    panel.setDisplayToHexNumber(0x1234ABCD, 1);
  }
  // pokud nebylo stisknuto žádné tlačítko,
  // vypiš na displej aktuální čas od spuštění
  else {
    // výpis čísla ve tvaru: číslo, tečka u druhého znaku, 
    //  0 pro výpis bez nul/ 1 výpis s nulami
    panel.setDisplayToDecNumber(cas, 2, 0);
  }
  // pauza pro přehlednější výpis
  delay(50);
}

 

Napsat komentář