Fala Makers, esse é um tutorial bastante pedido e foi feito de uma forma bem simples e objetiva. Vamos controlar um Cooler ( você pode retirar de uma fonte de computador comum), você também pode controlar a velocidade de qualquer motor DC devendo variar o transistor chaveador de acordo com a potência do motor. Nesse projeto foi utilizado o Kit RF Eletrônica Protoboard e um potenciômetro ,esse Kit foi projetado especialmente para Arduino, mas nada impede de ser utilizado com qualquer outro microcontrolador.
Figura 1- Kit RF Eletrônica Protoboard Analógico Arduino
Seu funcionamento é bem simples você gira o potenciômetro para aumentar e diminuir a rotação e o melhor é que tudo isso sera feito a distância. Você pode utilizar esse código para acionar carrinhos de controle remoto, a velocidade varia de 0-255 e você ainda terá outras saídas digitais para controlar LED's e outros dispositivos.
A imagem abaixo representa o montagem do transmissor, veja como é extremamente simples, se você não sabe como funciona a protoboard ou é seu primeiro projeto acesse nossos outros tutoriais aqui.
Figura 2 - Montagem do Transmissor
Notem que não adicionamos outras funções, porém de acordo com o que você aprendeu nos outros tutoriais você pode implementa-los nesse projeto tornando seu produto final mais completo. Abaixo temos a montagem do receptor, repare que utilizamos o transistor BC327. Esse transistor pode dissipar uma corrente de até 800 mA, como nosso cooler consome apenas 150 mA será mais que suficiente. Se por acaso você quiser utilizar um motor mais parrudo você precisará de um transistor mais potente e terá que isolar seu Arduino.
Figura 3 - Montagem do Receptor
Sketch do Transmissor
/* MSmaker RF Example developed by MSmaker date: december 22, 2015 universomakers@gmail.com */
#include <stdlib.h>
#include<string.h>
#include <VirtualWire.h> //Inclui a biblioteca VirtualWire.hconstint potPin = A0;
long val = 0;
int i;
int pwm;
int compara;
char pwmEnvia[10];
char *dado ; //Cria a variável que ira armazenar a informação pré definida enviadas pelos botõesvoidsetup()
{
//Configura o Arduino para trabalhar como transmissor
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_set_tx_pin(2);//Configura o pino 2 como tx//===================================================Serial.begin(9600);
//Configura o estado das portas digitaispinMode(2, OUTPUT);
pinMode(A0, INPUT);
}
voidloop()
{
val = analogRead(potPin); // Leitura do potênciomentro
pwm = val / 4;// Recebe o valor de 0-1023 e converte para 0-255if (pwm > (compara + 2) || pwm < (compara - 2)) {// Solução para não enviar informação enquanto o potenciômetro não for utlilizado
itoa(pwm, pwmEnvia, 10);// Coverte inteiro em StringSerial.println(pwmEnvia); // Essa linha pode ser removida, serve apenas para verificar seu funcionamento
dado = pwmEnvia; //Armazena o dado pré determinado
vw_send((uint8_t *)dado, strlen(dado)); //Envia a variável dado
vw_wait_tx(); //Aguarda o fim de transmissãodelay(200); //Aguarda um tempo para a próxima leitura
compara = pwm;// Compara se o mesmo valor ja foi enviado
}
}
Sketch do Receptor
/* MSmaker RF Example developed by MSmaker date: July 7, 2015 universomakers@gmail.com */
#include <VirtualWire.h> //Inclui a biblioteca VirtualWire.hint i;
int flag = 0;
int pwm;
char valor[4];
constint inPWM = 3;
voidsetup()
{
//Configura o Arduino para trabalhar como receptor
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_set_rx_pin(2);//Configura o pino 2 como rx
vw_rx_start();
//=================================================pinMode(2, INPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}
voidloop()
{
char cod;//Cria uma variavel para armazenar o dado recebido.
uint8_t buf[VW_MAX_MESSAGE_LEN]; //Recebe os dados e armazena na variável buf
uint8_t buflen = VW_MAX_MESSAGE_LEN; //Armazena na variável buflen o tamanho do dado recebidoif (vw_get_message(buf, &buflen)) //Pega a mensagem que foi recebida
{
flag = 1;// Flag de recebimento
}
// Copia os dados recebidos para um array do tipo Charif (flag == 1) {
for (i = 0; i < buflen; i++) {
valor[i] = buf[i];
}
pwm = atoi(valor);
analogWrite(inPWM, pwm);
Serial.println(pwm);
}
flag = 0;// Zera a flag de recebimento//Limpa as posições do Vetorfor (i = 0; i <= 4; i++) {
valor[i] = 0;
}
}
Fala Makers, ficamos um tempo sem postar tutoriais e esse tempo foi por uma boa causa, estamos preparando muitos outros tutoriais e Kit's para facilitar seu aprendizado. Esse é um tutorial bem simples para servir de decoração para tudo o que você quiser dar um brilho, lembrando que o natal está ai e você poderá criar sua própria luz de natal. Mande sugestões dos tutoriais que você quer ver por aqui, e não se esqueça de curtir nosso canal no Youtube (em breve colocaremos esse vídeo no ar) e curta nossa página no Facebook. Agora vamos ao que interessa:
O LED RGB pode lhe proporcionar mais de 16 milhões de cores, lembrando que temos 3 cores básicas vermelho (red), verde (green) e o azul (blue), podemos fazer misturas dessas cores que resultarão em mais outras 4 cores que também podemos considerar básicas, as cores são essas abaixo:
Figura 1- RGB
Mas como consigo formar mais de 16 milhões de cores?
Figura 2 - Imagem com todas as cores possíveis do sistema RGB
A explicação é simples, cada cor tem um variação de 1byte, ou seja cada um desses três componentes tem um valor de intensidade de 1 a 256 (256 x 256 x 256 = 16777216). Nesse tutorial você irá fazer isso manualmente através de botões, agora vamos a montagem mais abaixo.
Figura 3 - Montagem do projeto
Se você tem dúvidas de como usar um protoboard ou não sabe o que é protoboard acesse esse link: Tutorial 3: Comunicação Wireless utilizando Arduino e os Módulos RF 433Mhz. O seu funcionamento é bem simples, você utiliza os dois primeiros botões para controle do LED vermelho onde o da esquerda (com sinal de -) você diminui seu brilho até atingir 0 e o da direita (com sinal de +) você aumenta o brilho até atingir 255, com os outros botões a função será a mesma. Cada LED precisa de uma alimentação específica para seu funcionamento , se isso não for respeitado você pode ter o brilho do seu LED reduzido ou até a queima do mesmo. O LED vermelho funciona com 2,5volts, verde com 3volts e azul com 3volts , ou seja precisamos de um resistor diferenciado para o vermelho para que não haja sua queima.
Vamos usar um resistor de 150 Ohm para o vermelho e 100 Ohm para o verde e azul conforme a figura abaixo:
Figura 4 - Posição e resistores usados
Para facilitar seu uso deixando menos poluído e suscetível a mal contato, fizemos a montagem
do LED junto aos resistores, isso irá ajudar muito em seu projeto final. Ele já vem com as cores facilitando seu uso visualmente e evitando a queima, lembrando que ele foi desenvolvido para ser utilizado com arduino, ou seja 5volts. Você pode adquirir esse produto nesse link:
Figura 5 - LED RGB Customizado para Arduino
Logo abaixo temos o projeto montado, ele é bem simples e qualquer pessoa pode fazer sem nenhum conhecimento prévio de eletrônica, em breve estaremos postando o vídeo tutorial.