Pronto, o projeto do do ProtoTanque está finalizada. Tive que colocar mais uma plataforma para poder encaixar 3 baterias em paralelo para que os dois motores do carrinho funcione, cada motor precisava de 350mA e as baterias fornecem 250mA. Colocando as baterias em paralelo ficaram aproximadamente 750mA e os motores em paralelos também a corrente irá se dividir e ficaria 375mA para cada motor. Com isso funciona perfeitamente o ProtoTanque.
Nada que foi dito na postagem ProtoTanque 1º Parte foi modificado, só acrescentei isso que foi dito acima, mas o Arduino funciona com uma bateria de 9v própria, logo ao todo são 4 baterias para que funcione.
Fotos Novas:
Vídeo:
Editando, logo poderão ver como ficou o projeto ProtoTanque
Bom, esse é o meu segundo Shield... Com esse shield posso controlar material de corrente alternada (Lâmpadas e outros). Me baseei no meu circuito nesses links a seguir: Relé 1, Relé 2 e Relé 3.
Relé é um interruptor que é controlado eletricamente, a movimentação desse interruptor é causada quando passar uma corrente nas espiras da bobina do relé criando um campo magnético que movimenta a chave interna para NF ou NA (normalmente Fechado ou Aberto).
No meu shield usei resistor de 1kohm, relé de 5v, transistor TIP120 e diodo 1N4007. O meu ReléShield ficou bem parecido com o link Relé 2 como mostra a figura abaixo, sendo que usei o transistor citado a cima:
Fiz o teste e
funcionou, mas a minha lâmpada é para 110 v. A programação é mega simples, caso
queira deixar programado pode-se usar a programação idem ao acender um LED
(blink), mas podendo colocar outras coisas, exemplo ligar e desligar o relé por
um botão, ai vai da criatividade e/ou da curiosidade de cada um. Também da para
usar o relé como ponte H, nesse caso só irá usar apenas 2 relés para cada
motor, futuramente postarei a montagem desse esquema de ponte H.
Pretendo futuramente aprender outros tipos de programação para poder
controlar a instalação elétrica de uma casa por algum aparelho (celular com
android, tablet, etc.).
Programação:
int rele = 12; //Declarei que led é a variável 13 void setup() { pinMode(lrele, OUTPUT); //Agora utilizei essa variável e disse que ela é a porta 12 do arduino }
A programação logo acima é só para testar se o circuito funcionou mesmo ou não, para brincar mais com esse projeto, estou usando o controle pelo teclado do computador. Eu ligo e desligo cada relé pelo teclado, caso não tenha acompanhado, a postagem do Controle no Teclado.
Fiz uma extensão para poder controlar até quatro tomadas. Usei uma tomada que entram 4 plugs e fiz alterações na parte interna, usei rabicho de tomada e fio cabinho preto. O esquema a seguir, fiz no paint para ver se consigo explicar melhor a montagem:
Onde tem a linha verde escuro, quer dizer que por dentro é interligado com um metal, as tomadas eram em paralelo, o X em vermelho indica que eu cortei, dividi uma das vias em 4 partes, para que eu possa controlar as tomadas independentes. O fio com a cor cinza clara, eu preferi deixar separado para só ficar colocando no comum do relé e os outros 4 fios (Verde Claro, Azul, Vermelho e Rosa) seria onde eu ligaria ou desligaria o circuito com o componente, mas podendo inverte isso sem problema.
Programação 2:
int rele1 = 12;
int rele2 = 11;
int rele3 = 10;
int rele4 = 9;
int tecla = 0;
void setup()
{
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
Serial.begin(9600);
}
void loop()
{
if(Serial.available()>0)
{
tecla=Serial.read();
Serial.print("Tecla ");
Serial.println(tecla, BYTE);
if(tecla==97) //a Liga relé1
{
digitalWrite(rele1, HIGH);
}
if(tecla==122) //z Desliga relé1
{
digitalWrite(rele1, LOW);
}
if(tecla==115) //s Liga relé2
{
digitalWrite(rele2, HIGH);
}
if(tecla==120) //x Desliga relé2
{
digitalWrite(rele2, LOW);
}
if(tecla==100) //d Liga relé3
{
digitalWrite(rele3, HIGH);
}
if(tecla==99) //c Desliga relé3
{
digitalWrite(rele3, LOW);
}
if(tecla==102) //f Liga relé4
{
digitalWrite(rele4, HIGH);
}
if(tecla==118) //v Desliga relé4
{
digitalWrite(rele4, LOW);
}
}
}
Nos comentários, as palavras que estão soltas quer dizer a tecla que irei aperta para ligar ou desligar cada relé.
Essa imagem é bom ter em mãos para quem não lembra muita coisa de programação do arduino e que não tem outro meio de pesquisar, creio que isso irá ajudar e muito (só clicar na imagem que irá abrir em um tamanho maior).
OBS.: Esse mês vai ser um pouco corrido para mim e creio que não vou consegui postar muitas coisas em relação a meus projetos ou com o arduino.
Recentemente andei pesquisando na internet e achei um programa que simula até a programação para ver se vai funcionar... Por falta de tempo e queria ver rápido esse programa só coloquei um LED para ficar acesso logo irei verificar melhor o programa. O Virtual Breadboard simula Arduino e outros tipos de microcontroladores.
Para quem não tem arduino, é uma ótima alternativa para poder verificar se vai funcionar a programação ou não. Consegui também uma pequena apostila explicando como simular o arduino, mas quando estiver com mais tempo, vejo se crio uma apostila sobre esse programa de acordo com que aprendi e entendi nele. Download do Programa.
Primeiramente montei uma base de um carrinho de controle velho (Meu amigo Francisco me doou) e refiz o circuito interno. Coloquei a ponte H com transistores no projeto, o circuito da ponte H na postagem logo abaixo a essa. O carrinho possui também faróis, usei 2 LEDs de alto brilho.
Ponte H com 8 Transistores TIP120 ligado ao Arduino.
Visão frontal do projeto, faróis mencionados anteriormente.
A Finalidade desse chassi que ajeitei e para estudar o arduino usando diversos controles (PS1, PS3, Joystick) e fazer controles dos projetos também por sem fio (Bluetooth, WiFi, RF, etc.), mas vai ser tudo com calma.
Para começar com esse projeto, eu mesmo fiz um controle, me baseei em um controle de Master System II... Sendo que no controle possui 6 botões, no que eu mesmo montei possui 5 botões (direcionais e botão para qualquer função determinada). Com esse controle não precisa de biblioteca só usei pushbutton, mas nos controles em que me referi anteriormente, precisa sim de biblioteca no arduino. Logo abaixo mostra o layout e a foto de como ficou o controle.
Aproveitei os Direcionais de um controle de video game velho e coloquei no novo controle, usei resistores de 1kohm. O cabo eu aproveitei um que tinha, é um cabo de rede. O layout e para fazer a caneta na placa nos furos logo acima (7 furos): 5v, Botão Desce, Botão Direito, Botão Cima, Botão Esquerdo, Botão Solto e GND
Na programação, os botões ficaram nas portas digitais... Praticamente usei quase todas as portas digitais do arduino com esse projeto do Carrinho sendo controlado por um controle de Game. A programação é bem fácil, praticamente é idem ao do Sensor de Toque.
Programação:
//Farol
int led1 = 11;
int led2 = 12;
//Motores
int direcaoE = 5;
int direcaoD = 6;
int motorF = 9;
int motorT = 10;
//Controle
int cima = 2;
int vcima = 0;
int baixo = 3;
int vbaixo = 0;
int direito = 4;
int vdireito = 0;
int esquerdo = 7;
int vesquerdo = 0;
int tecla = 8;
int vtecla = 0;
void farol_ligado()
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
}
void farol_desligado()
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
void direcao(int dE, int dD)
{
analogWrite(direcaoE, dE);
analogWrite(direcaoD, dD);
}
void movimento(int mF, int mT)
{
analogWrite(motorF, mF);
analogWrite(motorT, mT);
}
voidsetup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(direcaoE, OUTPUT);
pinMode(direcaoD, OUTPUT);
pinMode(motorF, OUTPUT);
pinMode(motorT, OUTPUT);
pinMode(cima, INPUT);
pinMode(baixo, INPUT);
pinMode(esquerdo, INPUT);
pinMode(direito, INPUT);
pinMode(tecla, INPUT);
}
voidloop()
{
vcima=digitalRead(cima);
vbaixo=digitalRead(baixo);
vesquerdo=digitalRead(esquerdo);
vdireito=digitalRead(direito);
vtecla=digitalRead(tecla);
if(vcima == HIGH)
{
movimento(255,0);
}
if(vbaixo == HIGH)
{
movimento(0,255);
}
if(vesquerdo == HIGH)
{
direcao(255,0);
}
if(vdireito == HIGH)
{
direcao(0,255);
}
if(vtecla == HIGH)
{
farol_ligado();
}
else
{
farol_desligado();
movimento(0,0);
direcao(0,0);
}
}
Na programação, antes de fazer a
preparação de tudo novoid
setup() criei 4 novas funções... Essas funções que criei são para
facilitar a programação, para não ficar repetindo varias vezes a mesma
programação. Criando uma função (um void), invés de digitar varia vezes a mesma programação que
deseja, com isso só ao digitar o nome da função irá executar o que está dentro
dela... Com isso diminui muito a quantidade de linhas na programação e pode
deixar mais claro para entendê-lo. As funções são para ligar e desligar o
farol, outra que irá servir para o controle da direção e outro para aceleração
(se irá se movimentar para frente ou para trás).
Depois que calibrei os botões, digitalRead(),
a programação era quando eu pressionar o botão determinado e der o valor 1 no
arduino, irá executar o que programação (e: apertei o botão cima, quando
pressionei o arduino estava lendo 0 passou a ler para 1, quando estiver em 1 o
carrinho irá para frente). Mas se nenhuns dos botões forem apertados, o
carrinho irá ficar parado, como mostra noelse(desativei todas as funções).