Le réveil mobile : Différence entre versions
(→Membres de l'équipe) |
|||
Ligne 3 : | Ligne 3 : | ||
==Membres de l'équipe== | ==Membres de l'équipe== | ||
− | + | * Nogues Quentin | |
− | + | * Ojeda Andrea | |
− | + | * Palanché Thibaut | |
==Matériel== | ==Matériel== |
Version du 23 janvier 2019 à 10:37
Le projet
Le but de ce projet est de réaliser un réveil qui se déplace pour éviter que vous l'éteignez afin de vous forcez à vous lever.
Membres de l'équipe
- Nogues Quentin
- Ojeda Andrea
- Palanché Thibaut
Matériel
Capteur:
- 3 Capteur ultrason
- 1 Capteur infrarouge
- 1 Bouton poussoir
Moteur:
- 1 Moteur CC
- 1 Servo moteur
Alimentation:
- 1 Pile 9V
Carte de contrôle:
- 1 Arduino
- 1 Carte de contrôle du moteur CC
Câblage
Code
//################################################################################################################################### //Calcul de distance du capteur à ultrason float Calc_distance_US() ; void Impulsion () ; float Recup_Temps (float temps, const unsigned long MEASURE_TIMEOUT) ; float Calc_Distance (float temps ,const float vitesse_son, float distance) ; //################################################################################################################################### //servo #include <Servo.h> Servo myservo; //################################################################################################################################### //Moteur void Moteur () ; //################################################################################################################################### // ################################################################################################################################### //Affichage de l'heure #include "LedControl.h" LedControl lc=LedControl(7,13,12,2); // Pins: DIN,CLK,CS, # of Display connected unsigned long delayTime=200; // Delay between Frames // Put values in arrays byte invader1a[] = { B00011000, // First frame of invader #1 B00111100, B01111110, B11011011, B11111111, B00100100, B01011010, B10100101 }; byte invader1b[] = { B00011000, // Second frame of invader #1 B00111100, B01111110, B11011011, B11111111, B00100100, B01011010, B01000010 }; byte invader2a[] = { B00100100, // First frame of invader #2 B00100100, B01111110, B11011011, B11111111, B11111111, B10100101, B00100100 }; byte invader2b[] = { B00100100, // Second frame of invader #2 B10100101, B11111111, B11011011, B11111111, B01111110, B00100100, B01000010 }; //#######################SETUP################# void setup() { // put your setup code here, to run once: //################################################################################################################################### //Calcul de distance du capteur à ultrason #define V2 2 //A renommer #define V3 3 //A renomme //### ################################################################################################################################ //Moteur //################################################################################################################################### //Servo Serial.begin(9600); myservo.attach(6); //################################################################################################################################### //Affichage de l'heure lc.shutdown(0,false); // Wake up displays lc.shutdown(1,false); lc.setIntensity(0,5); // Set intensity levels lc.setIntensity(1,5); lc.clearDisplay(0); // Clear Displays lc.clearDisplay(1); //################################################################################################################################### } // Take values in Arrays and Display them void sinvader1a() { for (int i = 0; i < 8; i++) { lc.setRow(0,i,invader1a[i]); } } void sinvader1b() { for (int i = 0; i < 8; i++) { lc.setRow(0,i,invader1b[i]); } } void sinvader2a() { for (int i = 0; i < 8; i++) { lc.setRow(1,i,invader2a[i]); } } void sinvader2b() { for (int i = 0; i < 8; i++) { lc.setRow(1,i,invader2b[i]); } } //###########################LOOP########################### void loop() { // Put #1 frame on both Display sinvader1a(); delay(delayTime); sinvader2a(); delay(delayTime); // Put #2 frame on both Display sinvader1b(); delay(delayTime); sinvader2b(); delay(delayTime); float distance_US = 0 ; // Affiche_Heure() ; distance_US = Calc_distance_US() ; if (distance_US <= 50) { Moteur() ; } int value=analogRead(A0); Serial.println(value); if(value<600){ myservo.write(40); } else{ myservo.write(90); } delay(10); } //void Affiche_Heure() ; //################################################################################################################################## //################################################################################################################################### //Calcul de distance du capteur à ultrason float Calc_distance_US() { float distance = 0 ; const float vitesse_son = 340.0 / 1000; float temps = 0 ; const unsigned long MEASURE_TIMEOUT = 25000UL; // 25 ms = ~8m à 340 m/s Impulsion() ; temps = Recup_Temps(temps, MEASURE_TIMEOUT) ; distance = Calc_Distance(temps, vitesse_son, distance) ; Serial.print("Distance : " ) ; Serial.println (distance) ; return distance ; } void Impulsion () { digitalWrite (V3, HIGH) ; delayMicroseconds (10) ; //Capteur ultrason envoie une impulsion de 10µs digitalWrite (V3, LOW) ; } float Recup_Temps (float temps, const unsigned long MEASURE_TIMEOUT) { temps = pulseIn (V2, HIGH, MEASURE_TIMEOUT) ; return temps ; } float Calc_Distance (float temps ,const float vitesse_son, float distance) { distance = (temps/2)*vitesse_son ; return distance ; } //################################################################################################################################### //################################################################################################################################### //Moteur void Moteur() { Cerveau_moteur() ; } void Cerveau_moteur() { } //################################################################################################################################### //################################################################################################################################### //Affichage de l'heure //void Affiche_Heure() // { // } //###################################################################################################################################