Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <SoftwareSerial.h> // Liga o módulo bluetooth para saídas TX e RX como 3 e 2; SoftwareSerial bluetooth(3,2); /* Define as saídas e seus nomes: Saída Função 12 Polo A do motor esquerdo; 11 Polo B do motor esquerdo; 10 Polo A do motor direito; 9 Polo B do motor direito; 8 Acionamento dos Leds dianteiros; 7 Acionamento dos Leds traseiros (Luz vermelha); 6 Acionamento dos Leds tradeiros (Luz branca); */ const int Mot1A = 12; const int Mot1B = 11; const int Mot2A = 10; const int Mot2B = 9; const int LedD = 8; const int LedT1 = 7; const int LedT2 = 6; int incomingByte; bool power; bool sentidoX; bool giro; void setup() { //Setando as saídas do Arduino como Output pinMode(Mot1A, OUTPUT); pinMode(Mot1B, OUTPUT); pinMode(Mot2A, OUTPUT); pinMode(Mot2B, OUTPUT); pinMode(LedD, OUTPUT); pinMode(LedT1, OUTPUT); pinMode(LedT2, OUTPUT); Serial.begin(9600); bluetooth.begin(9600); } void loop() { /* Abaixo basta trocar bluetooth.read() para Serial.read() para se comunicar com o arduino através do computador.*/ char incomingByte = Serial.read(); // Adiciona a tecla F como liga e desliga de todo o sistema; if (incomingByte == 'F') { (power = true); delay (1000); } while (power == true) { char incomingByte = Serial.read(); switch(incomingByte){ /* Os controles do carrinho são os seguintes: W = Acelerar; S = Ré; A = Virar para a esquerda; D = Virar para a direita; E = Rotacionar o carrinho; F = Liga/Desliga; */ // Adiciona a tecla W como aceleração; case 'W': digitalWrite (Mot1A, HIGH); digitalWrite (Mot1B, LOW); digitalWrite (Mot2A, HIGH); digitalWrite (Mot2B, LOW); digitalWrite (LedD, HIGH); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); sentidoX = true; delay (80); break; // Adiciona a tecla S como ré; case 'S': digitalWrite (Mot1A, LOW); digitalWrite (Mot1B, HIGH); digitalWrite (Mot2A, LOW); digitalWrite (Mot2B, HIGH); digitalWrite (LedD, LOW); digitalWrite (LedT1, LOW); digitalWrite (LedT2, HIGH); sentidoX = false; delay (80); break; // Adiciona a tecla A como virar para a esquerda; case 'A': giro = true; if (sentidoX == true) { digitalWrite (Mot1A, LOW); digitalWrite (Mot1B, LOW); digitalWrite (Mot2A, HIGH); digitalWrite (Mot2B, LOW); digitalWrite (LedD, HIGH); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); delay (80); break; } else { digitalWrite (Mot1A, LOW); digitalWrite (Mot1B, HIGH); digitalWrite (Mot2A, LOW); digitalWrite (Mot2B, LOW); digitalWrite (LedD, HIGH); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); delay (80); break; } // Adciona a tecla D como virar para a direita; case 'D': giro = false; if (sentidoX == true) { digitalWrite (Mot1A, HIGH); digitalWrite (Mot1B, LOW); digitalWrite (Mot2A, LOW); digitalWrite (Mot2B, LOW); digitalWrite (LedD, HIGH); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); delay (80); break; } else { digitalWrite (Mot1A, LOW); digitalWrite (Mot1B, LOW); digitalWrite (Mot2A, LOW); digitalWrite (Mot2B, HIGH); digitalWrite (LedD, HIGH); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); delay (80); break; } /* Adciona a tecla E como rotacionar o veiculo em seu eixo; Nota: A direção do eixo depende do último comando de virar dado ao carrinho (Comandos A ou D) */ case 'E': if (giro == false) { digitalWrite (Mot1A, HIGH); digitalWrite (Mot1B, LOW); digitalWrite (Mot2A, LOW); digitalWrite (Mot2B, HIGH); digitalWrite (LedD, HIGH); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); delay (80); break; } else { digitalWrite (Mot1A, LOW); digitalWrite (Mot1B, HIGH); digitalWrite (Mot2A, HIGH); digitalWrite (Mot2B, LOW); digitalWrite (LedD, HIGH); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); delay (80); break; } // Adiciona a tecla F para desligar o sistema; case 'F': power = false; digitalWrite (Mot1A, LOW); digitalWrite (Mot1B, LOW); digitalWrite (Mot2A, LOW); digitalWrite (Mot2B, LOW); digitalWrite (LedD, LOW); digitalWrite (LedT1, LOW); digitalWrite (LedT2, LOW); delay(1000); /* Caso nenhuma tecla seja pressionada, o sistema ativará apenas as luzes dianteiras e traseiras e permanecerá parado*/ default: digitalWrite (Mot1A, LOW); digitalWrite (Mot1B, LOW); digitalWrite (Mot2A, LOW); digitalWrite (Mot2B, LOW); digitalWrite (LedD, HIGH); digitalWrite (LedT1, HIGH); digitalWrite (LedT2, LOW); delay (50); break; } } }
Compartilhar