Obsluha tlačítka

Odpovědět
Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Obsluha tlačítka

Příspěvek od Ludek » 03 čer 2020, 20:25

Amatér má problém :-)
Potřebuji obsluhu tlačítka, když ho stisknu, napíše třeba "Ahoj"... Což je naprostá trivialita, po stisku to napíše
pouze jednou, i když ho držím dlouho. Jednoduché, je toho plný Net a příručky....
ale ono mi to napíše Ahoj hned po zapnutí, resp. po aktivaci terminálu. A to je pro mne průšvih...
Díky za radu, jak eliminovat tento neduh.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Obsluha tlačítka

Příspěvek od pavel1tu » 03 čer 2020, 21:37

Co takhle vložit kod ? Křišťálovou kouli jsem dal zrovna vyleštit ....
Ideálně tlačítkem </>
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: Obsluha tlačítka

Příspěvek od martinius96 » 03 čer 2020, 21:52

Ty chceš vypísať ten text jednorázovo počas stlačenia (držania tlačidla)? Alebo po jeho pustení.
Taktiež by si mohol priblížiť zapojenie.. INPUT / INPUT_PULLUP?

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Obsluha tlačítka

Příspěvek od Ludek » 04 čer 2020, 20:32

Rozumím, souhlasím, chápu.... nechtěl jsem svým kodem ovlivnit. Tak posílám co sice funguje jak má,
ale jelikož po startu to napíše Ahoj, tak to je pro mne problém...

Kód: Vybrat vše

/*
 * TEST stisku tlacitka A
 */
#define TLA 5                   // vstup tlacitka
bool ActA;
bool LastA = LOW; 
//----------------------------------------------------------------------------------------------
void setup() {
  pinMode(TLA,INPUT);           // tlacitko spina PLUS
 Serial.begin(9600);   }
//----------------------------------------------------------------------------------------------
void loop() {
  if (!digitalRead(TLA) and !LastA) {LastA = HIGH; Serial.println("Ahoj"); delay(100); }
     else if (!digitalRead(TLA) == LOW) { LastA = LOW; } 
  }   // konec

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Obsluha tlačítka

Příspěvek od ondraN » 04 čer 2020, 21:02

Kód: Vybrat vše

/*
 * TEST stisku tlacitka A
 */
#define TLA 5                   // vstup tlacitka
bool ActA;
bool LastA = LOW; 
//----------------------------------------------------------------------------------------------
void setup() {
  pinMode(TLA,INPUT);           // tlacitko spina PLUS
 Serial.begin(9600);  
 delay(100); //pockat na nabeh urovne LOW na pinu tlacitka
 }
//----------------------------------------------------------------------------------------------
void loop() {
  if ((digitalRead(TLA)==HIGH) && (LastA==LOW)) {
  	LastA = HIGH; 
 	 Serial.println("Ahoj"); 
  	delay(100); 
  }else{
   	if (digitalRead(TLA) == LOW) {
     	LastA = LOW; 
     	} 
   }
 }   // konec
A doporučuji psát kód přehledně, jinak se v tom ani prase nevyzná (viz. ty podmínky v ifech :? )

Ludek
Příspěvky: 289
Registrován: 02 pro 2019, 08:14
Reputation: 0
Bydliště: České Budějovice

Re: Obsluha tlačítka

Příspěvek od Ludek » 04 čer 2020, 21:46

OK díky, šlape to.... to se mi líbí :-)
Psal jsem vše mezi závorkami do jedné řádky pro přehlednost.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti