Séquenceur de solénoïdes
De Centre de Ressources Numériques - Labomedia
Révision de 10 décembre 2014 à 14:53 par Mushussu (discussion | contributions)
Sommaire
Description du projet
Réaliser un séquenceur basique à base de solénoïdes.
Matériel utilisé
- Ordinateur avec Arduino installé
- Carte Arduino
- Câble USB
- Platine d'essai
- 3 solénoÏdes
Montage
Script Arduino
// chaine de 3 sequences rythmiques pour 3 solenoides
const int ledPin = 13; // Numéro du port pour la LED
const int soleno1 = 9;
const int soleno2 = 8;
const int soleno3 = 7;
int tempo = 100;
int pas = 0;
int maxpas = 16;
int sol1[] [16]= {
{ 1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 }, // partition du solenoide 1 sequ 1
{ 1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0 }, // partition du solenoide 1 sequ 2
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1 } // partition du solenoide 1 sequ 3
};
int sol2[][16] = {
{ 0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 }, // partition du solenoide 2 sequ 1
{ 0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0 }, // partition du solenoide 2 sequ 2
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1 } // partition du solenoide 2 sequ 3
};
int sol3[] [16]= {
{ 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0 }, // partition du solenoide 3 sequ 1
{ 0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,0 }, // partition du solenoide 3 sequ 2
{ 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1 } // partition du solenoide 3 sequ 3
};
int seq = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(soleno1, OUTPUT);
pinMode(soleno2, OUTPUT);
pinMode(soleno3, OUTPUT);
}
void loop(){
// chainage des sequences
// numéro de séquence et nombre de répétitions de chaque séquence
sequence(0, 2);
sequence(1, 3);
sequence(2, 5);
// delay (5000);
while(1); // tant que 1 = 1 boucle infinie = arreter à la fin
}
void sequence(int numseq, int repet) { // numéro de séquence et nombre de répétitions de chaque séquence
for (int i = 0; i < repet; i++) {
for(pas = 0; pas < maxpas; pas++) {
if (sol1[numseq][pas] == 1) {
digitalWrite(soleno1, HIGH);
}
if (sol2[numseq][pas] == 1) {
digitalWrite(soleno2, HIGH);
}
if (sol3[numseq][pas] == 1) {
digitalWrite(soleno3, HIGH);
}
delay(50);
digitalWrite(soleno1, LOW);
digitalWrite(soleno2, LOW);
digitalWrite(soleno3, LOW);
digitalWrite(ledPin, HIGH);
delay (tempo/2);
digitalWrite(ledPin, LOW);
delay (tempo/2);
}
}
}
Réalisation
Un projet conçu et réalisé par Cécile Babiole avec l'aide de Sylvain Blocquaux + Open atelier Labomedia
Liens externes
- Solénoïdes (en) : http://www.sparkfun.com/products/10391
- Arduino (en) : Site officiel
- Schéma (en) : http://arduino.cc/playground/uploads/Learning/solenoid_driver.pdf