Voila, je viens de finir le code, je suis pourtant sur qu'il ne vas pas marcher ( comme d'habitude^^ ).
Voila donc le code en question, attention trés trés long car je ne maitrise pas les fonctions permettant de rendre les choses plus compacts.
//declare variables for the motor pins
#include <Stepper.h>
#define trigPinD 1
#define echoPinD 2
#define trigPinG 3
#define echoPinG 4
int motorPin1D = 5; // Blue - 28BYJ48 pin 1
int motorPin2D = 6; // Pink - 28BYJ48 pin 2
int motorPin3D = 7; // Yellow - 28BYJ48 pin 3
int motorPin4D = 8;
int motorPin1G = 9; // Blue - 28BYJ48 pin 1
int motorPin2G = 10; // Pink - 28BYJ48 pin 2
int motorPin3G = 11; // Yellow - 28BYJ48 pin 3
int motorPin4G = 12; // Orange - 28BYJ48 pin 4
// Red - 28BYJ48 pin 5 (VCC)
int motorSpeed = 0; //variable to set stepper speed
//////////////////////////////////////////////////////////////////////////////
void setup() {
//declare the motor pins as outputs
pinMode(trigPinD, OUTPUT);
pinMode(echoPinD, INPUT);
pinMode(trigPinG, OUTPUT);
pinMode(echoPinG, INPUT);
pinMode(motorPin1D, OUTPUT);
pinMode(motorPin2D, OUTPUT);
pinMode(motorPin3D, OUTPUT);
pinMode(motorPin4D, OUTPUT);
pinMode(motorPin1G, OUTPUT);
pinMode(motorPin2G, OUTPUT);
pinMode(motorPin3G, OUTPUT);
pinMode(motorPin4G, OUTPUT);
Serial.begin(9600);
}
//////////////////////////////////////////////////////////////////////////////
void loop(){
int durationD, distanceD;
digitalWrite(trigPinD, LOW);
delayMicroseconds(2);
digitalWrite(trigPinD, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinD, LOW);
durationD = pulseIn(echoPinD, HIGH);
distanceD = (durationD/2) / 29.1;
Serial.print(distanceD);
Serial.println("cm");
int durationG, distanceG;
digitalWrite(trigPinG, LOW);
delayMicroseconds(2);
digitalWrite(trigPinG, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinG, LOW);
durationG = pulseIn(echoPinG, HIGH);
distanceG = (durationG/2) / 29.1;
Serial.print(distanceG);
Serial.println("cm");
if( distanceD < 10 ){
tournerdroite();
}
else if( distanceG < 10){
tournergauche();
}
else{
toutdroit();
}
}
//////////////////////////////////////////////////////////////////////////////
//set pins to ULN2003 high in sequence from 1 to 4
//delay "motorSpeed" between each pin setting (to determine speed)
void tournerdroite(){
// 1
digitalWrite(motorPin1D, HIGH);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin1D, HIGH);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, LOW);
delay (motorSpeed);
// 3
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin4D, HIGH);
delay (motorSpeed);
// 7
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin1D, HIGH);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, HIGH);
delay(motorSpeed);
digitalWrite(motorPin4G, HIGH);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin1G, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin4G, HIGH);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin1G, LOW);
delay (motorSpeed);
// 3
digitalWrite(motorPin4G, LOW);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin1G, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin4G, LOW);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin1G, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin4G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin1G, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin4G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin1G, HIGH);
delay (motorSpeed);
// 7
digitalWrite(motorPin4G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin1G, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin4G, HIGH);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin1G, HIGH);
delay(motorSpeed);
}
//////////////////////////////////////////////////////////////////////////////
//set pins to ULN2003 high in sequence from 4 to 1
//delay "motorSpeed" between each pin setting (to determine speed)
void tournergauche(){
// 1
digitalWrite(motorPin1G, HIGH);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin1G, HIGH);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, LOW);
delay (motorSpeed);
// 3
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin4G, HIGH);
delay (motorSpeed);
// 7
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin1G, HIGH);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, HIGH);
delay(motorSpeed);
digitalWrite(motorPin4D, HIGH);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin1D, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin4D, HIGH);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin1D, LOW);
delay (motorSpeed);
// 3
digitalWrite(motorPin4D, LOW);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin1D, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin4D, LOW);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin1D, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin4D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin1D, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin4D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin1D, HIGH);
delay (motorSpeed);
// 7
digitalWrite(motorPin4D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin1D, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin4D, HIGH);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin1D, HIGH);
delay(motorSpeed);
}
void toutdroit(){
digitalWrite(motorPin1D, HIGH);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin1D, HIGH);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, LOW);
delay (motorSpeed);
// 3
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, HIGH);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin4D, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, HIGH);
digitalWrite(motorPin4D, HIGH);
delay (motorSpeed);
// 7
digitalWrite(motorPin1D, LOW);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin1D, HIGH);
digitalWrite(motorPin2D, LOW);
digitalWrite(motorPin3D, LOW);
digitalWrite(motorPin4D, HIGH);
delay(motorSpeed);
digitalWrite(motorPin1G, HIGH);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin1G, HIGH);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, LOW);
delay (motorSpeed);
// 3
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, HIGH);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin4G, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, HIGH);
digitalWrite(motorPin4G, HIGH);
delay (motorSpeed);
// 7
digitalWrite(motorPin1G, LOW);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin1G, HIGH);
digitalWrite(motorPin2G, LOW);
digitalWrite(motorPin3G, LOW);
digitalWrite(motorPin4G, HIGH);
delay(motorSpeed);
}