duinozone.cz - Arduino a Raspberry fórum

Autor Téma: tlacidla  (Přečteno 295 krát)

Offline radoslav

  • Bastlíř začátečník
  • *
  • Příspěvků: 38
tlacidla
« kdy: Květen 15, 2017, 14:03:57 odpoledne »
zdravim

mam LED display 16×2 shield s tlačidlami ale robym projekt v ktorom nepotrebujem display  a ani tolko tlacidiel. stacia mi dve a tie by boli zapojene v pinoch A0 a A1. roby mi problem dostat do tochto kodu tie tlacitka
Kód: [Vybrat]
switch (krok) {
    case 0: {
      switch(readButton()) {      //<<<<< zrejme tu to musim niecim nahradit ale neviem cim
        case keyless : {
          krok = 1;
          break;
        }
      }
      break;
    }

poradil by mi niekto? pripadne este lepsie by bolo keby mi to tam niekto vpisal .

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:tlacidla
« Odpověď #1 kdy: Květen 17, 2017, 19:53:55 odpoledne »
tak vezmeme to postupne. asi to nebude led display ale lcd. ten se pouziva v lcd shieldu. pokud mas lcd shield tak tlacitka jsou vsechny na 1 analogovem pinu zapojene jako delic napeti.  funkce readbutton je cast programu. stahni si k tomu tutorial. jeste pozor na ruzne verze shieldu protoze se pouzivaji ruzne kombinace odporu a pak to cteni tlacitek nefunguje spravne
tady je to vcelku hezky popsano vcetne prikladu.
https://www.dfrobot.com/wiki/index.php/LCD_KeyPad_Shield_For_Arduino_SKU:_DFR0009

Offline radoslav

  • Bastlíř začátečník
  • *
  • Příspěvků: 38
Re:tlacidla
« Odpověď #2 kdy: Květen 18, 2017, 19:04:02 odpoledne »
no dobre a kebyze chcem pouzit rotary encoder? ako ho nahradit namiesto shieldu?

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:tlacidla
« Odpověď #3 kdy: Květen 20, 2017, 22:10:48 odpoledne »
rotacni enkoder vyuziva 3 digitalni piny a na 2 z nich preruseni. neni to takova legrace jak by se mohlo zdat. pokud si nejsi jisty u tlacitek do enkoderu se zatim nepoustej. nejdriv se nauc pouzivat klasicky tlacitka spolu s nejakym jednoduchym menu a pak bez na slozitejsi veci.

Offline astromik

  • Pokročilý bastlíř
  • ***
  • Příspěvků: 115
Re:tlacidla
« Odpověď #4 kdy: Květen 21, 2017, 11:17:52 dopoledne »
Jestli jde opravdu jen o 2 tlačítka na pinech A0 a A1 a není k tomu třeba žádný displej, tak zkus třeba tohle:

Kód: [Vybrat]
void setup(void)
  {
     pinMode(A0,INPUT_PULLUP);
     pinMode(A1,INPUT_PULLUP);

     Serial.begin(9600);
  }

void loop(void)
  {
    if (digitalRead(A0) == LOW)
      {
        // tady bude kod, ktery se ma vykonat po stisku tlacitka na A0
        //
        //
        //
        Serial.println("Bylo stisknuto tlacitko na A0");
        delay(50);   // na zaver chvilku pockej, aby se odrusily zakmity tlacitka
      }


    if (digitalRead(A1) == LOW)
      {
        // tady bude kod, ktery se ma vykonat po stisku tlacitka na A1
        //
        //
        //
        Serial.println("Bylo stisknuto tlacitko na A1");
        delay(50);   // na zaver chvilku pockej, aby se odrusily zakmity tlacitka
      }


    while (digitalRead(A0) == LOW or digitalRead(A1) == LOW)  // dokud je nejake tlacitko stisknute, cekej, nez se uvolni
      {
      }

    delay(50);   // na zaver smycky opet chvili pockej pred dalsim testovanim

  }

Schéma je tady:
 


Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:tlacidla
« Odpověď #5 kdy: Květen 21, 2017, 23:01:30 odpoledne »
základní otázka zní: co vlastně chceš nastavovat a zobrazovat.
Někdy stačí použít 2 trimry na analog. vstupu a nemusíš řešit menu ...

Offline radoslav

  • Bastlíř začátečník
  • *
  • Příspěvků: 38
Re:tlacidla
« Odpověď #6 kdy: Květen 28, 2017, 09:42:38 dopoledne »
menu mam uz hotove funkcne.  :)  teraz mam dilemu ze co z nastavenymi hodnotami. totiz pri odpojeni zo zdroja sa vymazu vsetky nastavene hodnoty do 0 od  termostatou az po casovace.  treba pouzit EEPROM?   

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:tlacidla
« Odpověď #7 kdy: Květen 28, 2017, 16:07:17 odpoledne »
přesně tak. musíš to uložit do eeprom. Jen pozor na počet zápisů. životnost 100 000 eeprom se zdá jako nekonečná, ale při 1s zpisu hodnot je to cca 1 den než vyčerpáš limit.

Offline radoslav

  • Bastlíř začátečník
  • *
  • Příspěvků: 38
Re:tlacidla
« Odpověď #8 kdy: Květen 28, 2017, 17:41:12 odpoledne »
a ako by mal vyzerat kod ? ked napr chcem ulozit do eeprom "int teplota_1 = 0;" ? neda sa ta jedna hodnota v eeprom len prepisovat pripadne upravovat?

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:tlacidla
« Odpověď #9 kdy: Květen 28, 2017, 20:14:49 odpoledne »

Offline radoslav

  • Bastlíř začátečník
  • *
  • Příspěvků: 38
Re:tlacidla
« Odpověď #10 kdy: Květen 29, 2017, 18:16:19 odpoledne »
super dakujem uz to mam :)

Offline radoslav

  • Bastlíř začátečník
  • *
  • Příspěvků: 38
Re:tlacidla
« Odpověď #11 kdy: Květen 31, 2017, 09:44:58 dopoledne »
zdravim  takze zacal som to davat dokopy a vyskitol sa mi taky mensi problem. ked to priojim na siet cez pulzny zdroj zacnu mi lietat hodnoty teplot a to v rozsahou okolo 2°C. hodim to znova na komp napajanie z usb  a hodnoty drzia ako prikovane. cize usudzujem ze bude problem asi v zdroji. Mam pouzit iny zdroj aleb namiesto pulzaku trafo?