terça-feira, 16 de abril de 2019

Semáforo com Arduino


    Neste projeto vamos aprender a fazer um semáforo. Este projeto tem um semáforo para carros em conjunto com um para pedestres, funcionando em sincronismo.  

LISTA DE COMPONENTES:


1 - Arduino Uno;
2 - LED verde;
2 - LED vermelho;
1 - LED laranja;
5 - Resistores de 220 ohms;
1 - Protobord;
Alguns jumpers;


Circuito a ser montado:


     Os pinos digitais  5 à 9 estão ligados aos LEDs, também em cada LED há um resistor de 220 ohms para limitar a corrente.




Programando o Arduino:


     O código abaixo fará com que os LED’s acendam na seqüência necessária ao funcionamento sincronizado de um semáforo para carros em conjunto com um para pedestres.

Código:


     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.



int vda = 7;
int vma = 8;
int lra = 9;
int vdp = 6;
int vmp = 5;
void setup()
{
  pinMode(vda, OUTPUT);
  pinMode(vma, OUTPUT);
  pinMode(lra, OUTPUT);
  pinMode(vdp, OUTPUT);
  pinMode(vmp, OUTPUT);
}

void loop()
{
  carro_l();
  delay(3000);
  alerta();
  delay(1000);
  pedestre_l();
  delay(3000);
 
 
}

void carro_l()
{
  digitalWrite(vda, HIGH);
  digitalWrite(vma, LOW);
  digitalWrite(lra, LOW);
  digitalWrite(vdp, LOW);
  digitalWrite(vmp, HIGH);
 
}
void alerta()
{
  digitalWrite(vda, LOW);
  digitalWrite(vma, LOW);
  digitalWrite(lra, HIGH);
  digitalWrite(vdp, LOW);
  digitalWrite(vmp, HIGH); 
}
void pedestre_l()
{
  digitalWrite(vda, LOW);
  digitalWrite(vma, HIGH);
  digitalWrite(lra, LOW);
  digitalWrite(vdp, HIGH);
  digitalWrite(vmp, LOW);
}


     Após carregar o código no Arduino, você verá o funcionamento sincronizado do semáforo. Em Delay o tempo de cada LED pode ser alterado.

Os componentes deste tutorial pode ser comprados AQUI!

segunda-feira, 15 de abril de 2019

Dado eletrônico


    Neste projeto vamos aprender a fazer um dado eletrônico. Com ele os jogos que utilizam dado vão ficar mais tecnológicos. Ao acionar a chave táctil o projeto irá mostrar um número aleatório de 1 à 6.

LISTA DE COMPONENTES:

1 - Arduino Uno;
1 - Chave táctil;
2 - Resistores de 220 ohms;
1 - Protobord;
1 - Display de 7 segmentos;
Alguns jumpers;

Sobre o principais componentes:

      Display de 7 segmentos, são comumente usados em eletrônica como forma de exibir uma informação alfanumérica. Ele é composto de 8 segmentos que são na verdade 8 LEDs, 7 mostram a informação e 1 é o ponto. O mostrado abaixo é de catodo comum.




Circuito a ser montado:

     O pino digital 5 do Arduino irá receber 5V quando a chave táctil for acionada, isto dará inicio ao sorteio de um número de 1 à 6 que será mostrado  no display.  O display será ligado aos pinos digitais de 6 à 12.  



Programando o Arduino:

     O código abaixo fará com que, ao acionar a chave táctil ocorrerá um sorteio aleatório de um número de 1 à 6 e ele será mostrado  no display.

Código.

     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

int segE = 7;
int segD = 8;
int segC = 9;
int segB = 12;
int segA = 6;
int segF = 11;
int segG = 10;

int pinoTilt = 5;

void setup()
{
  pinMode(segE, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segA, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);

  pinMode(pinoTilt, INPUT);
}

void loop()
{
  
  if(digitalRead(pinoTilt) == HIGH)
  {
    jogaDado();
  }
}

