Afin d'expérimenter ma dernière acquisition, j'ai décidé de me lancer sur un projet d'horloge binaire avec des leds.
Le principe c'est qu'il y a 13 leds :
4 vertes (pour les 4 bits de l'heure)
6 jaunes (pour les minutes)
3 rouges (pour les secondes et par défaut comme le arduino n'a pas plus de sortie. Les deux première les servent donc à déterminer si on est dans les 30 premières ou les 30 dernières seconde de la minute. Enfin la dernière led clignote toutes les secondes...)
J'ai donc relié chaque pin de l'arduino à une résistance de 220 ohms suivit d'une led. Enfin, j'ai relié toutes les bornes (-) des leds au Ground.
Le problème, c'est que seul la partie seconde semble fonctionner... En effet toutes les autres leds semble rester éteinte... o0
Voici le code que j'ai récupéré sur le net si ça peux vous aider :
int minute=57;
int heure=3;
int reste_heure,reste_minute;
void setup()
{
pinMode(1,OUTPUT); //Heure1
pinMode(2,OUTPUT); //Heure2
pinMode(3,OUTPUT); //Heure4
pinMode(4,OUTPUT); //Heure8
pinMode(5,OUTPUT); //Minute1
pinMode(6,OUTPUT); //Minute2
pinMode(7,OUTPUT); //Minute4
pinMode(8,OUTPUT); //Minute8
pinMode(9,OUTPUT); //Minute16
pinMode(10,OUTPUT); //Minute32
pinMode(11,OUTPUT); //Secondes0
pinMode(12,OUTPUT); //Secondes30
pinMode(13,OUTPUT); //SecondesBip
}
void loop() {
static unsigned long lastTick = 0;
if (millis() - lastTick >= 1000) {
lastTick = millis();
second++;}
// move forward one minute every 60 seconds
if (second >= 60) {
minute++;
second = 0; // reset seconds to zero
}
// move forward one hour every 60 minutes
if (minute >=60) {
heure++;
minute = 0; // reset minutes to zero
}
if (heure >=12) {
heure=0;
minute = 0; // reset minutes to zero
}
if(second<30) {digitalWrite(11,HIGH);digitalWrite(12,LOW);} else {digitalWrite(11,LOW);digitalWrite(12,HIGH);}
if(second%2>0){digitalWrite(13,HIGH);} else {digitalWrite(13,LOW);}
//calcul des heures
if((heure/8)>=1) {digitalWrite(1,HIGH);reste_heure=heure%8;} else {digitalWrite(1,LOW);reste_heure=heure;}
if((reste_heure/4)>=1) {digitalWrite(2,HIGH);reste_heure=reste_heure%4;} else {digitalWrite(2,LOW);}
if((reste_heure/2)>=1) {digitalWrite(3,HIGH);reste_heure=reste_heure%2;} else {digitalWrite(3,LOW);}
if((reste_heure/1)>=1) {digitalWrite(4,HIGH);reste_heure=reste_heure%1;} else {digitalWrite(4,LOW);}
//calcul des minutes
if((minute/32)>=1) {digitalWrite(5,HIGH);reste_minute=minute%32;} else {digitalWrite(5,LOW);reste_minute=minute;}
if((reste_minute/16)>=1) {digitalWrite(6,HIGH);reste_minute=reste_minute%16;} else {digitalWrite(6,LOW);}
if((reste_minute/8)>=1) {digitalWrite(7,HIGH);reste_minute=reste_minute%8;} else {digitalWrite(7,LOW);}
if((reste_minute/4)>=1) {digitalWrite(8,HIGH);reste_minute=reste_minute%4;} else {digitalWrite(8,LOW);}
if((reste_minute/2)>=1) {digitalWrite(9,HIGH);reste_minute=reste_minute%2;} else {digitalWrite(9,LOW);}
if((reste_minute/1)>=1) {digitalWrite(10,HIGH);reste_minute=reste_minute%1;} else {digitalWrite(10,LOW);}
}[/code]
Et voici le petit "shéma de cablage" : ici
Merci d'avance pour votre aide