Révolution et électronique

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 :

https://www.pololu.com/product/2990?fbclid=IwAR3dPNwqwmYHvyH8uwnTvYTjnCwKyQRTmzbvILDX5rel3JCpW0qR6UX_064

Montage
Schéma du montage

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);
}