void jogaDado()
{
  for(int i=0; i<25; i++)
  {
    switch(random(1, 6)) // Escolhe um numero aleatorio entre 1 e 6
    {
     
      case 1 :
        acende1();
        break;
      case 2 :
        acende2();
        break;
      case 3 :
        acende3();
        break;
      case 4 :
        acende4();
        break;
      case 5 :
        acende5();
        break;
      case 6 :
        acende6();
        break;
     
    }
    delay(4*i);     // O delay aumenta conforme passam mais numeros
  }
}


void acende1()
{
  digitalWrite(segE,LOW);
  digitalWrite(segD,LOW);
  digitalWrite(segC,HIGH);
  digitalWrite(segB,HIGH);
  digitalWrite(segA,LOW);
  digitalWrite(segF,LOW);
  digitalWrite(segG,LOW); 
}
void acende2()
{
  digitalWrite(segE,HIGH);
  digitalWrite(segD,HIGH);
  digitalWrite(segC,LOW);
  digitalWrite(segB,HIGH);
  digitalWrite(segA,HIGH);
  digitalWrite(segF,LOW);
  digitalWrite(segG,HIGH); 
}
void acende3()
{
  digitalWrite(segE,LOW);
  digitalWrite(segD,HIGH);
  digitalWrite(segC,HIGH);
  digitalWrite(segB,HIGH);
  digitalWrite(segA,HIGH);
  digitalWrite(segF,LOW);
  digitalWrite(segG,HIGH);
}
void acende4()
{
  digitalWrite(segE,LOW);
  digitalWrite(segD,LOW);
  digitalWrite(segC,HIGH);
  digitalWrite(segB,HIGH);
  digitalWrite(segA,LOW);
  digitalWrite(segF,HIGH);
  digitalWrite(segG,HIGH);
}
void acende5()
{
  digitalWrite(segE,LOW);
  digitalWrite(segD,HIGH);
  digitalWrite(segC,HIGH);
  digitalWrite(segB,LOW);
  digitalWrite(segA,HIGH);
  digitalWrite(segF,HIGH);
  digitalWrite(segG,HIGH);
}
void acende6()
{
  digitalWrite(segE,HIGH);
  digitalWrite(segD,HIGH);
  digitalWrite(segC,HIGH);
  digitalWrite(segB,LOW);
  digitalWrite(segA,HIGH);
  digitalWrite(segF,HIGH);
  digitalWrite(segG,HIGH);
}


     Após carregar o código no Arduino, você pode apertar a chave táctil várias vezes e ver os números que são sorteados.

Os componentes deste tutorial pode ser comprados AQUI!

Sensor de passagem com laser


     Neste projeto vamos aprender a fazer um controle de passagem com laser. O fato de estarmos utilizando um lazer possibilita que a distância monitorada seja maior.

LISTA DE COMPONENTES:


1 - Arduino Uno;
1 - LED;
1 - Resistor de 220 ohms
1 - Resistor de 1000 ohms
1 - Protobord;
1 - LDR;
Alguns jumpers;


Sobre o principais componentes:


     Módulo Laser Ky-008 , possuí 3 terminais, “S” de sinal, “-“ conectado ao negativo da fonte de alimentação e o terminal central que deve ser conectado ao positivo da fonte de alimentação, suas principais características são:

• Tensão de Operação: 5v
• Potência: 5mW
• Comprimento de onda: 650N.m OD 6 milímetros

Nota: A luz do laser pede ser perigosa se emitida diretamente aos olhos.


     O LDR, Resistor Dependente de Luz ou fotorresistência, é um componente eletrônico passivo do tipo resistor variável, mais especificamente, é um resistor cuja resistência varia conforme a intensidade da luz que incide sobre ele.


Circuito a ser montado:

     O pino A0 do Arduino irá receber 5V quando a luz recebida pelo LDR do laser for interrompida, fazendo com que os pinos digitais 6 e 7 acionem o LED e o Buzzer ativo.  


Programando o Arduino:

     O código abaixo fará com que o buzzer ativo e o LED sejam acionados quando a luz do laser for interrompida.

Código.


     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

int sensorPin=A0;
int sensorValue=0;

