Pour éviter d'avoir un journal de bord trop long, nous mettrons tout nos tests ici
Nous voulons tester les variations de tension en fonction de l'intensité lumineuse d'un laser.
Pour cela nous disposons de:
Voici le programme:
Nous éclairons notre photorésistance avec notre laser et le faisons bouger sur sur la tête de détection pour voir si la photorésistance détecte des variations.
Voici les photos de notre montage et le signal que nous récupérons:
On voit donc que la photorésistance capte des très faibles variations, mais qui sont quand même visibles. Nous pensons donc que notre système de détection fonctionnera.
Nous voulons tester les variations de tension en fonction de l'intensité lumineuse d'un laser. Je (Théo) viens donc au fablab faire des tests.
Pour cela je dispose de:
Voici le programme :
Le montage:
La photodiode détecte bien le laser et renvoie environ 120 et passe à 60 dès qu'on ne l'éclaire plus (avec une résistance de 1khoms). Je décide donc d'augmenter la résistance pour que mes valeurs de lecture soient plus élevées (en effet la carte Arduino renvoie des valeurs de 0 à 1023 sur l'entrée analogique (de 0 à 5V)). J'augmente donc ma résistance x10 et (10kohm) et refait l'acquisition des valeurs. Mais mes valeurs restent les mêmes (autour de 60 pas allumer et autour de 120 laser allumé). Je décide donc de me faire aider, et on m'explique que plus on monte la résistance plus la différence d'ordre de grandeur entre la résistance (10^3) et le courant (10^-5A) est grande plus la variation de tension sera faible (pas détectable). On me guide donc vers quelqu'un qui s'est servi d'une photodiode dans un projet pour détecter des micro particule (Nicolas Gerard) qui me conseille d'utiliser un ampli pour amplifier le signal. Il me montre donc son circuit (voir photo ci-dessous). Le problème est que son ampli marche en -5/+5 V or la carte Arduino ne fournis que du +5V il faut donc un générateur a part. Je ferai donc des recherches pour un ampli qui serait facile a piloter avec arduino et qui amplifierai le signal de la tension renvoyée par la résistance. On me conseille également, une fois le circuit fait (avec l'ampli) de mettre un potentiomètre à la place d'une résistance basique, pour voir à quelles valeurs de résistance les petites variations de tension sont les plus détectables.
Pour que notre châssis avance comme l'a dit Tristan dans sa partie motorisation, nous nous servons d'un moteur pas-à-pas, puisqu'il faut que notre châssis avance très lentement.
Je (Théo) viens donc essayer de piloter le moteur pour cela je dispose:
Je m’appuie principalement sur cette page pour les branchements Arduino motor Shield.
Ne trouvant pas de tutoriel vraiment bien détaillé pour l'instant je copie et colle simplement le programme de la page dans Arduino et le téléverse, résultat le moteur tourne très doucement comme on le veut!! J'essayerai de comprendre le programme bien comme il faut plus tard. Le plus important c'est que nous arrivons a faire tourner notre moteur à une faible vitesse comme nous voulons.
Je garde aussi en tête qu'il existe la librairie stepper (sur Arduino), qui permet de contrôler des moteurs pas en pas. Je me renseignerai plus précisément sur ce point la semaine prochaine.
Voici les branchements:
La photo et les résultats:
Je veux augmenter la précision de mon signal, en me renseignant je trouve qu'il faut utiliser un ampli AOP , le problème est qu'il est difficile de comprendre comment ça marche et comment le brancher pour quelqu'un qui n'a aucune connaissance en électronique. Je me renseigne donc plus précisément et je trouve qu'on peut changer la valeur analogique de référence de la carte Arduino. En effet comme je l'ai dit précisément la carte renvoie des valeurs de 0 à 1023 pour des tension de 0 à 5V. Or en mesurant avec un voltmètre on trouve que pour une résistance de 100kohms on n'a qu'une tension de 0,5V une fois la photodiode éclairée. Je change donc la valeur analogique de référence avec la fonction analogReference(INTERNAL); qui se base maintenant sur une plage de 0 à 1,1V. En refaisant les tests on reçoit des valeurs beaucoup plus précises et on capte globalement un changement très distinct si on éclaire la photodiode avec 1/4, 1/2 ou la totalité du faisceau laser. Je ne remet pas les photos du montage et de nos tests puisque il s'agit des mêmes que ceux d'en haut, seul le programme change (ajout de analogReference(INTERNAL);).
Après avoir réaliser la “plaque de détection” je la test. Je branche donc le fils blanc à la masse (GND), et les fils rouge respectivement sur A0 et A1.
Voici le programme:
int valeur; void setup() {
Serial.begin(9600); pinMode(A0, INPUT); pinMode(A1, INPUT); analogReference(INTERNAL);
}
void loop() {
valeur = analogRead(A0) - analogRead(A1); Serial.println(valeur); delay(100);
}
Je branche également le laser. Résultat, les 2 photodiode sont a epu près identique, en effet la soustraction de valeurs sans éclairage donne a peu rpès 0. je ne peut cepend pas tester corectement les photodidodes puisque les tramblement de ma main provoque des grosse variation graphique (traceur serie) mais on voit que ce capteur sera précis.