Boa tarde colegas,
Enfim terminei o projeto do carrinho de controle remoto. Utilizei inicialmente o Arduino Uno, mas depois troquei pelo Arduino Nano. O motivo: O Nano é bem menor que o Uno e com isso eu ganhei diminuição de espaço e peso. Também troquei minha ponte H L298N pela ponte H L293D. Ganhei ainda mais espaço. Utilizei ainda um módulo controle remoto transmissor de 4 canais com receptor de 433 MHz, uma bateria recarregável de 9V para alimentar o Arduino e um power bank de 5V (1A) para alimentar apenas os motores. O módulo receptor é alimentado pela saída de 5V do próprio Arduino Nano. Os motores precisam ser alimentados separadamente para não danificar o Arduino. Não consegui alimentar tudo com o power bank, pois notei interferência quando os motores estão ligados no receptor. Vou postar o diagrama esquemático utilizado na montagem. A única diferença é que no lugar dos botões está a ligação do receptor. E no lugar da bateria com o regulador de 5V está o carregador portátil (power bank) de 5V. A recepção é muito boa, mas tive que sintonizar os módulos e soldar uma antena no receptor com 17 centímetros. Vejam as fotos e o vídeo abaixo:
Vídeo: https://youtu.be/Dxp6MFYU5EM
Diagrama esquemático:
Fotos:
Sketch:
// DEFINIÇÕES DE PINOS
#define pinC 4 //D3 Do Receptor - Esquerda - Botão C do
transmissor
#define pinD 5 //D1 Do Receptor - Direita - Botão D do
transmissor
#define pinA 6 //D2 do Receptor - Frente - Botão A do
transmissor
#define pinB 7 //D0 do Receptor - Ré - Botão B do transmissor
#define motor1A 8
#define motor1B 9
#define motor2A 12
#define motor2B 11
// DECLARAÇÃO DE VARIÁVEIS
unsigned long tempo = 0;
int direita=0;
int esquerda=0;
int frente=0;
int re=0;
bool estadoPinA;
bool estadoPinB;
bool estadoPinC;
bool estadoPinD;
bool estadomotor1A = false;
bool estadoPinAAnt = false;
bool estadoPinCAnt = false;
void setup() {
pinMode(motor1A,
OUTPUT);
pinMode(motor1B,
OUTPUT);
pinMode(motor2A,
OUTPUT);
pinMode(motor2B,
OUTPUT);
//pinMode(13,
OUTPUT);
//digitalWrite(13,
LOW);
}
void loop() {
//Liga o motor1A e 2A
sem retenção - FRENTE
estadoPinA = digitalRead(pinA);
if (estadoPinA == true) {
digitalWrite(motor1B,LOW);
digitalWrite(motor2B,LOW);
digitalWrite(motor1A,HIGH);
digitalWrite(motor2A,HIGH);
tempo = millis();
re=0;
esquerda=0;
direita=0;
frente = 1;
}
else if (estadoPinA == false &&
(millis()-tempo)>1000 && frente==1) {
digitalWrite(motor1A,LOW);
digitalWrite(motor2A,LOW);
frente = 0;
}
//Liga o motor1B e 2B sem retenção - RÉ
estadoPinB =
digitalRead(pinB);
if (estadoPinB == true) {
digitalWrite(motor1A,LOW);
digitalWrite(motor2A,LOW);
digitalWrite(motor1B,HIGH);
digitalWrite(motor2B,HIGH);
tempo = millis();
frente=0;
direita=0;
esquerda=0;
re = 1;
}
else if (estadoPinB == false &&
(millis()-tempo)>1000 && re==1) {
digitalWrite(motor1B,LOW);
digitalWrite(motor2B,LOW);
re=0;
}
//Liga o motor1B e 2A sem retenção - ESQUERDA
estadoPinC =
digitalRead(pinC);
if (estadoPinC == true) {
digitalWrite(motor1A,LOW);
digitalWrite(motor2B,LOW);
digitalWrite(motor1B,HIGH);
digitalWrite(motor2A,HIGH);
tempo = millis();
frente=0;
re=0;
direita=0;
esquerda = 1;
}
else if (estadoPinC == false &&
(millis()-tempo)>200 && esquerda==1) {
digitalWrite(motor1B,LOW);
digitalWrite(motor2A,LOW);
esquerda = 0;
}
//Liga o motor1A e 2B sem retenção - DIREITA
estadoPinD =
digitalRead(pinD);
if (estadoPinD == true) {
digitalWrite(motor1B,LOW);
digitalWrite(motor2A,LOW);
digitalWrite(motor1A,HIGH);
digitalWrite(motor2B,HIGH);
tempo = millis();
frente=0;
re=0;
esquerda=0;
direita = 1;
}
else if (estadoPinD == false &&
(millis()-tempo)>200 && direita == 1) {
digitalWrite(motor1A,LOW);
digitalWrite(motor2B,LOW);
direita = 0;
}
}