void setup(){
 
pinMode(sensorPin,INPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
digitalWrite(7,HIGH);
digitalWrite(6,LOW);

}
void loop(){
sensorValue=analogRead(sensorPin);
if(sensorValue<=1000)
{
digitalWrite(7,HIGH);
} else
{
digitalWrite(7,LOW);
}
sensorValue=1000;
}


     Após carregar o código no Arduino, você pode interromper a luz que o laser emite sobre o LDR, o Buzzer e o LED serão acionados.

Os componentes deste tutorial pode ser comprados AQUI!

sexta-feira, 12 de abril de 2019

Controlando LED RGB com Arduino


     Neste projeto vamos aprender a controlar as cores de um LED RGB com o auxilio do Arduino.

LISTA DE COMPONENTES:


1 - Arduino Uno;
1 - LED RGB de 4 terminais
3 - Resistores de 220 ohms
1 - Potenciômetro de 2 K ohms
1 - Protobord;
Alguns jumpers;


Sobre o principais componentes:


     LED RGB com 4 terminais, anodo comum. Possui 4 terminais um para a cor vermelha, outro para a cor verde, outro para a cor azul e o quarto terminal é comum. Pode se dizer que são 3 LEDs em um, o consumo é de aproximadamente 20 mA para cada terminal.



     Potenciômetro, tem a característica de variar a resistência elétrica conforme a ação em seu eixo, no nosso caso, conforme se gira o eixo. Veja que os terminais A e B, da figura abaixo, são fixos e tem uma resistência fixa. O terminal W está ligado a um cursos que está em contato com a trilha e conforme desliza nesta trilha altera a resistência entre o terminal central e os laterais.




Circuito a ser montado:



     O pino digital 3 do Arduino é ligado ao “red Cathode” do diodo, o pino digital 5 é ligado ao “blue cathode”, o pino digital 6 é ligado ao “ green cathode” e o 5V é ligado ao “commonn anode”, lembrando deve ser colocado um resistor em série, para limitar a corrente, nos os pinos 3, 5 e 6.
    O controle fica por conta de um potenciômetro de 2K ohms ligado ao pino A2, 5V e GND do Arduino.    



Programando o Arduino:


     O código abaixo fará com que ao girar o potenciômetro, as tensões, nos pinos 3, 5 e 6 mudem, assim com tensões diferentes mos terminais do LED ele mudará de cor.

Código:


     Copie e cole o código abaixo na tela do Arduino IDE. Em seguida execute-o.

int pinPotenciometer = 2;
int pinRed = 3;
int pinBlue = 5;
int pinGreen = 6;
float h;                     // Hue range
int h_int;                 // Hue color
int r = 0, g = 0, b = 0;   // Default RGB values

int val = 0;               // Set POT value to default 0

// Instantiate h2rgb and it's variables  a.k.a  Hue to RGB
void h2rgb(float h, int& R, int& G, int& B);

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  val = analogRead(pinPotenciometer);    // Read the pin and display the value
  h = ((float)val) / 1024;               // Get the range. pot value / 1024
  h_int = (int) 360*h;                   // Get the color hue by multiplying by 360

  h2rgb(h,r,g,b);                        // Call the h2rgb function passing it the hue value

  Serial.print("POT value: ");
  Serial.print(val);           // Pot value
  Serial.print(" = Hue of ");
  Serial.print(h_int);         // Color Hue value
  Serial.print(" degrees. RGB values: ");
  Serial.print(r);             // Red value
  Serial.print(" ");
  Serial.print(g);             // Green value
  Serial.print(" ");
  Serial.println(b);           // Blue value

  analogWrite(pinRed, r);        // Changes red led
  analogWrite(pinGreen, g);        // Changes green led
  analogWrite(pinBlue, b);        // Changes blue led

}

