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()
// {
// }
//###################################################################################################################################
