Escolar Documentos
Profissional Documentos
Cultura Documentos
//velocidade de rotação
int x = 12;
//pinagem
const byte botao_sentido = 2;
const byte botao_velocidade = 3;
const byte moto1 = 4;
const byte moto2 = 5;
const byte pwm = 9;
void setup()
{
//configuração de pinagens
Serial.begin(9600);
pinMode(pwm, OUTPUT);
pinMode(moto1, OUTPUT);
pinMode(moto2, OUTPUT);
pinMode(botao_sentido, INPUT);
pinMode(botao_velocidade, INPUT);
void mudaSentido(){
alterouSentido = 1;
}
void mudaVelocidade(){
alterouVelocidade = 1;
}
void aumentaDevagar(){
while(x < 254){
analogWrite(pwm, x);
x++;
delay(5);
}
x = 0;
}
void loop()
{
//se alterar o sentido
if(alterouSentido){
alterouSentido = 0;
sentidoHorario = !sentidoHorario;
analogWrite(pwm, 12);
if(sentidoHorario){
//direita
digitalWrite(moto1, LOW);
digitalWrite(moto2, HIGH);
}
else{
//esquerda
digitalWrite(moto2, LOW);
digitalWrite(moto1, HIGH);
}
if(velocidadeAlta){
aumentaDevagar();
}
}
//se alterar a velocidade
if(alterouVelocidade){
alterouVelocidade = 0;
velocidadeAlta = !velocidadeAlta;
if(velocidadeAlta){
aumentaDevagar();
}
else {
analogWrite(pwm, 12);
}
}
}