Aide à la programmation sur arrêt et relance d'un véhicule

C''est-à-dire?


  • Il faut avoir une variable qui contient l'état actuel embrayé/débrayé et une variable qui contient le fait que l'on a effectué une action.
  • Il faut tester le bouton en permanence et comparer son état actuel avec son état précédent pour détecter un appui.
  • si le bouton était au repos au cycle précédent et actuellement au repos effacer la variable qui contient le fait que l'on a effectué une action
    -si le bouton était au repos au cycle précédent et actuellement activé et que l'action n'a pas été effectuée il faut:
    • changer l'état de la variable qui contient l'état embrayé/débrayé.
    • effectuer l'action embrayage/débrayage
    • mémorisé le fait que l'on a effectué l'action
    • faire un petit delay() pour masquer les éventuels rebonds du bouton

Ce genre de chose peut être traitée assez facilement avec une machine à état. Il y a un tuto ici


À chaque fois que l'on commence la boucle for, la variable est initialisée à 0 (c'est ce qu'indique le premier argument de la fonction)


A noter

Les sorties PWM génère un signal relativement lent (sur les broche 5 et 6 c'est 980Hz, soit un peu plus de 1ms) or le temps d'exécution de la boucle for doit être inférieur à 1ms donc les 5 pas de ta boucle doivent être complètement masqués.