Carlos-on / arduino-car

0 stars 0 forks source link

Joystick #4

Open Carlos-on opened 4 months ago

Carlos-on commented 3 months ago

//Include the SoftwareSerial library //Definição dos pinos de controle do motor

define M1 5 // PinoVelocidade 1º Motor ( 0 a 255) Porta IN2 ponte H;

define M2 6 //PinoVelocidade 2º Motor ( 0 a 255) Porta IN4 ponte H;

define dir1 4 //PinoDireção do 1º Motor: Para frente / Para trás (HIGH ou LOW) porta IN1 ponte H;

define dir2 7 //PinoDireção do 2º Motor: Para frente / Para trás (HIGH ou LOW) porta IN3 ponte H;

//Definição dos pinos dos sensores

define pin_S1 3

define pin_S2 12

bool Sensor1 = 0; bool Sensor2 = 0; //variável responsável por controlar a velocidade dos motores int velocidade = 150; void setup(){ //Setamos os pinos de controle dos motores como saída pinMode(M1, OUTPUT); pinMode(M2, OUTPUT); pinMode(dir1, OUTPUT); pinMode(dir2, OUTPUT); //Setamos a direção inicial do motor como 0, isso fará com que ambos os motores girem para frente digitalWrite(dir1, LOW); digitalWrite(dir2, LOW); //Setamos os pinos dos sensores como entrada pinMode(pin_S1, INPUT); pinMode(pin_S2, INPUT); } void loop(){ //Neste processo armazenamos o valor lido pelo sensor na variável que armazena tais dados. Sensor1 = digitalRead(pin_S1); Sensor2 = digitalRead(pin_S2); //Aqui está toda a lógica de comportamento do robô: Para a cor branca atribuímos o valor 0 e, para a cor preta, o valor 1. if((Sensor1 == 0) && (Sensor2 == 0)){ // Se detectar na extremidade das faixas duas cores brancas analogWrite(M1, velocidade); // Ambos motores ligam na mesma velocidade analogWrite(M2, velocidade); } if((Sensor1 == 1) && (Sensor2 == 0)){ // Se detectar um lado preto e o outro branco analogWrite(M1, 0); // O motor 1 desliga analogWrite(M2, velocidade); // O motor 2 fica ligado, fazendo assim o carrinho virar } if((Sensor1 == 0) && (Sensor2 == 1)){ // Se detectar um lado branco e o outro preto analogWrite(M1, velocidade); //O motor 1 fica ligado analogWrite(M2, 0); // O motor 2 desliga, fazendo assim o carrinho virar no outro sentido } }

void frente() { digitalWrite(dir1, HIGH);
digitalWrite(dir2, HIGH); delay(tmp);
}

void re() { digitalWrite(motor1H, LOW);
digitalWrite(motor1L, HIGH); digitalWrite(motor2H, LOW);
digitalWrite(motor2L, HIGH); delay(tmp); }

void direita() { digitalWrite(motor1H, LOW);
digitalWrite(motor1L, HIGH); digitalWrite(motor2H, HIGH);
digitalWrite(motor2L, LOW); delay(tmp); }

void esquerda() { digitalWrite(motor1H, HIGH);
digitalWrite(motor1L, LOW); digitalWrite(motor2H, LOW);
digitalWrite(motor2L, HIGH); delay(tmp); }

void pare() { digitalWrite(motor1H, LOW);
digitalWrite(motor1L, LOW); digitalWrite(motor2H, LOW);
digitalWrite(motor2L, LOW); delay(tmp); }

include "SoftwareSerial.h"

//Create a new software serial SoftwareSerial bluetooth(8, 9); //TX, RX (Bluetooth)

void setup() { //Initialize the hardware serial Serial.begin(9600); Serial.println(F("Type the AT commands:"));

//Initialize the software serial bluetooth.begin(9600); }

void loop() { //Check received a byte from hardware serial if (Serial.available()) { char r = Serial.read(); //Read and save the byte bluetooth.print(r); //Send the byte to bluetooth by software serial Serial.print(r); //Echo } //Check received a byte from bluetooth by software serial if (bluetooth.available()) { char r = bluetooth.read(); //Read and save the byte Serial.print(r); //Print the byte to hardware serial } }