Bonjour et merci pour vos infos ! Bonne fête de Pâques à tous !
Perso je suis un peu perdu ! Ce matin après avoir mangé quelques œufs de Pâques avec Tom , j'ai simplement effectué le montage et codage du 31.03.24 par @jpbbricole sur wokwi suivant:
/*
Name: ARDFR_papadetom4microswitches.ino
Created: 28.03.2024 15:56:26
Author: jpbbricole/papadetom
*/
// Déclaration des broches
const byte delPin[] = {10, 11, 12, 13};
const byte bpPin[] = {2, 3, 4, 5};
const byte bpNombre = sizeof(bpPin) / sizeof(bpPin[0]); // Calcul du nombre de boutons
const byte delEtatOn = HIGH; // Etat pour allumer la LED
const byte bpEtatOn = LOW; // Etat de bp quand actif
const unsigned long delOnTempo[] = {2000, 2000, 2000, 2000}; // Durées d'allumage
unsigned long delOnMillis[] = {0, 0, 0, 0}; // Durées d'allumage, chrono
void setup( )
{
Serial.begin(115200);
for (int b = 0; b < bpNombre; b ++) // programmation des broches
{
pinMode(delPin[b], OUTPUT);
digitalWrite(delPin[b], !delEtatOn); // extinction de la LED
pinMode(bpPin[b], INPUT_PULLUP);
}
}
void loop()
{
for (int b = 0; b < bpNombre; b ++) // Lecture des boutons
{
if (digitalRead(bpPin[b]) == bpEtatOn && digitalRead(delPin[b]) != delEtatOn) // poussoir enfoncé et DEL pas allumée
{
digitalWrite(delPin[b], delEtatOn); // Allumer la LED
delOnMillis[b] = millis(); // Démarrage du chrono
Serial.println(String(b) + " Start " + String(delOnTempo[b]) + " millisecondes");
}
}
for (int b = 0; b < bpNombre; b ++) // Lecture des chrono
{
if (digitalRead(delPin[b]) == delEtatOn && millis() - delOnMillis[b] >= delOnTempo[b]) // Si led allumée et chrono à échéance
{
Serial.println(String(b) + " END");
digitalWrite(delPin[b], !delEtatOn); // Etreindre la LED
}
}
}
Celui me convient parfaitement. Je ne souhaite pas forcément comprendre le codage comme déjà expliqué auparavant, Tom fera certainement d'autre essai de codage et d'autre montage avec celui-pour s'améliorer, après tout il n'a que 10 ans ! Je souhaite à présent ajouter le buzzer qui doit produire 1 son (de 1 ou plusieurs notes) uniquement lorsque l'une des leds s'allume. Puis (comme si cela n'était pas déjà assez compliqué pour moi ! ) aussi faire fonctionné le moteur pas à pas pendant x secondes quand l'une des leds s'allume (ou fonctionne le temps d'allumage de la led peut-être aussi une solution).
Je demande beaucoup mais je suis dans l'impossibilité de faire cela seul pour le moment ! Auriez vous un bon livre à me conseiller pour apprendre le c++ pour arduino avec des exemples et surtout ludique pour Tom ? Poiur info, j'ai commandé un abonnement chez https://www.robobox.fr/
Merci !
papadetom
jc