Présentation générale:
Le but de notre projet est de faire tourner une silhouette autour d’un axe. Celle-ci se met à tourner grâce à un moteur à courant continu, une fois mise en rotation la silhouette reproduit visuellement un objet (un verre) en volume de symétrie polaire. La silhouette est mise en rotation au moyen d’un capteur de luminosité : une photodiode. Moins la photodiode recevra de luminosité plus le verre se mettra à tourner rapidement.
Lien d’information du driver du moteur :
Voici l’ensemble des codes ayant permis d’élaborer le système
//code de la photodiode
const int analogInPin = A0;
const int analogOutPin = 9;
// Valeur lue sur la photorésistance
int sensorValue = 0;
// Valeur envoyée à la LED
int outputValue = 0;
void setup() {
Serial.begin(9600);
pinMode(analogOutPin, OUTPUT);
pinMode(analogInPin, INPUT);
}
void loop() {
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 0, 255);
analogWrite(analogOutPin, outputValue);
// envoie tout ça vers l’ordinateur
Serial.print(« sensor = » );
Serial.print(sensorValue);
Serial.print(« \t output = « );
Serial.println(outputValue);
}
//code pour faire fonctionner notre système
const int LumCapteur = A0;
const int PWM = 9;
const int PH = 8;
int sp = 10;
// Valeur lue sur la photorésistance
int sensorValue = 0;
// Valeur envoyée au moteur
int outputValue = 0;
void setup() {
Serial.begin(9600);
pinMode(PWM, OUTPUT);
pinMode(PH, OUTPUT);
pinMode(LumCapteur, INPUT);
//FORWARD
digitalWrite(PH, LOW);
}
void loop() {
sensorValue = analogRead(LumCapteur);
outputValue = map(sensorValue, 0, 1023, 200, 0);
analogWrite(PWM, outputValue);
// envoie tout ça vers l’ordinateur
Serial.print(« sensor = » );
Serial.print(sensorValue);
Serial.print(« \t output = « );
Serial.println(outputValue);
}
//Programme de support permettant de faire accélérer et de faire décélérer le moteur
const int PWM = 9;
const int PH = 8;
int sp = 10;
void setup() {
pinMode(PWM, OUTPUT);
pinMode(PH, OUTPUT);
//FORWARD
digitalWrite(PH, LOW);
}
void loop(){
//ACCEL
for(int i=0; i<255; i++){
analogWrite(PWM, i);
delay(sp);
}
delay(500);
//DECEL
for(int i=255; i>0; i–){
analogWrite(PWM, i);
delay(sp);
}
delay(500);
}