ProtoCarro

Bom pessoal, o ProtoCarro foi e é (porque ainda trabalhamos nele) nosso primeiro projeto. Um projeto bem simples só para começar a mexer com o arduino. Usando as portas PWM podemos controlar a corrente que irá passar pelo motor DC. Utilizei um circuito bem simples (quem projeto foi o Raul mas aproveitando um outro que já existia).

Para ter tração para que o ProtoCarro, usamos uma caixa de redução, tiramos essa caixa de carrinhos de brinquedo a pilha. A programação é bem simples e também simplificada:

// protocarro programção by: antonio, eduardo, samir, aylton e raul
int motor_direito = 5;
int motor_esquerdo = 6;
int led_pisca = 13;


void anda()
{
  analogWrite(motor_direito, 255);
  analogWrite(motor_esquerdo, 80);
}


void direito()
{
  analogWrite(motor_direito, LOW);
  analogWrite(motor_esquerdo, 80);
}


void esquerdo()
{
  analogWrite(motor_direito, 255);
  analogWrite(motor_esquerdo, LOW);
}


void para()
{
  analogWrite(motor_direito, LOW);
  analogWrite(motor_esquerdo, LOW);
}


void pisca()
{
  digitalWrite(led_pisca, HIGH);
  delay(750);
  digitalWrite(led_pisca, LOW);
  delay(750);
  // ao todo tempo do funcionamento ao todo seria delay(1500)
}


void setup()
{
  pinMode(motor_direito, OUTPUT);
  pinMode(motor_esquerdo, OUTPUT);
  pinMode(led_pisca, OUTPUT);
  ProtoCarro();
}


void loop()
{
}


void ProtoCarro()
{
  anda();
  delay(7000);
  para();
  delay(1000);
  esquerdo();
  delay(750);
  anda();
  delay(1050);
  para();
  delay(1000);
  direito();
  delay(2000);
  anda();
  delay(1500);
  para();
  delay(1);
  pisca();
  delay(3000);
}


Na programação, as ordens que você colocar na placa como anda, para, esquerdo e direito, pode mudar e também pode mudar o tempo [delay(tempo em milisegundos)].

Com tempo estamos aprimorando esse projeto, tentando colocar sensores entre outros componentes...

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

2 comentários:

Samir disse...

Boa galera,

Gostei de ver voces compartimentarizando tudo em funcoes! E assim que se programa, voce abstrai a tarefa de baixo nivel e comeca a usa-la sem precisar se preocupar como foi feita =)

Vamos por um sensor de linha nesse cara agora!

Samir disse...

2 coisas rapidas:

A funcao protocarro e desnecessaria, ela nao abstrai nada de uma maneira util, digo, isso pode e deve ficar dentro de loop, pois descreve claramente o que o carro fara de maneira repetida.

Imagino que tenham feito isto, inclusive com essa funcao em setup porque so querem que ele faca isto uma vez.

Isso resolve, mas acho que um contador e quando ele for maior ou igual a um em loop fica mais bonito, pois qualquer um que le um codigo de arduino vai direto para loop, nao sei realmente qual a melhor saida, mas deixar tudo em loop fica maiso organizado.

Postar um comentário