Bonjour, ça fait 2 semaines qu'on a commencé à faire des cours sur arduino et notre prof nous a donné ce sujet :
Je simule sur ISIS vu que je n'ai pas encore reçu mon kit arduinoOn dispose, sur une voiture, de 4 commandes indépendantes: Cv pour les veilleuses, Cc pour les
feux de croisement, Cr pour les feux de route et Ca pour les phares anti-brouillard (valeur 1 au
travail, 0 au repos).
On note les états des lumières V pour les veilleuses, C pour les feux de croisement, R pour les feux
de route et A pour les feux antibrouillard (valeur 1 à l'allumage, 0 à l'extinction).
les veilleuses peuvent être allumées seules mais l'allumage des feux de croisement ou des feux de
route ou des antibrouillard entraîne obligatoirement l'allumage des veilleuses. De plus, il est précisé
que les 4 phares ne peuvent être allumés simultanément. On suit alors les règles suivantes, qui sont
des priorités pour ne pas avoir les 4 phares allumées :
- les feux de croisement ont priorité sur les feux de route et sur les antibrouillard ;
- les antibrouillard ont priorité sur les feux de route
Utilisez le switch à 4 boutons pour simuler les 4 commandes Cv, Cc, Cr, Ca, et 4 LED pour simuler
les 4 feux.
Réaliser le programme et le montage
Voila j'ai essayé de le coder mais même si les leds s'allument quand j'appuie sur le bouton poussoir le truc c'est qu'elle ne s'éteignent pas après que le digitalRead soit à 0:
Voici mon code :
voila merci de m'aider. Pour information je n'ai à le rendre que dans une semaine vu qu'on nous a donné l'exo hier. Mais j'aimerais le finir d'ici demain pour m'occuper d'autres choses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 void setup() { pinMode(13, OUTPUT); //C pinMode(12, OUTPUT);//A pinMode(11, OUTPUT);//R pinMode(10, OUTPUT);//V pinMode(6, INPUT);//c pinMode(5, INPUT);//a pinMode(4, INPUT);//r pinMode(3, INPUT);//v } void loop() { int c=digitalRead(6);int a=digitalRead(5);int r=digitalRead(4);int v=digitalRead(3); if(v==1) { digitalWrite(10,HIGH);} else if(c==1) { digitalWrite(10,HIGH);digitalWrite(13,HIGH);} else if( c==1&&a==1) { digitalWrite(10,HIGH);digitalWrite(13,HIGH);} else if(c==1&&r==1) { digitalWrite(10,HIGH);digitalWrite(13,HIGH);} else if(a==1) { digitalWrite(10,HIGH);digitalWrite(12,HIGH);} else if(a==1&&r==1) { digitalWrite(10,HIGH);digitalWrite(12,HIGH);} else if(a==1&&v==1) { digitalWrite(10,HIGH);digitalWrite(12,HIGH);} else if(r==1) { digitalWrite(10,HIGH);digitalWrite(11,HIGH);} else if(r==1&&v==1) { digitalWrite(10,HIGH);digitalWrite(11,HIGH);} }
Partager