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.