void h2rgb(float h, int& R, int& G, int& B) {
  // Used HSV --> RGB function
  // HSV - Hue, Saturation, Value
  // RGB - Red, Green, Blue - example (255,255,255)
  // Function below does a bunch of math to convert HSV values to RGB
  int var_i;
  float S=1, V=1, var_1, var_2, var_3, var_h, var_r, var_g, var_b;

  if ( S == 0 )                       //HSV values = 0 ÷ 1
  {
    R = V * 255;
    G = V * 255;
    B = V * 255;
  }
  else
  {
    var_h = h * 6;
    if ( var_h == 6 ) var_h = 0;      //H must be < 1
    var_i = int( var_h ) ;            //Or ... var_i = floor( var_h )
    var_1 = V * ( 1 - S );
    var_2 = V * ( 1 - S * ( var_h - var_i ) );
    var_3 = V * ( 1 - S * ( 1 - ( var_h - var_i ) ) );

    if      ( var_i == 0 ) {
      var_r = V     ;
      var_g = var_3 ;
      var_b = var_1 ;
    }
    else if ( var_i == 1 ) {
      var_r = var_2 ;
      var_g = V     ;
      var_b = var_1 ;
    }
    else if ( var_i == 2 ) {
      var_r = var_1 ;
      var_g = V     ;
      var_b = var_3 ;
    }
    else if ( var_i == 3 ) {
      var_r = var_1 ;
      var_g = var_2 ;
      var_b = V     ;
    }
    else if ( var_i == 4 ) {
      var_r = var_3 ;
      var_g = var_1 ;
      var_b = V     ;
    }
    else                   {
      var_r = V     ;
      var_g = var_1 ;
      var_b = var_2 ;
    }

    R = (1-var_r) * 255;                  //RGB results = 0 ÷ 255
    G = (1-var_g) * 255;
    B = (1-var_b) * 255;
  }
}


     Após carregar o código no Arduino, você pode girar o potenciômetro, as cores do LED deverão mudar.

Os componentes deste tutorial pode ser comprados AQUI!


Testando controle remoto infravermelho no Arduino


    Neste projeto vamos aprender a montar um testador de controle remoto infravermelho utilizando um receptor de infravermelho no Arduino. Isso é útil para os casos em que temos dúvidas se um controle de uma TV, por exemplo , está funcionando.  


LISTA DE COMPONENTES:


1 - Arduino Uno;
1 - Controle remoto IR para teste;
1 - Receptor IR;
1 - Protobord;
Alguns jumpers;


Sobre o principal componente:


     Existem vários receptores de Infravermelho, abaixo mostro alguns modelos.

VS1838 - Receptor Infravermelho Universal

     Se trata de um receptor infravermelho miniaturizado para controle e outras aplicações que exigem melhor rejeição de luz ambiente.



TSOP38238 - Receptor Infravermelho

Se trata de um receptores para sistemas de controle remoto infravermelho.



Nota: O circuito para aplicação é o circuito a ser montado sugerido pelo fabricante.


KY-022

     O Módulo receptor infravermelho modelo KY-022 para utilização em projetos eletrônicos de sistemas de controle remoto por IR, alarmes e outras aplicações.      O módulo contém um receptor IR 1838 que funciona com tensões entre 2,7 e 5,5V comunicando-se com o microcontrolador por meio de um único pino de sinal.


Circuito a ser montado:




Programando o Arduino:



      Para que a placa Arduino leia os códigos do controle remoto, precisamos de uma biblioteca externa, a biblioteca IRremote, você pode obter a biblioteca IRremote AQUI !  


     Baixe a biblioteca, clicando em "Clone or download" e depois em "Download ZIP".



    Carregue a biblioteca .ZIP na biblioteca do Arduino IDE.



    E então executamos o código abaixo para identificar os códigos dos botões do controle.

(Nota: Se você tiver algum erro ao executar esta biblioteca, remova “IRremoteTools.cpp” das bibliotecas \ RobotIRremote \ IRremoteTools.cpp)

Código Arduino para receber IR como código hexadecimal:


#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Inicia o receptor
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Recebe o próximo valor
  }
}

     Abra o monitor serial, na lupa, para ver os códigos emitidos pelo controle remoto.


     Ao apertar alguns botões, no controle remoto, em direção ao receptor, com o monitor serial aberto verá que estes códigos aparecerão na tela.

     No caso acima foram recebidos os códigos: FF807F, FFA05F e FF906F.

     Assim verificamos o funcionamento do controle remoto.

