Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int button1Pin = 2; // Az 1. nyomógombot a 2-es pinre csatlakoztattuk
- const int button2Pin = 3; // A 2. nyomógombot a 3-es pinre csatlakoztattuk
- bool button1State = LOW; // A nyomógomb aktuális állapota
- bool button2State = LOW; // A nyomógomb aktuális állapota
- bool lastButton1State = LOW; // Az előző nyomógomb állapot
- bool lastButton2State = LOW; // Az előző nyomógomb állapot
- int iValue=0; // A változtatni kívánt változó kezdeti értéke 0
- unsigned long lastDebounceTime1 = 0; // Az 1. nyomógomb utolsó prellmentes időpontja
- unsigned long lastDebounceTime2 = 0; // A 2. nyomógomb utolsó prellmentes időpontja
- unsigned long debounceDelay = 50; // A prellmentes idő beállítása
- void setup() {
- // Beállítjuk a bemenetként használt pinek irányát. Ha a nyomógomb a GND-hez van csatlakoztatva, akkor szükséges egy felhúzó ellenállás.
- // A felhúzó ellenállás lehet a belső ellenállás is, ílyenkor nincs szükség plusz alkatrészre.
- pinMode(button1Pin, INPUT_PULLUP); // Az 1. nyomógomb pinjét bemenetként állítjuk be és bekapcsoljuk a felhúzó ellenállást
- pinMode(button2Pin, INPUT_PULLUP); // A 2. nyomógomb pinjét bemenetként állítjuk be és bekapcsoljuk a felhúzó ellenállást
- // Amennyiben a nyomógomb a + tápfeszültségre van kötve, akkor egy lehúzó ellenállásra van szükség. Ilyenkor nincs szükség a belső felhúzó ellenállásra.
- // Ebben az esetben így módosul a pinek beállítása:
- //pinMode(button1Pin, INPUT); // Az 1. nyomógomb pinjét bemenetként állítjuk be
- //pinMode(button2Pin, INPUT); // A 2. nyomógomb pinjét bemenetként állítjuk be
- Serial.begin(115200); // Soros kommunikáció inicializálása
- Serial.println("Start ..."); // Lássuk, hogy rendben elindult a program
- }
- void loop() {
- bool reading1 = !digitalRead(button1Pin); // Olvassuk be az 1. nyomógomb állapotát negálva, ha a GND-ra van csatlakoztatva
- bool reading2 = !digitalRead(button2Pin); // Olvassuk be a 2. nyomógomb állapotát negálva, ha a GND-ra van csatlakoztatva
- // Amennyiben a +táphoz csatlakoztattuk, akkor így módosul a nyomógombok állapotának a beolvasása:
- //bool reading1 = digitalRead(button1Pin); // Olvassuk be az 1. nyomógomb állapotát
- //bool reading2 = digitalRead(button2Pin); // Olvassuk be a 2. nyomógomb állapotát
- // Ha a gomb állapota változott
- if (reading1 != lastButton1State) {
- // Frissítjük a prellmentes időtartam kezdeti idejét
- lastDebounceTime1 = millis();
- }
- // Ellenőrizzük, hogy a gomb állapota stabil-e a prellmentes idő után
- if ((millis() - lastDebounceTime1) > debounceDelay) {
- // Ha igen, akkor frissítjük a gomb állapotát
- if (reading1 != button1State) {
- button1State = reading1;
- // Ha a gombot lenyomtad
- if (button1State == HIGH) {
- Serial.println("1. nyomógomb lenyomva");
- if(iValue<5) iValue++; // Az 1. gomb megnyomására növeljuk az iValue változó értéket, ha ez az érték kissebb, mint 5
- Serial.print("Az iValue értéke: ");
- Serial.println(iValue);
- }
- // Ha a gombot elengedted
- else {
- Serial.println("1. nyomógomb elengedve");
- }
- }
- }
- if (reading2 != lastButton2State) {
- // Frissítjük a prellmentes időtartam kezdeti idejét
- lastDebounceTime2 = millis();
- }
- // Ellenőrizzük, hogy a gomb állapota stabil-e a prellmentes idő után
- if ((millis() - lastDebounceTime2) > debounceDelay) {
- // Ha igen, akkor frissítjük a gomb állapotát
- if (reading2 != button2State) {
- button2State = reading2;
- // Ha a gombot lenyomtad
- if (button2State == HIGH) {
- Serial.println("2. nyomógomb lenyomva");
- if (iValue>0) iValue--; // A 2. gomb megnyomására csökkentjük az iValue változó értéket, ha ez az érték nagyobb, mint nulla
- Serial.print("Az iValue értéke: ");
- Serial.println(iValue);
- }
- // Ha a gombot elengedted
- else {
- Serial.println("2. nyomógomb elengedve");
- }
- }
- }
- // A nyomógomb aktuális állapotát eltároljuk az előző állapotban
- lastButton1State = reading1;
- lastButton2State = reading2;
- }
- // END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement