Dobrý den, prosím o radu. Jsem začátečník a peru se s jedním problémem.
Mám desku na které jsou čtyři tlačítka Jedno se má chovat jako hlavní vypínač. Stiskem se aktivují ostatní tři tlačítka, které řídí další módy. Dalším stiskem tohoto tlačítka se opět tři tlačítka zdeaktivují. Nevím si s tím rady, třeba je to banální, ale jak jsem psal jsem začátečník.
Díky za rady.
Tlačítko jako hlavní vypínač
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Re: Tlačítko jako hlavní vypínač
Stiskneš aktivační tlačítko a nastavíš příznak - flag. A dokud je flag nastaven, tak ta zbývající tlačítka prostě nečteš, dáš podmínku, že se jejich čtení vynechává. Dalším stiskem tlačítka příznak smažeš.
To čtení tlačítka by mohlo vypadat třeba nějak takhle:
Trochu jsem to upravil, mělo by to jít volat i přímo z hlavní smyčky.
To čtení tlačítka by mohlo vypadat třeba nějak takhle:
Kód: Vybrat vše
#define BUTTONPIN 5
char ButtonCount;
bool Flag;
void setup() {
// put your setup code here, to run once:
pinMode(BUTTONPIN, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
GetButton();
}
void GetButton(void) {
if (digitalRead(BUTTONPIN) == false ) ++ButtonCount;
if (digitalRead(BUTTONPIN) == true && ButtonCount > 1 && ButtonCount < 100 ) {
Flag = !Flag;
delay(10);
}
if (digitalRead(BUTTONPIN) == true ) ButtonCount = 0;
}
Re: Tlačítko jako hlavní vypínač
A nebo můžeš použít pin, který podporuje přerušení. A stejný způsobem měnit flag. Bylo by dobrý, aby tlačítko nezakmitávalo.
Pak je tu varianta hlídání náběžné hrany vstupu pomocí kódu (určitě na to existuje i několik knihoven).
Kód: Vybrat vše
bool flag;
void setup() {
pinMode(2, INPUT);
attachInterrupt(2, ToogleFlag, RISING);
}
void ToogleFlag(){
flag = !flag;
}
Re: Tlačítko jako hlavní vypínač
Děkuji, moc jste mi pomohli 

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