Os componentes deste tutorial pode ser comprados AQUI!

quinta-feira, 11 de abril de 2019

Medindo resistência com o Arduino


     Neste artigo vamos aprender a utilizar o Arduino para medir o valor de resistência elétrica de um resistor. Isto pode ser muito útil quando não se tem um Ohmímetro ou multímetro.
     Na prática testei resistores de 100 à 20000 ohms, os valores medidos foram próximos do valor real, e dentro da margem de tolerância.
       

Componentes necessários:

1 Arduino Uno;
jumpers M&M;
1 Protobord
1 Resistor de 1000 ohms
Vários resistores para testar.

Estes e outros componentes podem ser adquiridos neste link AQUI !

 Montagem:

      No espaço do R. teste deve ser inserido o resistor  que se quer testar. O pino A0 está ligado entre o resistor de 1000 ohms e o R. teste.


Programando o Arduino: 



    O programa abaixo faz com que o Arduino leia as informações recebidas no pino A0 e converta em um valor de resistência. O valor medido é mostrado no monitor serial do Arduino IDE.

   Copie e cole o código abaixo no ARDUINO IDE e execute-o.

Código:


void setup() {
    Serial.begin(9600);
}

void loop() {
 
  float tensao = (float)analogRead(A0)*5/1023;

 
  float R1 = (1000*5 - tensao*1000)/tensao;

 
  Serial.println(R1);

 
  delay(1000);
}


     Após carregar o código no arduino, clique na lupa do Arduino IDE. Isto irá abrir a tela do monitor serial e lá será mostrado o valor do R. teste.



     Troque o R. teste por valores diversos, o valor da resistência será mostrado no monitor serial.

Os componentes deste tutorial pode ser comprados AQUI!



Chave táctil acionando um LED


     Neste artigo vamos aprender a utilizar a chave táctil para acionar um LED.
     Vai funcionar assim, quando a chave táctil for acionada o LED acenderá e apagará quando a chave táctil for acionada novamente.

Sobre o principal componente:

      A chave táctil ou push button de 4 terminais possibilita que quando houver toque no botão o circuito feche entre os terminais 1 e 2 e os terminais 3 e 4.


Componentes necessários:

1 Arduino Uno;
1 Chave táctil;
 jumpers M&M;
1 LED
1 Protobord
2 Resistor de 220 ohms

Estes e outros componentes podem ser adquiridos neste link AQUI :


Montagem:


     O pino digital 2 vai acionar o LED, o pino digital 12 vai receber o sinal quando a chave táctil for acionada. O resistor de 220 ohms junto ao LED serve para limitar a corrente. A tensão, no resistor de 220 ohms junto a chave, muda de valor, de 0V à 5V, conforme o acionamento da chave.


Programando o Arduino: 


    O programa abaixo faz com que o Arduino leia as informações recebidas no pino digital 2, quando a chave táctil for acionada o sinal mudará de 0V(Low)  para 5V (High),  essa informação fará com que o LED acenda, para um primeiro pulso na chave, e apague para um segundo pulso na chave.

   Copie e cole o código abaixo no ARDUINO IDE e execute-o.

Código:


int led=2; // define como led o pino 2
int botao=12; // define como botão o pino 12
int var=0;
int var2=0;
int estado=0; // guarda o valor 0 ou 1 (High ou Low)
void setup()
{
pinMode(led,OUTPUT);
pinMode(botao,INPUT);
}
void loop()
{
var=digitalRead(botao); // ler o valor enviado pelo botão: "High" ou "Low"
if ((var == HIGH) && (var2 == LOW)) {
estado = 1 - estado;
delay(20); // de-bouncing
}
var2=var;
if (estado == 1) {
digitalWrite(led, HIGH); // liga o led
} else {
digitalWrite(led, LOW); // desliga o led
}
}


     Você pode trocar o LED por um Relé, e assim pode acionar outros componentes.

Os componentes deste tutorial pode ser comprados AQUI!