MTclockDouble: Exemple 2
Gestion par événements pour UNO, Nano, Mega

Flashs et bouton

Ce programme va faire flasher LED_BUILTIN quand un bouton est appuyé.

On va utiliser un bouton qui commande un métronome double, un événement sur deux va allumer la led, un événement sur deux va l'éteindre. C'est un exemple classique qui peut servir de base à des tâches comme programmer un ventilateur, un moteur...

Programme complet recommandé

Ce programme se fait complètement sous interruption, et libère loop qui peut être utilisé pour faire autre chose.

// Ce programme fait clignoter LED_BUILTIN quand un bouton est appuyé

#include <MTobjects.h> // V1.0.4 Voir http://arduino.dansetrad.fr/MTobjects

const uint8_t PIN_BUTTON = A0; // Bouton câblé entre GND et A0


// Le métronome fait clignotter la led
void allume(void)
{
  digitalWrite(LED_BUILTIN, HIGH);
}

void eteint(void)
{
  digitalWrite(LED_BUILTIN, LOW);
}

MTdoubleClock Metronome(100 milli_secondes, 10 milli_secondes, allume, eteint, MT_INFINI, MT_OFF);


// Le bouton active ou désactive le métronome
void marche(void)
{
  Metronome.start();
}

void arret(void)
{
  Metronome.stop();
  eteint();
}

MTbutton Bouton(PIN_BUTTON, marche, arret);



void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop(){}