Código
- Código Robot_Arduino controlado por Bluetooth.
Código Robot_Arduino controlado por Bluetooth. C / C ++
/ * Robô de prevenção de obstáculos controlado por Bluetooth Preparado por:Alok Talukdar Data:09.05.2020 * / # include // Para usar qualquer pino no Arduino para comunicação serial.// Defina os pinos digitais para o motor L298 módulo de controle. # define IN1 5 // para motor direito # define IN2 4 // para motor direito # define IN3 3 // para motor esquerdo # define IN4 2 // para motor esquerdo # define ENA 9 // Habilita A para controle PWM do motor direito # define ENB 10 // Habilita B para controle PWM do motor esquerdo // Define os pinos digitais para controle RGB LED # define redLED 8 # define greenLED A0 # define blueLED 11 // Configure o módulo de sensor ultrassônico HC-SR04 trigPin int =6; // Pino TRIG conectado ao pino D6 do Arduino Nanoconst int echoPin =7; // pino ECHO conectado ao pino D7 do Arduino Nanoint i, j, k =0; duração de flutuação, distância; // variáveis para medição de distância // Configurar o módulo HC05 BluetoothSoftwareSerial mySerial (12,13); // (12 -> RX, 13 -> TX) String data; // variáveis para Bluetooth controlint btVal; void setup () {// coloque seu código de configuração aqui, para ser executado uma vez:pinMode (trigPin, OUTPUT); // Configure o pino D6 para transmitir pulsos ultrassônicos pinMode (echoPin, INPUT); // Configure o pino D7 para receber pulsos ultrassônicos mySerial.begin (9600); // Configure o serial do software na taxa de Baud 9600 pinMode (IN1, OUTPUT); // Configure IN1 - IN4 como OUTPUT para controlar motores pinMode (IN2, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); pinMode (ENA, SAÍDA); pinMode (ENB, OUTPUT); pinMode (redLED, OUTPUT); pinMode (blueLED, OUTPUT); pinMode (greenLED, OUTPUT); digitalWrite (IN1, LOW); // Configure o estado do IN1 - IN4 como LOW digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); analogWrite (redLED, 255); // Desligue os LEDs. O LED RGB é um tipo de ânodo comum. digitalWrite (blueLED, HIGH); digitalWrite (greenLED, HIGH);} void loop () {// coloque seu código principal aqui, para executar repetidamente:while (mySerial.available ()) {data =mySerial.readStringUntil ('\ n'); } btVal =(data.toInt ()); switch (btVal) {case 1:forward (); digitalWrite (greenLED, LOW); analogWrite (redLED, 255); digitalWrite (blueLED, HIGH); dist (); pausa; caso 2:reverso (); digitalWrite (greenLED, HIGH); analogWrite (redLED, 255); digitalWrite (blueLED, LOW); pausa; caso 3:esquerda (); pausa; caso 4:direito (); pausa; caso 5:stoprobot (); digitalWrite (greenLED, HIGH); analogWrite (redLED, 0); digitalWrite (blueLED, HIGH); pausa; padrão:digitalWrite (greenLED, HIGH); analogWrite (redLED, 255); digitalWrite (blueLED, HIGH); pausa; } if (mySerial.available () <0) {//Serial.println("No Bluetooth Data "); }} // declarações da função de controle do motor void forward () {for (i =0; i <=100; i ++) {analogWrite (ENA, i); analogWrite (ENB, i); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); }} void reverse () {para (j =0; j <=100; j ++) {analogWrite (ENA, j); analogWrite (ENB, j); digitalWrite (IN1, LOW); digitalWrite (IN2, HIGH); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); }} void left () {analogWrite (ENA, 127); analogWrite (ENB, 0); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, HIGH); digitalWrite (IN4, HIGH); } void right () {analogWrite (ENA, 0); analogWrite (ENB, 127); digitalWrite (IN1, HIGH); digitalWrite (IN2, HIGH); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); } void stoprobot () {analogWrite (ENA, 0); analogWrite (ENB, 0); digitalWrite (IN1, LOW); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); } void dist () {digitalWrite (trigPin, LOW); // para enviar um pulso através do pino TRIG de HC-SR04 delayMicroseconds (2); digitalWrite (trigPin, HIGH); atrasoMicrosegundos (10); digitalWrite (trigPin, LOW); duração =pulseIn (echoPin, HIGH); // ler a duração da distância do pulso =(duração * 0,0343) / 2; // medir a distância em cms. A velocidade do som é 340 m / s ou 0,0343 cm / us if (distance <20) // se a distância for <20 cms, STOP robot {stoprobot (); digitalWrite (greenLED, HIGH); analogWrite (redLED, 0); digitalWrite (blueLED, HIGH); } atraso (1000); }