AI (Artificial Intelligence) maakt op het moment een stormachtige ontwikkeling door. Er is al een ChatBot die Arduino code kan schrijven.

Probeer het maar eens:

https://www.codey.online/?chat=Codey

Zie hier een voorbeeld van een mogelijke conversatie:

Codey
Hoi, ik ben Codey, jouw programmeerhulp en expert op het gebied van Arduino, ESP32, ESP8266, sensoren, relais en componenten. Vraag mij bijvoorbeeld: Maak een code voor Arduino die een servo 90 graden laat draaien als er 3x op een knopje wordt gedrukt…
PA3BBY (geeft opdracht)
Maak een Arduino programma dat als je drie keer op knop 1 drukt een led doet aangaan, en als je 3 keer op knop 2 drukt dezelfde LED weer doet uitgaan
Codey

Hier is een code die beschrijft wat je beschrijft. Ervan uitgaande dat de knoppen op digitale pins 2 en 3 zijn aangesloten en de LED op pin 4:

int button1 = 2; // knop 1 is aangesloten op digitale pin 2
int button2 = 3; // knop 2 is aangesloten op digitale pin 3
int led = 4; // LED is aangesloten op digitale pin 4

int button1Count = 0; // houdt het aantal keren bij dat de eerste knop is ingedrukt
int button2Count = 0; // houdt het aantal keren bij dat de tweede knop is ingedrukt

void setup() {
  pinMode(button1, INPUT_PULLUP); // zet knop 1 als input met ingebouwde pull-up weerstand
  pinMode(button2, INPUT_PULLUP); // zet knop 2 als input met ingebouwde pull-up weerstand
  pinMode(led, OUTPUT); // zet de LED als output
}

void loop() {
  if (digitalRead(button1) == LOW) { // als knop 1 wordt ingedrukt
    delay(50); // voeg een kleine vertraging toe om meerdere klikken te voorkomen
    if (digitalRead(button1) == LOW) { // controleer op echte knopdruk
      button1Count++; // verhoog teller voor knop 1
      if (button1Count == 3) { // controleer of de teller de grens van 3 heeft bereikt
        digitalWrite(led, HIGH); // zet LED aan
        button1Count = 0; // reset teller voor knop 1
      }
    }
  }

  if (digitalRead(button2) == LOW) { // als knop 2 wordt ingedrukt
    delay(50); // voeg een kleine vertraging toe om meerdere klikken te voorkomen
    if (digitalRead(button2) == LOW) { // controleer op echte knopdruk
      button2Count++; // verhoog teller voor knop 2
      if (button2Count == 3) { // controleer of de teller de grens van 3 heeft bereikt
        digitalWrite(led, LOW); // zet LED uit
        button2Count = 0; // reset teller voor knop 2
      }
    }
  }
}

Dit programma controleert constant of de knop 1 of knop 2 wordt ingedrukt en houdt bij hoe vaak dit gebeurt. Als een knop wordt ingedrukt, wordt een kleine vertraging toegevoegd om te voorkomen dat meerdere klikken worden geregistreerd. Als een knop 3 keer is ingedrukt, wordt de LED aan- of uitgeschakeld, afhankelijk van welke knop is ingedrukt, en wordt de teller voor die knop gereset.


PA3BBY:

Terug naar de ‘normale wereld’.

Dit programma is geheel correct, en werkt zoals gevraagd.

Ton PA3BBY  (Met dank aan Rob PA1EMT voor de tip)