Beer Clock : Différence entre versions
Ligne 34 : | Ligne 34 : | ||
<nowiki>#define ledPin1 11 // LED connected to pin 11</nowiki> | <nowiki>#define ledPin1 11 // LED connected to pin 11</nowiki> | ||
+ | |||
<nowiki>#define ledPin2 10</nowiki> | <nowiki>#define ledPin2 10</nowiki> | ||
+ | |||
<nowiki>#define ledPin3 9</nowiki> | <nowiki>#define ledPin3 9</nowiki> | ||
+ | |||
<nowiki>#define ledPin4 6</nowiki> | <nowiki>#define ledPin4 6</nowiki> | ||
+ | |||
<nowiki>#define ledPin5 5</nowiki> | <nowiki>#define ledPin5 5</nowiki> | ||
<nowiki>#define BP1 13</nowiki> | <nowiki>#define BP1 13</nowiki> | ||
+ | |||
<nowiki>#define BP2 12</nowiki> | <nowiki>#define BP2 12</nowiki> | ||
+ | |||
<nowiki>#define BP3 8</nowiki> | <nowiki>#define BP3 8</nowiki> | ||
Version du 23 janvier 2019 à 10:01
C'est l'heure de l'apéro !
Sommaire
Description du projet
Nous avons réaliser ce projet dans le but de répondre à un besoin de la Cafétéria de l'ENIB, savoir si lors des apéros et autres événements nous pouvons nous faire servir une bière. Nous avons ainsi eu l'idée de créer une horloge. Au début de la soirée, nous pouvons ainsi sélectionner la durée de la soirée (3h, 4h ou 7h) en appuyant sur le bouton poussoir adéquat. Lors de l'appui sur le bouton, les 5 LEDs présentent sur la plaque en forme de bière s'allume. Au fur et à mesure que le temps passe, les LEDs clignotent puis s'éteignent une par une, afin qu'à la fin du décompte plus rien ne soit allumé.
Matériel nécessaire
Pour la partie programmable :
• 1 Carte Arduino • 3 Boutons Poussoirs • 3 Résistances de 10kΩ • 5 LEDs • 5 Résistances de 330Ω
Pour la partie support :
• 1 planche de medium de 25 cm x 20 cm • 1 découpeuse laser
Réalisation
Schéma de câblage
Avec l'aide du logiciel Fritzing, nous avons réalisé le schéma de câblage suivant :
Code Arduino
#define ledPin1 11 // LED connected to pin 11
#define ledPin2 10
#define ledPin3 9
#define ledPin4 6
#define ledPin5 5
#define BP1 13
#define BP2 12
#define BP3 8
int BP1state = 0; int BP2state = 0; int BP3state = 0;
int hour;
void setup() {
Serial.begin(9600);
pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); pinMode(ledPin4, OUTPUT); pinMode(ledPin5, OUTPUT);
pinMode(BP1, INPUT); pinMode(BP2, INPUT); pinMode(BP3, INPUT);
}
void startCount(float hours) {
long int duree; duree = hours*3600*1000; delay(duree/5);
//Clignotement Led 5 digitalWrite(ledPin5, LOW); delay(500); digitalWrite(ledPin5, HIGH); delay(500); digitalWrite(ledPin5, LOW); delay(500); digitalWrite(ledPin5, HIGH); delay(500); digitalWrite(ledPin5, LOW); delay((duree/5)-2000);
//Clignotement Led 4 digitalWrite(ledPin4, LOW); delay(500); digitalWrite(ledPin4, HIGH); delay(500); digitalWrite(ledPin4, LOW); delay(500); digitalWrite(ledPin4, HIGH); delay(500); digitalWrite(ledPin4, LOW); delay((duree/5)-2000);
//Clignotement Led 3 digitalWrite(ledPin3, LOW); delay(500); digitalWrite(ledPin3, HIGH); delay(500); digitalWrite(ledPin3, LOW); delay(500); digitalWrite(ledPin3, HIGH); delay(500); digitalWrite(ledPin3, LOW); delay((duree/5)-2000);
//Clignotement Led 2 digitalWrite(ledPin2, LOW); delay(500); digitalWrite(ledPin2, HIGH); delay(500); digitalWrite(ledPin2, LOW); delay(500); digitalWrite(ledPin2, HIGH); delay(500); digitalWrite(ledPin2, LOW); delay((duree/5)-2000);
//Clignotement Led 1 digitalWrite(ledPin1, LOW); delay(500); digitalWrite(ledPin1, HIGH); delay(500); digitalWrite(ledPin1, LOW); delay(500); digitalWrite(ledPin1, HIGH); delay(500); digitalWrite(ledPin1, LOW); delay((duree/5)-2000);
}
void loop() {
// read the buttons BP1state = digitalRead(BP1); BP2state = digitalRead(BP2); BP3state = digitalRead(BP3);
if(BP1state && BP2state && BP3state) { digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, LOW); digitalWrite(ledPin4, LOW); digitalWrite(ledPin5, LOW); }
if(!BP1state) { digitalWrite(ledPin1, HIGH); delay(300); digitalWrite(ledPin2, HIGH); delay(300); digitalWrite(ledPin3, HIGH); delay(300); digitalWrite(ledPin4, HIGH); delay(300); digitalWrite(ledPin5, HIGH); delay(300); startCount(7);
}
if(!BP2state) { digitalWrite(ledPin1, HIGH); delay(300); digitalWrite(ledPin2, HIGH); delay(300); digitalWrite(ledPin3, HIGH); delay(300); digitalWrite(ledPin4, HIGH); delay(300); digitalWrite(ledPin5, HIGH); delay(300); startCount(4);
}
if(!BP3state) { digitalWrite(ledPin1, HIGH); delay(300); digitalWrite(ledPin2, HIGH); delay(300); digitalWrite(ledPin3, HIGH); delay(300); digitalWrite(ledPin4, HIGH); delay(300); digitalWrite(ledPin5, HIGH); delay(300); startCount(3); }
}
Support
Après avoir vectoriser l'image de notre choix sur le logiciel InkScape, nous avons ajouter des emplacements pour les LEDs et les boutons poussoirs. Ci-dessous, le fichier SVG final compatible avec l'utilisation de la découpeuse laser :
Voici ce que nous avons obtenu après passage à la découpeuse laser :
Nous n'avions cependant pas encore ajouter les lignes pour les trous, ce qui explique que le support soit "plein". À cause de cette erreur, et comme nous n'avons pas réussi à replacer parfaitement la plaque dans l'imprimante, les trous ont finalement été légèrement décalés.