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