Outils pour utilisateurs

Outils du site


wiki:projets:titrimetre:code
/*
  Utilisation d’une photo-résistance
  */
int ledPIN = 13;
int port = A0;   
int valeur = 0; 
float vin = 0;
 
void setup()
{
  Serial.begin(9600);
}
 
void loop()
{
  // Lit l’entrée analogique A0
  valeur = analogRead(port);   
  // convertit l’entrée en volt
  vin = (valeur * 5.0) / 1024.0;
  Serial.println(vin);
  // Délai entre chaque prise d'information
  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, HIGH);
  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 <AccelStepper.h>
#include <AFMotor.h>
AF_Stepper motor1(200, 1);
 int X = 0;
void setup()
{  
   pinMode(13,OUTPUT);
   Serial.begin(9600);           // set up Serial library at 9600 bps
   Serial.println("Stepper test!");
   motor1.setSpeed(400);
 
 
}
void loop()
{  
  if (X < 400)
{
  motor1.step(5,FORWARD,DOUBLE);
  X = X + 1;
} 
    else
    {
      digitalWrite(13,HIGH);
      delay(500);
      digitalWrite(13,LOW);
      delay(500);
      digitalWrite(13,HIGH);
      delay(500);
      digitalWrite(13,LOW);
      delay(1000);
      X = 0;
 
#code provenant de Royce
    }
}



2

#include <Stepper.h>
 
//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); //30 tours par minute
    //(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 <Stepper.h>
//--- 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,3,5,6,9);         // MEGA et UNO
//Stepper monMoteur2(nbrDePasParTour,10,11,12,13);     // MEGA uniquement
//----- 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/minutes
        // 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/minutes
  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
     monMoteur1.step(500);  
 
     //-- Faisons tourner le même moteur sur un tour dans l’autre sens
     monMoteur1.step(-500);  
 
     //-- 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
 
       monMoteur1.step(1);      // On fait tourner le moteur droit d’1 cran
       // Ne fonctionne que sur MEGA
       //monMoteur2.step(1);      // On fait tourner le moteur gauche d’1 cran
 
     }
 
     //-- Pour changer la vitesse en cours de route, on peut écrire :
     monMoteur1.setSpeed(4);// Vitesses possibles de 0.01 à 9.90 
 
     //-- 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);     // On fait tourner le moteur droit d’1 cran
       // Ne fonctionne que sur MEGA
       //monMoteur2.step(-1);// On fait tourner le moteur gauche d’1 cran
 
     }
    //-- Pour changer la vitesse en cours de route, on peut écrire :
    monMoteur1.setSpeed(7);// Vitesses possibles de 0.01 à 9.90 
 
    //-- 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);     // On fait tourner le moteur droit d’1 cran
      // Ne fonctionne que sur MEGA
     // monMoteur2.step(-1);// On fait tourner le moteur gauche d’1 cran
 
    }
 
}

LE GRAAL! (programme d'un moteur pas à pas em257 +schéma d'un circuit avec 2moteurs) http://figleymigley.livejournal.com/12568.html
http://www.instructables.com/id/Arduino-Motor-Shield-Tutorial/?ALLSTEPS

wiki/projets/titrimetre/code.txt · Dernière modification: 2020/10/05 16:39 (modification externe)