domingo, 18 de março de 2018

Código Arduino, carrinho inteligente com controle Bluetooth via celular.

int motorE = 6; // PWM
int in1 = 7;
int motorD = 9; // PWM
int in4 = 8;
int farol = 2;
int lanterna = 4;
int buzina = 12;
int luz_freio = 11;
int LDR = A3;
char letra;
boolean status1 = false;
boolean status2 = false;
boolean status3 = false;

void setup() {
   Serial.begin(9600);
   pinMode(motorE, OUTPUT);
   pinMode(motorD, OUTPUT);
   pinMode(in1, OUTPUT);
   pinMode(in4, OUTPUT);
   pinMode(farol, OUTPUT);
   pinMode(lanterna, OUTPUT);
   pinMode(buzina, OUTPUT);
   pinMode(luz_freio, OUTPUT);
}

void loop() {
  
  int val = analogRead(LDR);
   Serial.print("Valor do sensor = ");
   Serial.println(val);
  if (val>=155){
        analogWrite(motorE, 0);  // Para tudo
        digitalWrite(in1, LOW);
        analogWrite(motorD, 0);
        digitalWrite(in4, LOW);
        digitalWrite(luz_freio, LOW);
        digitalWrite(farol, LOW);
        digitalWrite(lanterna, LOW);
        digitalWrite(buzina, HIGH);
        delay(2000);
        digitalWrite(buzina, LOW);
  }
  
  char letra = Serial.read();
       if (letra == 'a'){  // Move pra frente
        analogWrite(motorE, 255);
        digitalWrite(in1, LOW);
        analogWrite(motorD, 255);
        digitalWrite(in4, LOW);
        digitalWrite(luz_freio, LOW);
        delay(500);
       }
       else if(letra == 'b'){  // Move pra trás
        analogWrite(motorE, 0);
        digitalWrite(in1, HIGH);
        analogWrite(motorD, 0);
        digitalWrite(in4, HIGH);
        digitalWrite(luz_freio, LOW);
        delay(500);
       }
       if (letra == 'c'){  // Move pra direita
        analogWrite(motorE, 255);
        digitalWrite(in1, LOW);
        analogWrite(motorD, 0);
        digitalWrite(in4, HIGH);
        digitalWrite(luz_freio, LOW);
        delay(500);
       }
       if (letra == 'd'){  // Move pra esquerda
        analogWrite(motorE, 0);
        digitalWrite(in1, HIGH);
        analogWrite(motorD, 255);
        digitalWrite(in4, LOW);
        digitalWrite(luz_freio, LOW);
        delay(500);
       }
       if (letra == 'h'){  // Freio
        analogWrite(motorE, 0);
        digitalWrite(in1, LOW);
        analogWrite(motorD, 0);
        digitalWrite(in4, LOW);
        digitalWrite(luz_freio, HIGH);
        delay(500);
       }
       if (letra == 'e'){
        if(status1){
        digitalWrite(farol, LOW);
        status1 = false;
      }else{
        digitalWrite(farol, HIGH);
        status1 = true;
        delay(500);
      }
      }
      if (letra == 'f'){
        if(status2){
        digitalWrite(lanterna, LOW);
        status2 = false;
      }else{
        digitalWrite(lanterna, HIGH);
        status2 = true;
        delay(500);
      }
      }
      if (letra == 'g'){
        if(status3){
        digitalWrite(buzina, LOW);
        status3 = false;
      }else{
        digitalWrite(buzina, HIGH);
        status3 = true;
        delay(500);
      }
    }
}