ENIB 2020 : trouver la lumière : Différence entre versions
(→construction du prototype) |
(→photo de l'équipe) |
||
(13 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
==photo de l'équipe== | ==photo de l'équipe== | ||
− | [[Fichier: | + | [[Fichier:Groupe lumiere.jpg|400px]] |
==Que fait ce projet ? == | ==Que fait ce projet ? == | ||
Ligne 20 : | Ligne 20 : | ||
==construction du prototype== | ==construction du prototype== | ||
Nous avons donc commencer par réaliser une boite grâce à la découpeuse laser avec une encoche rectangulaire sur la face du haut pour placer le moteur ainsi qu'une encoche circulaire sur un coté pour placer le bouton. | Nous avons donc commencer par réaliser une boite grâce à la découpeuse laser avec une encoche rectangulaire sur la face du haut pour placer le moteur ainsi qu'une encoche circulaire sur un coté pour placer le bouton. | ||
− | [[Fichier: | + | |
+ | [[Fichier:M Boite.jpg|200px]] | ||
+ | |||
+ | Nous avons ensuite fabriqué le bras pour maintenir les photo-résistances | ||
+ | |||
+ | [[Fichier:M Axe.jpg|200px]] | ||
+ | |||
+ | On a ensuite isoler les 2 photo-résistances afin qu'elles puissent cibler précisément le soleil ou la source lumineuse dans notre cas. | ||
+ | |||
+ | [[Fichier:Haut 1.jpg|200px]] | ||
+ | |||
+ | Enfin nous avons assemblé le tout | ||
+ | |||
+ | [[Fichier:Entier 2.jpg|200px]] | ||
+ | |||
+ | ==schéma électronique== | ||
+ | |||
+ | câblage des photo-résistances | ||
+ | [[Fichier:Cablage ldr.jpg|200px]] | ||
+ | |||
+ | câblage du bouton | ||
+ | [[Fichier:Cablage btn vrai.png|200px]] | ||
+ | |||
+ | câblage du cervo moteur | ||
+ | [[Fichier:Cervo.jpeg|200px]] | ||
==Code== | ==Code== | ||
<pre> | <pre> | ||
− | + | #include <Servo.h> | |
+ | Servo myservo; | ||
+ | int ldrPin1 = A0; | ||
+ | int ldrValue1 = 0; //valeur de ldr 1 | ||
+ | int ldrPin2 = A1; //ldr 2 | ||
+ | int ldrValue2 = 0; //valeur de ldr 2 | ||
+ | int btn_pin = 8; //valeur par defaut du bouton | ||
+ | int delta =5; | ||
+ | int pos = 0; | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | myservo.attach(9); | ||
+ | pinMode(btn_pin,INPUT); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // read the value from the ldr: | ||
+ | ldrValue1 = analogRead(ldrPin1); | ||
+ | ldrValue2 = analogRead(ldrPin2); | ||
+ | |||
+ | // on lit une première fois les valeurs | ||
+ | int sub=ldrValue1-ldrValue2; | ||
+ | int buttonState = digitalRead(btn_pin); | ||
+ | Serial.println(buttonState); | ||
+ | if (buttonState == HIGH){ | ||
+ | if(sub<0){ | ||
+ | |||
+ | while((-delta>sub || sub>delta)&&(sub<0)){ | ||
+ | pos+=1; | ||
+ | myservo.write(pos); // tell servo to go to position in variable 'pos' | ||
+ | delay(20); | ||
+ | ldrValue1 = analogRead(ldrPin1); | ||
+ | ldrValue2 = analogRead(ldrPin2); | ||
+ | sub=ldrValue1-ldrValue2; | ||
+ | delay(15); | ||
+ | }} | ||
+ | else{ | ||
+ | while((-delta>sub || sub>delta)&&(sub>0)){ | ||
+ | pos-=1; | ||
+ | myservo.write(pos); // tell servo to go to position in variable 'pos' | ||
+ | delay(20); | ||
+ | ldrValue1 = analogRead(ldrPin1); | ||
+ | ldrValue2 = analogRead(ldrPin2); | ||
+ | sub=ldrValue1-ldrValue2; | ||
+ | delay(15); | ||
+ | } | ||
+ | }} | ||
+ | } | ||
+ | |||
</pre> | </pre> | ||
Version actuelle datée du 17 janvier 2020 à 14:26
Sommaire
photo de l'équipe
Que fait ce projet ?
Nous sommes un groupe de 4 étudiants en 3ème année à l'ENIB et pour notre inter-semestre nous réalisons un hackathon avec l'association des petits débrouillards. Nous avons donc choisi de réaliser une machine permettant de déterminer à partir d'un endroit précis le position du soleil. Ce système peut être utilisé avant de placer des panneaux solaires ou les fours solaire afin de pouvoir optimiser au mieux leur rendement. Pour cela nous allons utiliser des résistances photo sensible.
Liste des composants
- une carte Arduino
- 2 résistances de 15 kΩ
- un moteur pas à pas
- 2 photo résistances
- un bouton poussoir
- des câbles
- breadboard
- une boite pour servir de support au moteur
- un socle incliné pour poser les photo résistances
construction du prototype
Nous avons donc commencer par réaliser une boite grâce à la découpeuse laser avec une encoche rectangulaire sur la face du haut pour placer le moteur ainsi qu'une encoche circulaire sur un coté pour placer le bouton.
Nous avons ensuite fabriqué le bras pour maintenir les photo-résistances
On a ensuite isoler les 2 photo-résistances afin qu'elles puissent cibler précisément le soleil ou la source lumineuse dans notre cas.
Enfin nous avons assemblé le tout
schéma électronique
Code
#include <Servo.h> Servo myservo; int ldrPin1 = A0; int ldrValue1 = 0; //valeur de ldr 1 int ldrPin2 = A1; //ldr 2 int ldrValue2 = 0; //valeur de ldr 2 int btn_pin = 8; //valeur par defaut du bouton int delta =5; int pos = 0; void setup() { Serial.begin(9600); myservo.attach(9); pinMode(btn_pin,INPUT); } void loop() { // read the value from the ldr: ldrValue1 = analogRead(ldrPin1); ldrValue2 = analogRead(ldrPin2); // on lit une première fois les valeurs int sub=ldrValue1-ldrValue2; int buttonState = digitalRead(btn_pin); Serial.println(buttonState); if (buttonState == HIGH){ if(sub<0){ while((-delta>sub || sub>delta)&&(sub<0)){ pos+=1; myservo.write(pos); // tell servo to go to position in variable 'pos' delay(20); ldrValue1 = analogRead(ldrPin1); ldrValue2 = analogRead(ldrPin2); sub=ldrValue1-ldrValue2; delay(15); }} else{ while((-delta>sub || sub>delta)&&(sub>0)){ pos-=1; myservo.write(pos); // tell servo to go to position in variable 'pos' delay(20); ldrValue1 = analogRead(ldrPin1); ldrValue2 = analogRead(ldrPin2); sub=ldrValue1-ldrValue2; delay(15); } }} }