quarta-feira, 17 de maio de 2017

  

CARRINHO ROBÔ FASE 1





    Pessoal, este é o sketch 1 do nosso primeiro programa para o carrinho robô. Ele controla as rodas, fazendo com que o carrinho ande para frente, trás, direita e esquerda. Também podemos controlar a potência fornecida pelas portas PWM 3, 5, 6 e 9, fazendo com que o carrinho ande com velocidades diferentes. Todo o controle é feito via comunicação serial por meio do teclado do computador. 
     Vocês podem ver este programa rodando mesmo sem ter o carrinho. É só montar o arduino com LED's ligados nas portas 3, 5, 6 e 9, com resistores de 220 Ohm's. Abrindo o monitor serial vocês poderão digitar:

"f " =  Faz o carrinho andar para a frente;
"r" =  Carrinho anda para trás;
"d" = Carrinho vira para a direita;
"e" = Carrinho vira para a esquerda;
"h" = Faz com que as portas PWM enviem a potência máxima para os motores.
"l" = Envia uma potencia reduzida para os motores.

   Vocês podem mudar o valor de l no programa, para valores menores. Se estiverem usando LED's vão poder ver que os mesmo ficam mais fracos quando "l" for digitado, e voltam a ficar fortes quando "h" for digitado. 

Obs.: é só copiar o código e colar no programa do arduino.😉

SKETCH 1 CARRINHO ROBÔ:

int tempo=500;
char comando ='v';
int estado=0;
int POT = 255;
void setup()
{
Serial.begin(9600); 
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
}
void loop()
{
if(Serial.available())
{
   comando = Serial.read();
   if (comando=='f')
{
Serial.println("carrinho.anda para frente!");
analogWrite(3,POT);
analogWrite(6,POT);
analogWrite(9,0);
analogWrite(5,0);
delay(tempo);

analogWrite(3,0);
analogWrite(6,0);
analogWrite(9,0);
analogWrite(5,0);
}
 if (comando=='r')
{
Serial.println("carrinho.anda para tras!");
analogWrite(5,POT);
analogWrite(9,POT);
analogWrite(3,0);
analogWrite(6,0);
delay(tempo);

analogWrite(3,0);
analogWrite(6,0);
analogWrite(9,0);
analogWrite(5,0);
}
if (comando=='e')
{
Serial.println("carrinho.anda para esquerda!");
analogWrite(3,POT);
analogWrite(9,POT);
analogWrite(5,0);
analogWrite(6,0);
delay(tempo);

analogWrite(3,0);
analogWrite(6,0);
analogWrite(9,0);
analogWrite(5,0);
}
if (comando=='d')
{
Serial.println("carrinho.anda para direita!");
analogWrite(5,POT);
analogWrite(6,POT);
analogWrite(3,0);
analogWrite(9,0);
delay(tempo);

analogWrite(3,0);
analogWrite(6,0);
analogWrite(9,0);
analogWrite(5,0);
}

if(comando == 'h')
{
  POT = 255;
Serial.print("velocidade maxima. Pot:"); 
Serial.println(POT);
  
}
if(comando =='l')
{
  POT = 200;
Serial.print("velocida media. Pot: ");
Serial.println(POT);

}
else
{
Serial.println("comando desconhecido!");
}
}



Nenhum comentário:

Postar um comentário