DCA (discuter | contributions) (Page créée avec « {{avertissement}} {{vidéo|numérovidéo = <videoflash type="mediaspip" num = 1>entrer ici l'URL de la vidéo en flash sur http://mediaspip.ptitdeb.infini.fr|400|300</videofl… ») |
(→Catégories) |
||
Ligne 353 : | Ligne 353 : | ||
=='''Catégories'''== | =='''Catégories'''== | ||
- | |||
- | |||
[[Catégorie:à classer]] | [[Catégorie:à classer]] | ||
[[Catégorie:Vidéo à réaliser]] | [[Catégorie:Vidéo à réaliser]] | ||
Ligne 361 : | Ligne 359 : | ||
[[Catégorie:Fiche à Valider]] | [[Catégorie:Fiche à Valider]] | ||
[[Catégorie:expérience]] | [[Catégorie:expérience]] | ||
+ | [[Catégorie:arduino]] | ||
+ | [[Catégorie:électroique]] | ||
+ | [[Catégorie:informatique]] | ||
+ | [[Catégorie:technique]] |
Sommaire |
Marre de rater vos pâtes ? Fondante au lieu d'être "Al Dente" ? Atteignez la perfection grâce à ce magnifique minuteur Arduino UNO à afficheur 7-segments ! Il s'adapte à toute les échelles temporelles. Envie de faire une sieste ? Changez la base de temps, réglez-le et dormez. Il vous réveillera de sa douce mélodie...stridente.
- Un ordinateur avec le logiciel Arduino
- Un câble USB_A USB_B
Fichier:Resistances.jpg- 7 résistances
Fichier:Afficheur.jpg- 1 Afficheur 7-Segments
- Une plaque pour câbler
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int seg1 = 13; int seg2 = 12; int seg3 = 11; int seg4 = 10; int seg5 = 9; int seg6 = 8; int seg7 = 7; int Buzzer = 6; int moins = 5; int choix = 4; int launch= 3; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(seg1, OUTPUT); pinMode(seg2, OUTPUT); pinMode(seg3, OUTPUT); pinMode(seg4, OUTPUT); pinMode(seg5, OUTPUT); pinMode(seg6, OUTPUT); pinMode(seg7, OUTPUT); pinMode(Buzzer, OUTPUT); pinMode(moins, OUTPUT); pinMode(choix, INPUT); pinMode(launch, INPUT); } // the loop routine runs over and over again forever: void loop(){ int incr = 0; int temps = 0; int decr = 0; int aff = 0; int lancer = 0; int seconde = 1000; int minute = 60000; int heure = 3600000; while(lancer == 0){ noTone(Buzzer); incr = digitalRead(choix); if (incr == HIGH) temps++; if (temps > 9) temps = 0; if (temps == 0){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, HIGH); digitalWrite(seg7, LOW); } if (temps == 1){ digitalWrite(seg1, LOW); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, LOW); digitalWrite(seg5, LOW); digitalWrite(seg6, LOW); digitalWrite(seg7, LOW); } if (temps == 2){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, LOW); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, LOW); digitalWrite(seg7, HIGH); } if (temps == 3){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, LOW); digitalWrite(seg6, LOW); digitalWrite(seg7, HIGH); } if (temps == 4){ digitalWrite(seg1, LOW); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, LOW); digitalWrite(seg5, LOW); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (temps == 5){ digitalWrite(seg1, HIGH); digitalWrite(seg2, LOW); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, LOW); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (temps == 6){ digitalWrite(seg1, HIGH); digitalWrite(seg2, LOW); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (temps == 7){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, LOW); digitalWrite(seg5, LOW); digitalWrite(seg6, LOW); digitalWrite(seg7, LOW); } if (temps == 8){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (temps == 9){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, LOW); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } lancer = digitalRead(launch); if (lancer == HIGH) lancer = 1; delay(1000); } if (lancer == 1){ aff = temps; temps = temps * seconde; } while((lancer == 1) && (temps != 0)){ temps = temps - seconde; decr += 1; if (decr == (seconde/1000)){ aff -= 1; decr =0; delay(500); tone(Buzzer, 2000); delay(500); noTone(Buzzer); } else{ delay(1000); } if (aff == 1){ digitalWrite(seg1, LOW); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, LOW); digitalWrite(seg5, LOW); digitalWrite(seg6, LOW); digitalWrite(seg7, LOW); } if (aff == 2){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, LOW); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, LOW); digitalWrite(seg7, HIGH); } if (aff == 3){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, LOW); digitalWrite(seg6, LOW); digitalWrite(seg7, HIGH); } if (aff == 4){ digitalWrite(seg1, LOW); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, LOW); digitalWrite(seg5, LOW); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (aff == 5){ digitalWrite(seg1, HIGH); digitalWrite(seg2, LOW); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, LOW); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (aff == 6){ digitalWrite(seg1, HIGH); digitalWrite(seg2, LOW); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (aff == 7){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, LOW); digitalWrite(seg5, LOW); digitalWrite(seg6, LOW); digitalWrite(seg7, LOW); } if (aff == 8){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } if (aff == 9){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, LOW); digitalWrite(seg6, HIGH); digitalWrite(seg7, HIGH); } } while((lancer == 1)&&(temps == 0)){ digitalWrite(seg1, HIGH); digitalWrite(seg2, HIGH); digitalWrite(seg3, HIGH); digitalWrite(seg4, HIGH); digitalWrite(seg5, HIGH); digitalWrite(seg6, HIGH); digitalWrite(seg7, LOW); noTone(Buzzer); tone(Buzzer, 3500); incr = digitalRead(choix); if (incr == HIGH) lancer = 0; } }
1/ Brancher l'Arduino à l'ordinateur à l'aide du câble USB.
2/ 0uvrir le code du Coffre avec le logiciel Arduino.
3/ Téléverser le code dans l'Arduino.
4/ Régler le temps à l'aide du bouton poussoir correspondant.
5/ Lancer le compte à rebours à l'aide du bouton poussoir restant.
6/ Une fois le 0 atteint, appuyez sur le premier bouton poussoir pour repasser au réglage du temps.
Le temps est réglable et à chaque décrémentation d'unité de temps (seconde, minute ou heure) engendre un "Bip" sonore. Lorsque le compteur atteint 0, un "Bip" continu est alors généré jusqu'à l'appui sur le bouton de comptage.
Lors de l'appui sur le bon bouton poussoir, l'arduino reçoit un signal sur une de ses entrées ce qui augmente le compte à rebours du minuteur. Lors de l'appui sur l'autre bouton poussoir, le signal reçu donne l'ordre à l'arduino de lancer ce compte à rebour. A chaque unité de temps, le buzzer reçoit une fréquence pendant une demi seconde ce qui génère un "bip" sonore. Lors de l'arrivée à 0 du minuteur, une frequence différente est envoyée au buzzer jusqu'à l'appui sur le 1er bouton poussoir. Après cet appui, le minuteur peut de nouveau être réglé puis relancé.
Peut on changer la base de temps sans modifier le code?
On a utilisé un buzzer dans cette expérience? mais quelles sont les différentes sortes de buzzer
Indiquer ici les expériences de Wikidébrouillard.
Autres expériences avec le même concept, recherche sur internet (indiquer les liens).
Cuisson, départ de course, reveil.
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique