Ceci est une ancienne révision du document !
Porteurs du projet: Christian Simon (christian.simon@upmc.fr), Tristan Briant, Alexandre Lasmartres (lasmartres.alexandre@hotmail.fr).
Ce projet à été développé dans le cadre de la journée Prof en fac organisée à l'UPMC en avril 2017.
Il s'agissait de développer en spectrophotomètre visible peu onéreux et pédagogique contrôlé par Arduino.
Pour plus d'information sur le développement du projet : Préparation atelier "Prof en fac"
- imprimante 3D pour quelques pièces de support.
- découpeuse laser pour le boitier.
* Arduino * Breadboard * une LED blanche * un Phototransistor SHF 300 * Jumper M-M (x3) * Jumper M-F (x10) * Vis et écrous M3 (x8) * Vis et écrous M4 (x8 vis et x6 écrous) * Plaque de MDF 60x30x6mm (pour le boitier) * Pièces de support 3D (les fichiers arrivent bientôt):
* Moteur pas-à-pas 5V 28BYJ-48 * Driver ULN2003 * Cuve pour spectrophotomètre * Un vieux CD (qu'il faudra couper)
<accordion>
<panel title=“ 1. Préparation des pièces et montage du boitier ”>
Rien de bien compliqué, il suffit simplement d'imprimer les pièces (environ un certain temps) avec une imprimante 3D, inutile de mettre de support.
Il faut couper le CD de manière à avoir “un rectangle” (cf. photo), attention à avoir les deux “bord de coupe” parallèles et propres (un massicot peut aider).
Insérer photo
A l'aide d'une découpeuse laser, découper la plaque de MDF afin d'obtenir les pièces du boitier (environ 6min découpe+gravure).
Le montage se fait délicatement au maillet.
Assembler les deux pièces de support afin d'obtenir cette pièce, attention à mettre la fente du bon côté.
Insérer photo
Et les cinq pièces qui serviront de cache, attention à mettre la sortie pour l'Arduino du bon coté.
Insérer photo
</panel>
<panel title=“ 2. Le montage des éléments ”>
A venir
</panel>
<panel title=“ 3. Le câblage ”>
A venir
</panel>
<panel title=“ 4. La programmation ”>
Il ne vous reste plus qu'à téléverser ce code dans votre Arduino.
const int M1=2; const int M2=3; const int M3=4; const int M4=5; const int LED=13; int resolution = 2; int NPAS=80; int timeDelay=10; float angle; int pos=0; void setup() { Serial.begin(115200); pinMode(M1,OUTPUT); pinMode(M2,OUTPUT); pinMode(M3,OUTPUT); pinMode(M4,OUTPUT); pinMode(LED,OUTPUT); angle=0; tourne(1000); tourne(-650); } void loop() { for(int i=0;i<NPAS;i++){ tourne(resolution); angle+=resolution * 2*PI / 64; digitalWrite(LED,HIGH); delay(100); int value = analogRead(A0); delay(30); //value=512-value; Serial.print(angle); Serial.print(" "); Serial.println(value); } tourne(-NPAS*resolution); angle=0; delay(1000); Serial.println("Restart"); } void tourne(int n){ // tourne de n séquences for(int i=0; i<abs(n);i++){ if (n>0){pos++; if (pos>7) pos=0;} if (n<0) {pos--; if (pos<0) pos=7;} if(pos==0) {digitalWrite(M1,HIGH);digitalWrite(M2,LOW);digitalWrite(M3,LOW);digitalWrite(M4,LOW);} if(pos==1) {digitalWrite(M1,HIGH);digitalWrite(M2,HIGH);digitalWrite(M3,LOW);digitalWrite(M4,LOW);} if(pos==2) {digitalWrite(M1,LOW);digitalWrite(M2,HIGH);digitalWrite(M3,LOW);digitalWrite(M4,LOW);} if(pos==3) {digitalWrite(M1,LOW);digitalWrite(M2,HIGH);digitalWrite(M3,HIGH);digitalWrite(M4,LOW);} if(pos==4) {digitalWrite(M1,LOW);digitalWrite(M2,LOW);digitalWrite(M3,HIGH);digitalWrite(M4,LOW);} if(pos==5) {digitalWrite(M1,LOW);digitalWrite(M2,LOW);digitalWrite(M3,HIGH);digitalWrite(M4,HIGH);} if(pos==6) {digitalWrite(M1,LOW);digitalWrite(M2,LOW);digitalWrite(M3,LOW);digitalWrite(M4,HIGH);} if(pos==7) {digitalWrite(M1,HIGH);digitalWrite(M2,LOW);digitalWrite(M3,LOW);digitalWrite(M4,HIGH);} delay(timeDelay); } //digitalWrite(M1,LOW);digitalWrite(M2,LOW);digitalWrite(M3,LOW);digitalWrite(M4,LOW); }
</panel> </accordion>
A venir