robo seguidor de linha

3
//Teste Robô Seguidor de Linha | Arduino - Canal Click Luna //Potencia Normal //Potencia Reduzida //Potencia Tras #define potN 120 #define potR 60 #define potT 100 //Direita int in1=4; int in2=5; //Esquerda int in3=6; int in4=7; int velocidadeA=8; int velocidadeB=9; int lerSD=48; int lerSE=46; void setup() { // Inicializa os pinos dos motores como saida pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(velocidadeA, OUTPUT); pinMode(velocidadeB, OUTPUT); //sensores entrada pinMode(lerSD, INPUT); pinMode(lerSE, INPUT);

Upload: cida-luna

Post on 12-Jan-2017

70 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Robo seguidor de linha

//Teste Robô Seguidor de Linha | Arduino - Canal Click Luna

//Potencia Normal

//Potencia Reduzida

//Potencia Tras

#define potN 120

#define potR 60

#define potT 100

//Direita

int in1=4;

int in2=5;

//Esquerda

int in3=6;

int in4=7;

int velocidadeA=8;

int velocidadeB=9;

int lerSD=48;

int lerSE=46;

void setup() {

// Inicializa os pinos dos motores como saida

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

pinMode(velocidadeA, OUTPUT);

pinMode(velocidadeB, OUTPUT);

//sensores entrada

pinMode(lerSD, INPUT);

pinMode(lerSE, INPUT);

Page 2: Robo seguidor de linha

}

void loop() {

// Adquire os valores do sensor direito e esquerdo

int sD=digitalRead(lerSD);

int sE=digitalRead(lerSE);

if(sD == 0 && sE == 0){

control('f');

}else if(sD == 1 && sE == 0){

control('d');

}else if(sD == 0 && sE == 1){

control('e');

}else if(sD == 1 && sE == 1){

control('p');

}

delay(100);

}

//Funcao que controla os motores

void control(char dir){

switch(dir){

case 'f':

analogWrite(velocidadeA,potN);

analogWrite(in1, HIGH);

analogWrite(in2, LOW);

analogWrite(velocidadeB,potN);

analogWrite(in3, HIGH);

analogWrite(in4, LOW);

break;

case 'd':

analogWrite(velocidadeA,potR);

Page 3: Robo seguidor de linha

analogWrite(in1, LOW);

analogWrite(in2, HIGH);

analogWrite(velocidadeB,potN);

analogWrite(in3, HIGH);

analogWrite(in4, LOW);

break;

case 'e':

analogWrite(velocidadeA,potN);

analogWrite(in1, HIGH);

analogWrite(in2, LOW);

analogWrite(velocidadeB,potR);

analogWrite(in3, LOW);

analogWrite(in4, HIGH);

break;

case 'p':

analogWrite(velocidadeA,0);

analogWrite(in1, LOW);

analogWrite(in2, LOW);

analogWrite(velocidadeB,0);

analogWrite(in3, LOW);

analogWrite(in4, LOW);

break;

/* case 't':

analogWrite(velocidadeA,potT);

analogWrite(in1, LOW);

analogWrite(in2, HIGH);

analogWrite(velocidadeB,potT);

analogWrite(in3, LOW);

analogWrite(in4, HIGH);

break;

*/

} }