Étape 4: L’horloge
Le câblage
Le câblage est juste à ajouter deux boutons, de sorte que c’est pas si difficiles.
Pour obtenir les boutons releiable de travail sur un Arduino, vous devrez utiliser un menu déroulant résistance (connectés à la GND) ou une traction vers le haut de résistance (relié à la + 5V).
Cette résistance de 10 kOhm prend en charge que le bouton est basse ou haute, quand il n’est pas poussé. J’ai utilisé une traction vers le haut de résistance, donc mes boutons sont haute lorsqu’ils ne sont pas poussés.
(apprendre tout ce que vous avez jamais voulu savoir sur boutons Arduinos ici:)
- Connectez un fil de la + bande de la maquette à + 5 v sur l’Arduino
- Connectez un fil de la - bande de la maquette au GND sur l’Arduino
- Placer deux boutons dans le montage d’essai
- connecter une résistance de 10kOhm entre une jambe du bouton et le + bande (2 x)
- Connectez un fil de la même jambe du bouton où la résistance est connectée, à la broche 8 de l’Arduino (et jusqu'à la broche 9 de l’autre bouton)
- connecter un fil de l’autre jambe des boutons pour de-bande (2 x)
L’esquisse
J’ai essayé d’écrire ma propre sketch, en utilisant la fonction [millis] sur l’Arduino, mais ce n’était pas si facile que j’ai pensé qu’il serait, donc j’ai cherché www.arduino.cc et trouvé quelques belles bibliothèques et croquis. La seule chose était que les croquis tous quelque chose d’externe utilisé pour régler l’heure (internet, port série ou RTC). J’ai voulu utiliser les deux boutons pour régler l’heure, il n’y avait toujours une programmation à faire pour moi.
Encore, je n’ai pas l’écran LCD, alors la fonction de moniteur de la série du logiciel Arduino-sera mon écran pour l’instant.
Avant de pouvoir exécuter l’esquisse, vous devrez télécharger la bibliothèque ici : http://www.arduino.cc/playground/Code/Time et placez-le dans votre dossier [arduino]. (et redémarrez le logiciel Arduino)
Le code
#include < Time.h > //adding-la bibliothèque
int knoptijd = 400 ; définition de toutes les variables (Désolé pour les noms néerlandais)
uur int = 12 ;
minuut int = 15 ;
seconde int = 0 ;
dag int = 10 ;
int maand = 9 ;
int jaar = 2011 ;
int knopset = 10 ;
int knopmode = 11 ;
int setwaarde = 0 ;
int modewaarde = 0 ;
void setup() {}
pinMode (knopset, entrée) ;
pinMode (knopmode, entrée) ;
Serial.Begin(9600) ;
setTime(uur,minuut,seconde,dag,maand,jaar) ; définissant le starttime pour l’horloge quand il démarre
}
void loop() {}
setklok() ;
digitalClockDisplay() ;
Delay(1000) ;
}
void setklok() {//setting l’horloge
modewaarde = digitalRead(knopmode) ;
Si (modewaarde == faible) {//if le bouton [mode] est pusched
Serial.println ("tijd instellen") ;
fixer les heures
Serial.println("uur") ;
Serial.println(uur) ;
Delay(knoptijd) ;
modewaarde = digitalRead(knopmode) ;
même si (modewaarde == HIGH) {}
Delay(knoptijd) ;
setwaarde = digitalRead(knopset) ;
Si (setwaarde == faible) {}
uur ++ ;
Si uur (uur > 24) = 1 ;
Serial.println(uur) ;
}
modewaarde = digitalRead(knopmode) ;
}
réglage des minutes
Serial.println("minuut") ;
Serial.println(minuut) ;
Delay(knoptijd) ;
modewaarde = digitalRead(knopmode) ;
même si (modewaarde == HIGH) {}
Delay(knoptijd) ;
setwaarde = digitalRead(knopset) ;
Si (setwaarde == faible) {}
minuut ++ ;
Si minuut (minuut > 59) = 0 ;
Serial.println(minuut) ;
}
modewaarde = digitalRead(knopmode) ;
}
réglage du mois
Serial.println("maand") ;
Serial.println(maand) ;
Delay(knoptijd) ;
modewaarde = digitalRead(knopmode) ;
même si (modewaarde == HIGH) {}
Delay(knoptijd) ;
setwaarde = digitalRead(knopset) ;
Si (setwaarde == faible) {}
maand ++ ;
Si maand (maand > 12) = 1 ;
Serial.println(maand) ;
}
modewaarde = digitalRead(knopmode) ;
}
réglage du jour
Serial.println("Dag") ;
Serial.println(DAG) ;
Delay(knoptijd) ;
modewaarde = digitalRead(knopmode) ;
même si (modewaarde == HIGH) {}
Delay(knoptijd) ;
setwaarde = digitalRead(knopset) ;
Si (setwaarde == faible) {}
Dag ++ ;
Si (maand == 1 || maand == 3 || maand == 5 || maand == 7 || maand == 8 || maand == 10 || maand == 12) {}
Si dag (dag > 31) = 1 ;
}
Si (maand == 4 || maand == 6 || maand == 9 || maand == 11) {}
Si dag (dag > 30) = 1 ;
}
Si (maand == 2) {}
Si dag (dag > 28) = 1 ;
}
Serial.println(DAG) ;
}
modewaarde = digitalRead(knopmode) ;
}
setTime(uur,minuut,seconde,dag,maand,jaar) ;
}
}
void digitalClockDisplay() {//printing date et heure
Serial.Print(Hour()) ;
printDigits(minute()) ;
Serial.Print("") ;
Serial.Print(Day()) ;
Serial.Print("/") ;
Serial.Print(month()) ;
Serial.println() ;
}
void printDigits (int chiffres) {}
fonction d’utilité pour l’affichage de l’horloge numérique : tirages précédents du côlon et menant 0
Serial.Print(":") ;
if(digits < 10)
Serial.Print('0') ;
Serial.Print(digits) ;
}