Stránka 1 z 1

Obsluha tlačítka

Napsal: 03 čer 2020, 20:25
od Ludek
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.

Re: Obsluha tlačítka

Napsal: 03 čer 2020, 21:37
od pavel1tu
Co takhle vložit kod ? Křišťálovou kouli jsem dal zrovna vyleštit ....
Ideálně tlačítkem </>

Re: Obsluha tlačítka

Napsal: 03 čer 2020, 21:52
od martinius96
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?

Re: Obsluha tlačítka

Napsal: 04 čer 2020, 20:32
od Ludek
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

Re: Obsluha tlačítka

Napsal: 04 čer 2020, 21:02
od ondraN

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 :? )

Re: Obsluha tlačítka

Napsal: 04 čer 2020, 21:46
od Ludek
OK díky, šlape to.... to se mi líbí :-)
Psal jsem vše mezi závorkami do jedné řádky pro přehlednost.