Outils pour utilisateurs

Outils du site


wiki:projets:spectroduino

Ceci est une ancienne révision du document !


SPECTRO-ARDUINO

Porteurs du projet: Christian Simon (christian.simon@upmc.fr), Tristan Briant, Alexandre Lasmartres (lasmartres.alexandre@hotmail.fr).

Ce projet a é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"

Machines nécessaires

- imprimante 3D pour quelques pièces de support.

- découpeuse laser pour le boitier.

Matériels nécessaires

* Arduino * Breadboard * une LED blanche * un Phototransistor SFH 300 * Jumper M-M (x2) * 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:

* Moteur pas-à-pas 5V 28BYJ-48 * Driver ULN2003 * Cuve pour spectrophotomètre * Un vieux CD (qu'il faudra couper)

Construction

<accordion> <panel title=“ 1. Préparation des pièces et montage du boitier ”>

Les pièces imprimées en 3D:


Rien de bien compliqué, il suffit simplement d'imprimer les pièces avec une imprimante 3D, inutile de mettre de support, les pièces sont relativement “simples”.

Le "prisme"


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).

FIXME Insérer photo

Montage du boitier:


A l'aide d'une découpeuse laser, découper la plaque de MDF afin d'obtenir les pièces du boitier (environ 6 min 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é.

FIXME Insérer photo

Et les cinq pièces qui serviront de cache, attention à mettre la sortie pour l'Arduino du bon coté.

FIXME Insérer photo </panel> <panel title=“ 2. Le montage des éléments ”>

En premier, placer/visser sur le support: la breadbord, l'Arduino et le driver (vis M3) et les pièces imprimées en 3D (vis M4).

Puis le moteur, la cuve, le “prisme” et son support, la LED et le phototransistor.

FIXME Insérer photo </panel> <panel title=“ 3. Le câblage ”>

Commençons par le driver: brancher le moteur dessus, relier 1N1 au port Digital 2 de l'Arduino

FIXME Insérer photo </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>

Utilisation

FIXME A venir

wiki/projets/spectroduino.1511534755.txt.gz · Dernière modification: 2017/11/24 14:45 (modification externe)