Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
wiki:projets:titrimetre:code [2015/02/13 19:56] mathieu |
wiki:projets:titrimetre:code [2020/10/05 14:39] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | < | + | <code=cpp> |
/* | /* | ||
Utilisation d’une photo-résistance | Utilisation d’une photo-résistance | ||
- | */ | + | |
int ledPIN = 13; | int ledPIN = 13; | ||
int port = A0; | int port = A0; | ||
Ligne 22: | Ligne 22: | ||
// Délai entre chaque prise d' | // Délai entre chaque prise d' | ||
delay(1000); | delay(1000); | ||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | **Code photodiode** | ||
+ | < | ||
+ | #define inPin0 0 | ||
+ | |||
+ | void setup(void) { | ||
+ | |||
+ | Serial.begin(9600); | ||
+ | Serial.println(); | ||
+ | pinMode(13, OUTPUT); | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop(void) { | ||
+ | float pVolt0 = 0.0; | ||
+ | //float essaie = pVolt0; | ||
+ | int pinRead0 = analogRead(inPin0); | ||
+ | pVolt0 = pinRead0 / 1024.0 * 5; | ||
+ | Serial.print(pVolt0); | ||
+ | Serial.println(); | ||
+ | digitalWrite(13, | ||
+ | delay(1000); | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | < | ||
+ | /* | ||
+ | ReadAnalogVoltage | ||
+ | Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor. | ||
+ | Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. | ||
+ | |||
+ | This example code is in the public domain. | ||
+ | */ | ||
+ | |||
+ | // the setup routine runs once when you press reset: | ||
+ | void setup() { | ||
+ | // initialize serial communication at 9600 bits per second: | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | // the loop routine runs over and over again forever: | ||
+ | void loop() { | ||
+ | // read the input on analog pin 0: | ||
+ | int sensorValue = analogRead(A0); | ||
+ | // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V): | ||
+ | float voltage = sensorValue * (5.0 / 1023.0); | ||
+ | // print out the value you read: | ||
+ | Serial.println(voltage); | ||
+ | delay(1000); | ||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | 1) | ||
+ | < | ||
+ | #include < | ||
+ | #include < | ||
+ | AF_Stepper motor1(200, 1); | ||
+ | int X = 0; | ||
+ | void setup() | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | } | ||
+ | void loop() | ||
+ | { | ||
+ | if (X < 400) | ||
+ | { | ||
+ | motor1.step(5, | ||
+ | X = X + 1; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | digitalWrite(13, | ||
+ | delay(500); | ||
+ | digitalWrite(13, | ||
+ | delay(500); | ||
+ | digitalWrite(13, | ||
+ | delay(500); | ||
+ | digitalWrite(13, | ||
+ | delay(1000); | ||
+ | X = 0; | ||
+ | | ||
+ | #code provenant de Royce | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | 2 | ||
+ | < | ||
+ | #include < | ||
+ | |||
+ | //pour un moteur de 200 pas par tour et brancher sur les broches 2, 3, 4, 5 | ||
+ | Stepper moteur(200, 2, 3, 4, 5); | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | moteur.setSpeed(30); | ||
+ | //(rappel : ici le moteur fait 200 pas par tour, on fera donc 6000 pas par minute) | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | moteur.step(1000); | ||
+ | delay(100); | ||
+ | moteur.step(-1000); | ||
+ | delay(2000); | ||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | \\ | ||
+ | 3 | ||
+ | < | ||
+ | #include < | ||
+ | //--- Nous utilisons 2 moteurs ayant 48*64 pas = 3072 pas par tour | ||
+ | // Créons une boîte pour contenir simplement cette valeur | ||
+ | int nbrDePasParTour = 48*64; | ||
+ | //--- Créons ensuite 2 objets virtuels représentant nos 2 moteurs | ||
+ | // Ces objets sont construits à l’aide d’un constructeur | ||
+ | // Ce constructeur veut tout savoir : | ||
+ | // Le nombre de pas par tour | ||
+ | // Tous les trous utilisés dans le bon ordre | ||
+ | // Voici ce que cela donne | ||
+ | Stepper monMoteur1(nbrDePasParTour, | ||
+ | //Stepper monMoteur2(nbrDePasParTour, | ||
+ | //----- On va créer ou utiliser une partie dite d’initialisation = setup ! | ||
+ | void setup() | ||
+ | { | ||
+ | //--- Il est préférable de définir une vitesse par défaut en tours/ | ||
+ | // La vitesse maximale est très faible car ce moteur est démultiplié | ||
+ | // La vitesse maximale est d’après nos tests de 9.9 tours/ | ||
+ | monMoteur1.setSpeed(20); | ||
| | ||
+ | } | ||
+ | |||
+ | //----- On va maintenant créer ou utiliser une partie dite boucle = loop | ||
+ | void loop() | ||
+ | { | ||
+ | |||
+ | //--- Maintenant, il faut définir le nombre de “crans” à imposer à l’axe | ||
+ | //-- Faisons tourner le moteur 1 de 500 crans | ||
+ | | ||
+ | |||
+ | //-- Faisons tourner le même moteur sur un tour dans l’autre sens | ||
+ | | ||
+ | |||
+ | //-- Faisons tourner les 2 moteurs en même temps | ||
+ | // Hélas, faire tourner un moteur bloque le programme | ||
+ | // On ne peut donc pas faire tourner les 2 en même temps(*1) | ||
+ | // Mais nous pouvons utiliser 1 astuce pour contourner ce problème | ||
+ | // Nous allons faire tourner les moteurs cran par cran | ||
+ | // Comme il y a beaucoup de crans, nous allons utiliser une boucle | ||
+ | |||
+ | for (int i=0; i<1000 ; i++){// Ceci sera répété 1000 fois | ||
+ | |||
+ | | ||
+ | // Ne fonctionne que sur MEGA | ||
+ | // | ||
+ | |||
+ | } | ||
+ | |||
+ | //-- Pour changer la vitesse en cours de route, on peut écrire : | ||
+ | | ||
+ | |||
+ | //-- Faisons tourner les 2 moteurs en même temps dans l’autre sens | ||
+ | for (int i=0; i<1000 ; i++){// Ceci sera répété 1000 fois | ||
+ | |||
+ | | ||
+ | // Ne fonctionne que sur MEGA | ||
+ | // | ||
+ | |||
+ | } | ||
+ | //-- Pour changer la vitesse en cours de route, on peut écrire : | ||
+ | monMoteur1.setSpeed(7);// | ||
+ | |||
+ | //-- Faisons tourner les 2 moteurs en même temps dans l’autre sens | ||
+ | for (int i=0; i<1000 ; i++){// Ceci sera répété 1000 fois | ||
+ | |||
+ | monMoteur1.step(-1); | ||
+ | // Ne fonctionne que sur MEGA | ||
+ | // monMoteur2.step(-1);// | ||
+ | |||
+ | } | ||
+ | |||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | LE GRAAL! (programme d'un moteur pas à pas em257 +schéma d'un circuit avec 2moteurs) | ||
+ | http:// | ||
+ | \\ | ||
+ | http:// | ||
+ |