Bonjour,
Je viens demander de l'aide, et je m'excuse d'avance si je pose des questions inapproprié mais considéré que j'ai 6 ans (pas vraiment) et que je découvre le codage, les microcontrôleurs et l’électronique sans base, à l'aide de tutos et avec de grosses difficultés de compréhension (je bloque vraiment au niveau des variables et j'ai de réelles et grandes difficultés a pleins de petites choses comme compter de tête ...). Tout ça pour vous prévenir que non, je troll pas, je comprends pas tout.
Merci de vote patience.
Voici le vif du sujet, j'ai paramétré un arduino uno pour répondre a des buttons.
je créé "un boitier météo":
Butt1 allume la Led1 : Intensité variable pour imiter la pluie
Butt2 allume Led2 et 3 par clignotement pour imiter orage
Butt3 allume Led4 : intensité variable pour imiter éclaircie (soleil)
Butt5 allume Led5 : fixe pour allumer le logo
Butt4 reprends tous les ordres pour faire un défilement automatique des séquences.
Les branchements et les programmes fonctionnent (yeah!) mais indépendamment les uns des autres, quand je veux tout regrouper sur un seul programme dans IDE et téléverser, je n'ai pas d'erreur, mais les boutons ont des réponses incorrectes (par exemple le butt3 n'allumera plus la Led4 mais la Led1, et le Butt5 va lancer tous les programmes a la suite a la place Butt 4.
Bref, après avoir parcourut beaucoup de tutos et tenter des bool et des while et des delay et des {} un peu partout, je ne sais plus. Bien sur ce projet est pour vendredi, je pensais faire les finitions de présentation puisque les programmes fonctionnes, pas devoir tout reprendre en catastrophe. Donc je suis désespérée (et j'ai plus beaucoup de neurones fonctionnelles)
Si quelqu'un saurait comment remedier au défaut d'intégration, je suis prette a essayer !
Par avance merci.
Matériel
Arduino Uno
Led1, 2, 3 et 5 : Blanche
Led4 : Jaune et rouge
Button : 5 (carré avec 4 broches)
Code pluie :
int buttonPin1=7;
int led1=10;
int x;
//Pluie
void setup()
{
pinMode(buttonPin1,INPUT);
pinMode(led1, OUTPUT);
}
void loop()
{
if(digitalRead(buttonPin1)==HIGH)
{
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255)
{
analogWrite(led1, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0)
{
analogWrite(led1, x);
delay(10);
x = x - 1;
}
}
}
Code orage
int buttonPin2=6;
int led2=11;
int led3=12;
void setup() {
pinMode(buttonPin2,INPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
if(digitalRead(buttonPin2)==HIGH)
{
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(50);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(50);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(200);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(200);
digitalWrite(led3,LOW);
delay(200);
}
}
Code soleil
int buttonPin3=5;
int led4=9;
int x;
//Soleil
void setup() {
pinMode(buttonPin3,INPUT);
pinMode(led4, OUTPUT);
}
void loop() {
if(digitalRead(buttonPin3)==HIGH)
{
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255) {
analogWrite(led4, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0) {
analogWrite(led4, x);
delay(10);
x = x - 1;
}
}
}
Code Logo :
int buttonPin5=3;
int led5=8;
void setup()
{
pinMode(buttonPin5,INPUT);
pinMode(led5, OUTPUT);
}
void loop()
{
//Alpi
if(digitalRead(buttonPin5)==HIGH)
{
digitalWrite(led5,HIGH);
delay(10000);
}
else
{
digitalWrite(led5,LOW);
}
}
Et le dernier, le code Butt4 qui lance successivement tous les allumages :
int buttonPin4=4;
int led1=10;
int led2=11;
int led3=12;
int led4=9;
int led5=8;
int x;
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(buttonPin4,INPUT);
}
void loop()
{
if(digitalRead(buttonPin4)==HIGH)
{
//pluie
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255)
{
analogWrite(led1, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0)
{
analogWrite(led1, x);
delay(10);
x = x - 1;
}
//orage
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(50);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(50);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(200);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(200);
digitalWrite(led3,LOW);
delay(200);
//soleil
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255)
{
analogWrite(led4, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0)
{
analogWrite(led4, x);
delay(10);
x = x - 1;
}
//logo
{
digitalWrite(led5,HIGH);
delay(50000);
}
}
}
Voila, chacun fonctionne mais maintenant quand je veux tout mettre sur la même page et téléverser :
int buttonPin1=7;
int buttonPin2=6;
int buttonPin3=5;
int buttonPin4=4;
int buttonPin5=3;
int led5=8;
int led4=9;
int led3=12;
int led2=11;
int led1=10;
int x;
void setup()
{
pinMode(buttonPin1,INPUT);
pinMode(led1, OUTPUT);
pinMode(buttonPin2,INPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buttonPin3,INPUT);
pinMode(led4, OUTPUT);
pinMode(buttonPin4,INPUT);
pinMode(buttonPin5,INPUT);
pinMode(led5, OUTPUT);
}
void loop()
{
//Pluie
if(digitalRead(buttonPin1)==HIGH)
{
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255)
{
analogWrite(led1, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0)
{
analogWrite(led1, x);
delay(10);
x = x - 1;
}
}
//orage
if(digitalRead(buttonPin2)==HIGH)
{
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(50);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(50);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(200);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(200);
digitalWrite(led3,LOW);
delay(200);
}
//soleil
if(digitalRead(buttonPin3)==HIGH)
{
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255) {
analogWrite(led4, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0) {
analogWrite(led4, x);
delay(10);
x = x - 1;
}
}
//Alpi
if(digitalRead(buttonPin5)==HIGH)
{
digitalWrite(led5,HIGH);
delay(10000);
}
else
{
digitalWrite(led5,LOW);
}
if(digitalRead(buttonPin4)==HIGH)
{
//pluie
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255)
{
analogWrite(led1, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0)
{
analogWrite(led1, x);
delay(10);
x = x - 1;
}
//orage
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(50);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(50);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(50);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(100);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led2,HIGH);
delay(150);
digitalWrite(led2,LOW);
delay(150);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(500);
digitalWrite(led3,HIGH);
delay(150);
digitalWrite(led3,LOW);
delay(150);
digitalWrite(led2,HIGH);
delay(200);
digitalWrite(led2,LOW);
delay(200);
digitalWrite(led3,HIGH);
delay(200);
digitalWrite(led3,LOW);
delay(200);
//soleil
x = 0;
// Allumer progressivement la LED (0 --> 255)
while (x <= 255)
{
analogWrite(led4, x);
delay(10);
x = x + 1;
}
// Eteindre progressivement la LED (255 --> 0)
x = 255;
while (x >= 0)
{
analogWrite(led4, x);
delay(10);
x = x - 1;
}
//logo
{
digitalWrite(led5,HIGH);
delay(10000);
}
}
}
Les allumages deviennent fous !