Csinálni szeretnék egy hőfok szabályozó, ami az aktuális hőfokot egy 3 karakteres hétszegmenses kijelző írja ki.
A hőfokot állíthatóra szeretném megcsinálni. A hőfokot beállítását két gomb segítségével oldanám meg, amik megnyomva LOW értéket adnak az arduino 8,9 -és bemenetére.
Úgy gondoltam, hogy amikor megnyomom a két gombot egyszerre, írja ki a beállított hőfok értékét, utána egyik gomb lefelé , másik gomb felfelé állít. Ha ismét egyszerre megnyomom a két gombot, visszatér a hőfok kijelzésre (nyilván menti az új értéket).
A program most egy számlálót futtat, hogy lássam, hogy kiléptem a menüből.
A "menübe" való belépés , és az állítás is működik önmagában, de ha egyberakom őket akkor nem.
Kód: Egész kijelölése
void loop() {
gomb1 = digitalRead(8);
gomb2 = digitalRead(9);
quit = 1;
if (gomb1 == LOW && gomb2 == LOW )
{
while (quit == 1)
{
for (int i=0; i <= 5; i++){
disp.write (setpoint);
delay (10);
}
if (gomb1 == LOW && gomb2 == LOW ){ //kilépés a menüből
delay (1000);
if (gomb1 == LOW && gomb2 == LOW )
{
quit = 0;}
}
if (gomb1 == LOW) // setpoint növelése
{
if (gomb1 != gomb1e)
{
setpoint++;
disp.write (setpoint);
delay (100);
gomb1 = gomb1e;
}
}
if (gomb2 == LOW) // setpoint csökkentése
{
if (gomb2 != gomb2e)
{
setpoint--;
disp.write (setpoint);
delay (100);
gomb2 = gomb2e;
}
}
delay (500);
}
}
disp.write (counter);
counter++;
if (counter == 5000){
counter = 1;}
}