Bonjour à vous,
Je suis actuellement en train de réaliser un programme pour faire fonctionner deux Leds RGB dans un effet de feu couplé à une machine à fumée pour l'une des Leds.
Mon besoin est que:
- Un bouton poussoir déclenche une séquence avec une led qui scintille et le module de fumée.
- L'autre leds est sur un module amovible qui se déclenche lorsque le contact se fait (le programme peut tourner en continu sans problèmes ou se déclencher qu'au moment du contact.
Pour ce qui est du matériel, j'utilise :
- Un arduino nano
- Deux Leds RGB avec resistances (du kit led Elegoo)
- Une machine à vapeur/fumée en alimentation 5V
- Une alimentation externe 5V
- Un bouton poussoir
Je compte me servir de l'alimentation pour alimenter l'arduino + la machine à fumée. J'ai procéder à des tests d'alimentation de la machine à fumée par l'arduino mais il ne doit pas délivrer assez de puissance pour le faire fonctionner.
Pour ce qui est du code, voici ce que j'ai réussi à faire jusqu'à présent :
// Déclarations des sorties PWM
int ledb1 = 2;
int ledb2 = 10;
int ledv1 = 3;
int ledv2 = 11;
int ledr1 = 4;
int ledr2 = 12;
void setup() {
// En mode sortie
pinMode(ledb1, OUTPUT);
pinMode(ledv1, OUTPUT);
pinMode(ledr1, OUTPUT);
pinMode(ledb2, OUTPUT);
pinMode(ledv2, OUTPUT);
pinMode(ledr2, OUTPUT);
}
void loop() {
analogWrite(ledb1, 0);
analogWrite(ledv1, random(10,30));
analogWrite(ledr1, 150);
delay(random(30,80));
analogWrite(ledb2, 0);
analogWrite(ledv2, random(10,30));
analogWrite(ledr2, 150);
delay(random(30,80));
}
Le scintillement correspond parfaitement à ce que je recherche. Mais maintenant il faut que j'incorpore la tempo de 30s que je désire pour le module.. et c'est à ce moment que ça bloque.
En effet, de ce que j'ai pu lire/trouver, la fonction Delay bloque la lecture du reste du programme. Il faudrait que je passe sur une fonction mili? Mais je ne comprends pas trop bien comment l'utiliser..
Aussi, je m'interrogeais sur le déclenchement par BP. Devrais-je utiliser la fonction IF afin de détecter le déclenchement et ainsi lancer cette séquence en particulier ?
D'ailleurs, comment dois-je "étager" le programme ? Dois-je créer des sections et/ou séquence ou encore des fonctions ? Ceci afin que la détection du BP ne rentre pas en conflit avec la led qui peut tourner en boucle.
Si oui, avec quelle fonction ?
Tant de question de débutant...
Je vous remercie par avance pour tout éclairage que vous pourrez m'apporter et point de réflexion.
N'hesitez surtout pas s'il vous manque des éléments, j'ai essayer d'être le plus claire possible mais entre ce qui est clair dans ma tête et un/une inconnu(e) à mes souhaits, il peut y avoir un monde.
Et c'est mon 1er post..