O Pequeno Krafte Foi Feito Com Vários Elementos Um Deles E A Placa Do Arduino Q Serve Para Controlar O Krafte, Mais Também Foi Usado Outros Elementos Diversos Fios, Uma Ponte H, 2 Motores, Rodas Para Q Ele Pudesse Se Locomover, Leds Para Decorar, Turbinas Feitas De Garrafa Pet, Um Sonar Q Serve Para Medir Distância E Foi Colocado Tbm Um Bluetooth Para Q O Krafte Fosse Comandado Pelo Cell, Para Comandar O Krafte Pelo Celular E Preciso De Um Progama Chamado Arduino Bluetooth Rc Car, E Qualquer Pessoa Pode Baixar Ele E Gratuito.

Aqui Abaixo E Seu Código De Comando Que O Faz Andar 

//Constantes Gerais
#define TEMPO 50  //constante do tempo de espera - 1000 = 1 segundo
#define CURVA 0 //constante para andar muito devegar (PWM muito baixo)
#define SLOW 100 //constante para andar devegar (PWM baixo)
#define FAST 170 // constante para Andar Rápido (PWM Alto)
#define POT 250 //Potencia dos Motores - Média 254 PWM = 100%
 
 
// pinos da Ponte H
#define IA1  5
#define IB1  6
#define IA2  11 
#define IB2  10

int ledDianteiro1 = 13;
int ledDianteiro2 = 12;
int ledDianteiro3 = 3;
int ledDianteiro4 = 4;
int ledTraseiro1 = 7;
int ledTraseiro2 = 2;
int ledTraseiro3 = 9;

//Variáveis uteis
  int i=0;
  int j=0;
  boolean luz = false;
//Bluetooth (HC-06 JY-MCU) State pin on pin 2 of Arduino
const int BTState = 2;
int state;
int vSpeed=255;     // Default speed, from 0 to 255


enum estadoRobo{
  inicio,
  sonar,
  andar,
  girar,
  travar
} estado_robo = inicio;
enum estadoDirecao{
  frente,
  tras,
  esquerda,
  direita
} estado_Direcao = frente;
 
//piscar LED inicio
void piscarLED(void){
  digitalWrite(13,HIGH);
  delay(300);
  digitalWrite(13,LOW);
  delay(300);
  digitalWrite(13,HIGH);
  delay(300);
  digitalWrite(13,LOW);
  delay(300);
  digitalWrite(13,HIGH);
  delay(300);
  digitalWrite(13,LOW);
  delay(300);
}
 
// Movimento para Frente
void andarFrente()
{
  analogWrite( IA1, POT ); // POT = speed => normal
  digitalWrite( IB1, LOW); // 10 = forward
  analogWrite( IA2, POT ); // POT = speed => normal
  digitalWrite( IB2, LOW); // 10 = forward
}


// Movimento para Tras
void andarTras()
{
  digitalWrite( IA1, LOW ); // 01 = direction => Backward
  analogWrite( IB1, POT);   // PWM speed => normal
  digitalWrite( IA2, LOW ); // 01 = direction => Backward
  analogWrite( IB2, POT);   // PWM speed => normal
}
 
// Movimento para Direita
void andarDireita()
{
  analogWrite( IA1, POT);  // POT = speed => normal
  digitalWrite( IB1, LOW);  // 10 = forward
  digitalWrite( IA2, CURVA); // CURVA = speed => parado
  analogWrite( IB2, LOW);   // 10 = forward
}
 
// Movimento para Esquerda
void andarEsquerda()
{
  analogWrite( IA1, CURVA);  // CURVA = speed => parado
  digitalWrite( IB1, LOW);   // 10 = forward
  digitalWrite( IA2, POT);   // POT = speed => normal
  analogWrite( IB2, LOW);    // 10 = forward
}
 
 
// Gira para Direita
void girarDireita()
{
  Serial.println("girarDireita()");
  analogWrite( IA1, POT );  // POT = speed => normal
  digitalWrite( IB1, LOW);  // 10 = forward
  digitalWrite( IA2, LOW ); // 01 = direction => Backward
  analogWrite( IB2, POT);   // POT speed => normal
  
}
// Gira para Esquerda
void girarEsquerda()
{
  digitalWrite( IA1, LOW ); // 01 = direction => Backward
  analogWrite( IB1, POT);   // POT speed = normal
  analogWrite( IA2, POT );  // POT speed = normal
  digitalWrite( IB2, LOW);  // 10 = forward
}
// Gira para Esquerda Tras
void girarEsquerdaTras()
{
  analogWrite( IA1, LOW);  // 10 = forward
  digitalWrite( IB1, CURVA);  // CURVA = speed => parado
  digitalWrite( IA2, LOW); // 01 = direction => Backward
  analogWrite( IB2, POT);   // POT speed => normal
}
// Gira para Direita Tras
void girarDireitaTras()
{
  digitalWrite( IA1, LOW); // 01 = direction => Backward
  analogWrite( IB1, POT);   // POT speed = normal
  analogWrite( IA2, LOW);  // 10 = forward
  digitalWrite( IB2, CURVA);  // CURVA = speed => parado
}
 
 
void parar()
{
  digitalWrite(IA1, LOW);
  digitalWrite(IB1, LOW);
  digitalWrite(IA2, LOW);
  digitalWrite(IB2, LOW);
}
/*float leituraSensor() {
  float cmMsec;
  
  long microsec = ultrasonic.timing();
  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
  Serial.print(", CM: ");
  Serial.print(cmMsec);
  return cmMsec;
}
void executar(){
  switch (estado_robo) {
    case inicio:
      if (leituraSensor() >= 5.0){
        estado_robo = andar;
      }else{
        estado_robo = girar;
        estado_Direcao = esquerda;
      }
      break;
    case sonar:
      if (leituraSensor() >= 5.0){
        estado_robo = andar;
        estado_Direcao = frente;        
      }else{
        estado_robo = travar;
      }
      break;
    case andar:
      break;
    case girar:
      break;
    case travar:
      break;
    default:
      break;
  }
   
} */
 
