InvitéInvité
| Dim 16 Sep 2012 - 7:18 | |
| Ne sachant pas ou je pourrais poster ça, je le fait ici .-. Bonjour à vous; Vous connaissait tous le principe des Montre binaire ? Et bien, n'arrivant pas à dormir, j'ai décider de créermon Horloge Binaire. Le Principe est identique, deux lignes. Une pour les heures, une pour les minutes. L'horloge présente deux étapes ; la première consiste à régler l'heure et les minutes. Pour le moment seul l'heure est réglable .. N'ayant pas suffisamment de câble pour les Leds des Minutes .. Un atelier coupage dénudage va avoir lieux ! Mais le réglage d'heure fonctionne. et est identique pour les minute. Je précise : A l'heure Actuelle le code est un BROUILLON . Le code finale seras plus optimiser et clair. Ah ,j'oublier, j'utilise une carte Arduino Uno REV 3. Photo, vidéo, et code ! [spoiler] inverser le sens des leds ( 1-2-4-8 au lieu de 8-4-2-1 .. pardon <3 ) - Spoiler:
Vidéo : C'est simple , à chaque changement on ajoute une heure .. 1.. 2.. 3.. 4.. jusqu'à 12 =) Lien de la Vidéo : https://www.facebook.com/video/video.php?v=329905047105884&savedEt pour le code : - Spoiler:
- Code:
-
const int bouton_minute = 1; const int bouton_heure = 0; const int bouton_start = 2;
int etat_bouton_minute = HIGH; int etat_bouton_heure = HIGH; int etat_bouton_start = HIGH;
// HEURE// const int led_heure_8 = 6; const int led_heure_4 = 5; const int led_heure_2 = 4; const int led_heure_1 = 3; //MINUTES// const int led_min_32 = 7; const int led_min_16 = 8; const int led_min_8 = 9; const int led_min_4 = 10; const int led_min_2 = 11; //11 const int led_min_1 = 12; //VARIABLES// int minute = 0; int heure = 0; int etat = 0;
//FONCTIONS// void heure_zero() { digitalWrite(led_heure_8, HIGH); digitalWrite(led_heure_4, HIGH); digitalWrite(led_heure_2, HIGH); digitalWrite(led_heure_1, HIGH); }
void setup() { //BOUTONS// pinMode(bouton_minute, INPUT); pinMode(bouton_heure, INPUT); pinMode(bouton_start, INPUT); //LEDS// pinMode(led_heure_8,OUTPUT); pinMode(led_heure_4,OUTPUT); pinMode(led_heure_2,OUTPUT); pinMode(led_heure_1,OUTPUT); digitalWrite(led_heure_8, HIGH); digitalWrite(led_heure_4, HIGH); digitalWrite(led_heure_2, HIGH); digitalWrite(led_heure_1, HIGH); // pinMode(led_min_32,OUTPUT); pinMode(led_min_16,OUTPUT); pinMode(led_min_8,OUTPUT); pinMode(led_min_4,OUTPUT); pinMode(led_min_2,OUTPUT); pinMode(led_min_1,OUTPUT); }
void loop() {
if(etat == 0) // Si l'heure n'as pas était régler. { etat_bouton_heure = digitalRead(bouton_heure); if(etat_bouton_heure == LOW) // On ajoute une heure { if(heure <= 12) // Si l'heure est infériere ou égale à 12 { heure = heure +1; if(heure == 1) { digitalWrite(led_heure_1, LOW); } if(heure == 2) { heure_zero(); digitalWrite(led_heure_2, LOW); } if(heure == 3) { heure_zero(); digitalWrite(led_heure_1, LOW); digitalWrite(led_heure_2, LOW); } if(heure == 4) { heure_zero(); digitalWrite(led_heure_4, LOW); } if(heure == 5) { heure_zero(); digitalWrite(led_heure_4, LOW); digitalWrite(led_heure_1, LOW); } if(heure == 6) { heure_zero(); digitalWrite(led_heure_4, LOW); digitalWrite(led_heure_2, LOW); } if(heure == 7) { heure_zero(); digitalWrite(led_heure_4, LOW); digitalWrite(led_heure_2, LOW); digitalWrite(led_heure_1, LOW); } if(heure == 8) { heure_zero(); digitalWrite(led_heure_8, LOW); } if(heure == 9) { heure_zero(); digitalWrite(led_heure_8, LOW); digitalWrite(led_heure_1, LOW); } if(heure == 10) { heure_zero(); digitalWrite(led_heure_8, LOW); digitalWrite(led_heure_2, LOW); } if(heure == 11) { heure_zero(); digitalWrite(led_heure_8, LOW); digitalWrite(led_heure_2, LOW); digitalWrite(led_heure_1, LOW); } if(heure == 12) { heure_zero(); digitalWrite(led_heure_8, LOW); digitalWrite(led_heure_4, LOW); } } if(heure > 12) // Si l'heure est supérieure à 12 { heure = 0; heure_zero(); } delay(1000); } //MINUTES// (Pas encore de LEDS) etat_bouton_minute = digitalRead(bouton_minute); if(etat_bouton_minute == LOW) // Si on ajoute des minutes { if(minute <= 59 ) // Si les minute sont à 59 ou moins { minute = minute+1; } else // Si les minute sont à 60 { heure = heure + 1; minute = 0; } } etat_bouton_start = digitalRead(bouton_start); if(etat_bouton_start == LOW) // Si on valide le reglage { etat = 1; } } ////////////////////////////////////////////////////////////////// if(etat == 1) // Réglage déjà fait { // A faire. } }
|
|