Pushbutton & seriova linka

Sekcia určená pre Arduino nadšencov

Moderátor: Moderátori

cheeseburger
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 21 Jan 2015, 23:39

Re: Pushbutton & seriova linka

Príspevok od používateľa cheeseburger » 08 Sep 2016, 22:45

K tomu skriptu. Skusal som ciste napisat jednoduchy skript len na prijmanie dat bez reakcie, spravalo sa to divne stale. Zvysil som rychlost funguje to. Skusal som poslat aj mail na support tej utilitky ktora v podstate stoji medzi mojim arduinom a hrou, ci mi nebudu vediet poradit, tak uvidime.

Tlacitko mam zapojene rovnako ako tu na scheme https://www.arduino.cc/en/Tutorial/Button

Skusim sa na to pozriet. Zatial diky :)
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Pushbutton & seriova linka

Príspevok od používateľa peterple » 08 Sep 2016, 23:32

Ach jaj, nebola by normálna schéma. Z tej arduino omalovánky to ja jaksi neviem pochopiť.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

alidedko
Ultimate člen
Ultimate člen
Príspevky: 3963
Dátum registrácie: 04 Feb 2013, 22:04
Bydlisko: U alibabky v Poprade
Vek: 32

Re: Pushbutton & seriova linka

Príspevok od používateľa alidedko » 08 Sep 2016, 23:34

Tlačidlo proti plusu a pull-down. Bez kondíkov, bez lásky, bez všetkého. Surovo tlačidlo a odpor.
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Pushbutton & seriova linka

Príspevok od používateľa peterple » 09 Sep 2016, 19:15

Až teraz som si všimol že dole je aj schéma. Lebo z toho obrázka nie je celkom jasné že ten odpor je pripojený na zem a ani to že je pripojený na ten vstupný pin. Ale ak je všetko ako zvyčajne tak áno. Len som videl už aj také kontaktné pole ktoré tie vodorovné napájacie šíny neboli medzi sebou prepojené.

Ešte taká akademická otázka - prečo arduinisti nepoužívajú interný pull up a nespínajú to proti zemi?
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
roboulbricht
Stály člen
Stály člen
Príspevky: 156
Dátum registrácie: 07 Jan 2015, 12:01
Bydlisko: Banská Bystrica
Vek: 54
Kontaktovať používateľa:

Re: Pushbutton & seriova linka

Príspevok od používateľa roboulbricht » 09 Sep 2016, 22:06

cheeseburger
V správcovi knižníc si nainštaluj alebo Bounce2 alebo InputDebounce. Obe knižnice robia viac-menej to isté. Odstraňujú zákmity tlačidiel. Nebudeš musieť vymýšľať koleso a obe umožňujú bez problémov sledovať viac tlačidiel (čo si sa pýtal v nejakej inej otázke). Obvyklejšie je zapojenie cez pull-up, tak ako ti odporúča peterple. Pre teba to znamená len toľko, že na svojej schéme si prehodíš +5 V a GND pripojenie ku tlačidlu. Ak chceš použiť zapojenie podľa svojej schémy, potom môžeš použiť len tú druhú knižnicu a v nej použiť v konštruktore PIM_EXT_PULL_DOWN_RES.
Obe knižnice majú dosť príkladov na pochopenie toho, ako sa majú použiť. Keď budeš potom chcieť vedieť, ako sa zákmity odstraňujú, máš k dispozícii zdrojáky a tam je v oboch prípadoch celkom pekne všetko komentované.
https://github.com/thomasfredericks/Bounce2
https://github.com/Mokolea/InputDebounce

peterple
Odpoveď na akademickú otázku je asi v ďalekej minulosti tvorenia funkcii jadra, kedy to bolo v podstate jedno. Väčšinou všade k Arduinu nájdeš príklady na pull-up. Iba v tej Arduino Wiki sú tieto pull-down príklady. A náhoda to nie je, lebo v tej linknutej stránke hypertexty ukazujú na ďalšie stránky, kde sú zase pull-down príklady, takže túto časť zjavne robil jeden človek.
V nejakom okamihu ale upravili možnosti funkcie pinMode, aby umožňovala priamo v nej nielen povedať, či je pin vstup alebo výstup, ale aj či má byť zapnutý pull-up. A vďaka tomu je lepšie vyriešená kompatibilita medzi Uno, Due, Zero, ktoré používajú rôzne architektúry mikrokontrolérov. Ukážku použitia má napríklad v tej prvej spomínanej knižnici.
https://github.com/thomasfredericks/Bou ... bounce.ino
0

cheeseburger
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 21 Jan 2015, 23:39

Re: Pushbutton & seriova linka

Príspevok od používateľa cheeseburger » 11 Sep 2016, 13:18

Ten bounce2 je celkom fajn, problem je, ze potrebujem, aby sa ta hodnota poslala len raz ked ho drzim dlhsie. Ak pridam while cyklus do toho ukazkovaeho prikladu tak sa to zacykli :/

Kód: Vybrať všetko

void loop() {
  // Update the Bounce instance :
  debouncer.update();

  // Get the updated value :
  int value = debouncer.read();

  // Turn on or off the LED as determined by the state :
  if ( value == LOW ) {
    digitalWrite(LED_PIN, LOW );
  } 
  else {
    digitalWrite(LED_PIN, HIGH );
     while( debouncer.read() == HIGH){
    }
  }

}
0

Používateľov profilový obrázok
roboulbricht
Stály člen
Stály člen
Príspevky: 156
Dátum registrácie: 07 Jan 2015, 12:01
Bydlisko: Banská Bystrica
Vek: 54
Kontaktovať používateľa:

Re: Pushbutton & seriova linka

Príspevok od používateľa roboulbricht » 11 Sep 2016, 17:48

Pozri si v Bounce2 príklad retrigger. To by mohlo robiť to čo potrebuješ. V tom príklade sa čosi (blikanie počas držania tlačidla) udeje po 500 ms.
0

cheeseburger
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 21 Jan 2015, 23:39

Re: Pushbutton & seriova linka

Príspevok od používateľa cheeseburger » 14 Sep 2016, 11:39

Super dakujem, nakoniec som to zapojil do matice a pouzil kniznicu Keypad.h, ktora riesi vsetko, co som potreboval. Chcel by som sa vsak este spytat, preco ked mam tlacitka zapojene do matice, nepotrebujem ich napajat, ani pripajat ich na GND, kdezto ked napajam samostatne jedno tlacitko, musim pripajat aj 5V aj GND. Dakujem.
0

ealltech
Okoloidúci
Okoloidúci
Príspevky: 8
Dátum registrácie: 26 Okt 2016, 08:16

Re: Pushbutton & seriova linka

Príspevok od používateľa ealltech » 11 Nov 2016, 10:31

Kedze komunikujes na 115200, tak je vyhodne pouzivat aj funkciu Serial.flush() ktora je na to, aby sa to co zapises do bufferu serialu, aj naozaj odislo - dokym to nie je odoslane cele, tak sa nedoplni buffer. , pripadne sa nestane ze sa prepise nahodilo, ako sa to deje u teba..
0

Napísať odpoveď