void setup() {
  //inicia Comunicação Serial para Comunicar via Serial Monitor ou outra ferramenta
  Serial.begin(9600);
 
  //Luzes
  pinMode(ledDianteiro1, OUTPUT);
  pinMode(ledDianteiro2, OUTPUT);
  pinMode(ledDianteiro3, OUTPUT);
  pinMode(ledDianteiro4, OUTPUT);
  pinMode(ledTraseiro1, OUTPUT);
  pinMode(ledTraseiro2, OUTPUT);
  pinMode(ledTraseiro3, OUTPUT);
  
  //pinMode(ledTraseiro1, OUTPUT);
  // pinMode(ledTraseiro2, OUTPUT);
   
  // MOTORES - Configurar e Comecar desligado
  pinMode(IA1, OUTPUT);
  pinMode(IB1, OUTPUT);
  pinMode(IA2, OUTPUT);
  pinMode(IB2, OUTPUT);
  digitalWrite(IA1, LOW);
  digitalWrite(IB1, LOW);
  digitalWrite(IA2, LOW);
  digitalWrite(IB2, LOW);
  pinMode(BTState, INPUT);    
  Serial.begin(9600);
  
}
 
void loop() {
  if(Serial.available() > 0){     
      state = Serial.read();   
  }
  Serial.println(state);
  //Change speed if state is equal from 0 to 4. Values must be from 0 to 255 (PWM)
    if (state == '0'){
      vSpeed=0;}
    else if (state == '1'){
      vSpeed=100;}
    else if (state == '2'){
      vSpeed=180;}
    else if (state == '3'){
      vSpeed=200;}
    else if (state == '4'){
      vSpeed=255;}


  /***********************Andar Frente****************************/
  //If state is equal with letter 'F', car will go forward!
    if (state == 'F') {
      andarFrente(); 
    }
  /**********************Girar Esquerda************************/
  //If state is equal with letter 'L', car will go forward left
    else if (state == 'L') {
      girarEsquerda();
    }
  /**********************Girar Direita************************/
  //If state is equal with letter 'R', car will go forward right
    else if (state == 'R') {
      girarDireita(); 
    }
  /***********************Andar Tras****************************/
  //If state is equal with letter 'B', car will go backward
    else if (state == 'B') {
      andarTras();
    }
  /**********************Backward Left************************/
  //If state is equal with letter 'H', car will go backward left
    else if (state == 'H') {
      girarEsquerdaTras();
    }
  /**********************Backward Right************************/
  //If state is equal with letter 'J', car will go backward right
    else if (state == 'J') {
      girarDireitaTras();
    }
  /***************************Andar Esquerda*****************************/
  //If state is equal with letter 'G', wheels will turn left
    else if (state == 'G') {
        andarEsquerda();
    }
  /***************************Andar Direita*****************************/
  //If state is equal with letter 'I', wheels will turn right
    else if (state == 'I') {
        andarDireita();
    }
  /************************Lights*****************************/
  //If state is equal with letter 'W', turn leds on or of off
    else if (state == 'W') {
      if (luz==false){  
         digitalWrite(ledDianteiro1, HIGH); 
         digitalWrite(ledDianteiro2, HIGH); 
         digitalWrite(ledDianteiro3, HIGH);           
         digitalWrite(ledDianteiro4, HIGH);
         luz=true;
      }else{
         digitalWrite(ledDianteiro1, LOW); 
         digitalWrite(ledDianteiro2, LOW); 
         digitalWrite(ledDianteiro3, LOW);          
         digitalWrite(ledDianteiro4, LOW); 
         luz=false;
      }
      //state='n';
    }
    else if (state == 'U') {
      if (luz==false){  
         digitalWrite(ledTraseiro1, HIGH); 
         digitalWrite(ledTraseiro2, HIGH); 
         digitalWrite(ledTraseiro3, HIGH);           
         luz=true;
      }else{
         digitalWrite(ledTraseiro1, LOW); 
         digitalWrite(ledTraseiro2, LOW); 
         digitalWrite(ledTraseiro3, LOW); 
         luz=false;
      }
      //state='n';
    }
    
  /************************Stop*****************************/
  //If state is equal with letter 'S', stop the car
    else if (state == 'S'){
      parar();
    }
}

Atividades recentes