Checkpoints in my code?
hi know how ask arduino read sensors during void , if statements changed go or restart loop. how can ask him out of loop ?
code: [select]
#include <servo.h>
servo servo;
int positions = 2;
int vpositions;
int capteur1 = a0; //pin de la photocell 1
int readcapteur1; //valeur de la photocell 1
int capteur2 = a1; //pin de la photocell 2
int readcapteur2; //valeur de la photocell 2
int capteur3 = a2; //pin de la photocell 3
int readcapteur3; //valeur de la photocell 3
int p;
void setup()
{
servo.attach(9);
serial.begin(9600); //imprimer les données recues - la fréquence
}
void loop()
{
readcapteur1 = analogread(capteur1); //lecture analogique du capteur
readcapteur2 = analogread(capteur2); //lecture analogique du capteur
readcapteur3 = analogread(capteur3); //lecture analogique du capteur
serial.print("lecture du capteur 1 = "); //imprimer les données sous...
serial.print(readcapteur1); //imprimer les données analogiques recues
serial.print("\t");
serial.print("lecture du capteur 2 = "); //imprimer les données sous...
serial.print(readcapteur2); //imprimer les données analogiques recues
serial.print("\t");
serial.print("lecture du capteur 3 = "); //imprimer les données sous...
serial.print(readcapteur3); //imprimer les données analogiques recues
serial.print("\t");
serial.print("lecture vpositions = "); //imprimer les données sous...
serial.print(vpositions); //imprimer les données analogiques recues
serial.print("\n");
if (readcapteur1 > 850) {
positions = 1;
if (vpositions != 1)
{ droite();}
else{}
}
if (readcapteur2 > 850) {
positions = 2;
if (vpositions != 2)
{ centre();}
else {}
}
if (readcapteur3 > 850) {
positions = 3;
if (vpositions != 3)
{
gauche();}
else{}
}
vpositions = positions;
serial.print("lecture vpositions = "); //imprimer les données sous...
serial.print(vpositions); //imprimer les données analogiques recues
serial.print("\n");
}
void centre()
{
if (p==2){
for(int x=2400; x<=2400 && x>=1500; x-=25){
servo.write(x);//120
delay(200);
serial.print(" x= "); //imprimer les données sous...
serial.print(x);
positions = 2;
}
}
if (p==1){
for(int x=544; x<=1500 && x>=544; x+=25){
servo.write(x);//120
delay(200);
serial.print(" x= "); //imprimer les données sous...
serial.print(x);
positions = 2;
}
}
serial.print(" position = centre2 "); //imprimer les données sous...
serial.print('\n');
positions = 2;
}
void gauche()
{
if(vpositions == 1)
{for(int x=544; x<=2400; x+=25){
servo.write(x);//120
delay(200);
serial.print(" x= "); //imprimer les données sous...
serial.print(x);
}}
else{
for(int x=1500; x<=2400; x+=25){
servo.write(x);//120
delay(200);
serial.print(" x= "); //imprimer les données sous...
serial.print(x);
}}
serial.print(" position = droite3 "); //imprimer les données sous...
p=2;
serial.print('\n');
positions = 3 ;
}
void droite()
{ if (vpositions == 3)
{for(int x=2400; x>=544; x-=25){
servo.write(x);//120
delay(200);
serial.print(" x= "); //imprimer les données sous...
serial.print(x);
}}
else{
for(int x=1500; x>=544; x-=25){
servo.write(x);//120
delay(200);
serial.print(" x= "); //imprimer les données sous...
serial.print(x);
}}
serial.print(" position = gauche1 "); //imprimer les données sous...
p=1;
serial.print('\n');
positions = 1;
}
in ide, press alt + t format code properly.
get rid of else{} lines. nothing.
the 'void' you're talking called functions. there several functions in code, 1 asking about?
the use of delay() stopping sketch responding button presses. use millis() instead. see 'blink without delay' example in either ide or examples pages of site.
get rid of else{} lines. nothing.
the 'void' you're talking called functions. there several functions in code, 1 asking about?
the use of delay() stopping sketch responding button presses. use millis() instead. see 'blink without delay' example in either ide or examples pages of site.
Arduino Forum > Using Arduino > Programming Questions > Checkpoints in my code?
arduino
Comments
Post a Comment