Projetos

8 Novos Projetos com o Arduino

Eletrogate 7 de abril de 2022

Introdução

Já teve aquela vontade de criar um projeto diferente, mas estava sem criatividade e acabou não fazendo nada? Se sim, este post é para você! Neste tutorial, vamos ver 8 projetos incríveis com o Arduino, que você pode fazer na sua casa! Para aqueles que são novos por aqui, o Arduino é uma plataforma de prototipagem eletrônica de hardware livre, ou seja, podemos usá-lo para criar o que quisermos, a imaginação é o limite. Se você já segue o nosso blog, deve estar familiarizado com outros tutoriais por aqui. Hoje, veremos diversos projetos sendo trabalhados com display, LED’s, sensores e muito mais. Os projetos, juntos dos conhecimentos adquiridos neste post, são ótimas fontes de inspiração para seus futuros projetos, sejam eles profissionais ou apenas um hobby.


Projeto 1 - Display LCD 16x2

Neste tutorial, iremos utilizar o Display LCD 16×2 para imprimir uma mensagem na tela do LCD, partindo da função lcd.print() presente na biblioteca LiquidCrystal.h. Além de descobrir como é feito a ligação correta do LCD ao Arduino, no final você também verá dicas de melhorias e adaptações que você mesmo pode fazer.

Materiais necessários para o projeto com Display 16×2

Para isso, será necessário que você tenha:

Diagrama esquemático

Conforme o diagrama esquemático acima, faremos as ligações do LCD ao Arduino da seguinte maneira, segue a tabela:

Como no diagrama acima, você pode fazer as ligações do GND e do 5V na protoboard. Após as ligações da tabela terem sido feitas, você também deve ligar o potenciômetro ao GND, VE (3° terceiro pino do display) e o 5V.

Programação

Como dito antes, neste post, iremos utilizar a  função lcd.print() presente na biblioteca LiquidCrystal.h. Como está na programação abaixo, além de incluirmos a biblioteca, definimos as portas do LCD.

#include <LiquidCrystal.h> //Inclui a biblioteca do LiquidCrytal
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Declara as portas de saída para o LCD
void setup() {
  lcd.begin(16, 2); //Inicia a escrita no LCD
  lcd.print("BLOG ELETROGATE");//Exibe a mensagem que irá imprimir
}
void loop() {
  lcd.setCursor(0, 1); //Define o cursor em (0,1)
  lcd.print(millis()/1000); //Faz a contagem do tempo e o mostra na tela do LCD
  lcd.print("s"); //Escreve a letra s para representar os segundos
}

 

Acima podemos ver que na função descrita logo aparece a mensagem que desejamos escrever, neste caso “BLOG ELETROGATE” é a nossa mensagem.

Demonstração

Na demonstração abaixo veremos que o potenciômetro tem a função de regular a luminosidade do visor, além de vermos a mensagem “BLOG ELETROGATE” aparecer no mesmo, junto com os segundos de exibição.

Você pode incrementar essa função em algum projeto que haja interação. Por exemplo, você pode usar essa função para dizer a temperatura de um ambiente junto com um sensor, na rega automática e muito mais. São muitas as possibilidades.


Projeto 2 - Pisca Pisca Ajustável

Este projeto consiste em ajustar a frequência de acionamento de um LED por meio de um potenciômetro.

Materiais necessários para o projeto Pisca Pisca Ajustável

Diagrama esquemático

Encaixe o Arduino Nano na protoboard, conecte o LED ao GND por meio de um resistor de 220 Ω no catodo e diretamente à porta digital 11 do Arduino no anodo. Por fim, faça as conexões de GND e 5V do Potenciômetro de 10 kΩ e o conecte na porta analogica do Arduino, conforme a imagem abaixo:

Programação

int potPin = 0; //Declara porta A0 do potênciometro
int ledPin = 11; //Declara a porta D11 para o LED
int val = 0; //Declara o valor inicial como zero
void setup(){
  pinMode(ledPin, OUTPUT); //Declara porta do LED como saída
}
void loop(){
  val = analogRead(potPin); //Le o valor do potênciometro
  digitalWrite(ledPin, HIGH); //Liga o Led
  delay(val); //Lê o valor do potênciometro e dá o tempo
  digitalWrite(ledPin, LOW); //Desliga o LED
  delay(val); //Lê o valor do potênciometro e dá o tempo
}

Demonstração

No vídeo abaixo, podemos perceber que, conforme oscilamos o potenciômetro, a frequência do LED aumenta e diminui.

Com algumas adaptações e substituições de componentes, você pode criar uma lanterna fixa ou com variação de frequência e luminosidade, ou seja, uma lanterna pisca pisca.


Projeto 3 - Semáforo de Carros e Pedestres

Este tutorial consiste em colocar dois semáforos: um para os carros e outro para os pedestres do trânsito.

Materiais necessários para o projeto Semáforo de Carros e Pedestres

Diagrama esquemático

Conforme o diagrama abaixo, iremos distribuir os LEDs pela Protoboard e ligar os resistores nos catodos de cada LED do circuito, além de fazer as devidas conexões no GND. Devemos fazer a ligação do push botton ao 5V e à porta digital 2 do Arduino.

Agora, devemos ligar cada LED do semáforo de carros (sc) ao Arduino: vermelho, amarelo e verde às portas digitais 12, 11 e 10 respectivamente. Para os LEDs do semáforo de pedestres (sp), os LEDs vermelho e verde devem ser conectados às portas 9 e 8 digitais do Arduino, respectivamente. 

Lembre-se de fazer as conexões de GND e 5V na Protoboard além de conectar os mesmo ao Arduino Uno.

Programação

int scVerde = 10; //Define a pota D10 do LED verde do sc
const int scAmarelo = 11; //Define a pota D11 do LED amarelo do sc
const int scVermelho = 12; //Define a pota D12 do LED vermelho do sc
const int spVerde = 8; //Define a pota D8 do LED verde do sp
const int spVermelho = 9; //Define a pota D9 do LED vermelho do sp
int ledState = LOW; //Define o estado do LED como desligado
long previousMillis = 0; //Começa a contar o tempo do zero
long interval = 5000; //Tempo de intervalo de 5000 milissegundos
int ctrlLuz = 0; //define o valor de mudança das luzes igual a 0
void setup() {
  Serial.begin(9600);
  pinMode(scVerde,OUTPUT); //Define a porta do LED como saída
  pinMode(scAmarelo,OUTPUT); //Define a porta do LED como saída
  pinMode(scVermelho,OUTPUT);//Define a porta do LED como saída
  pinMode(spVerde,OUTPUT); //Define a porta do LED como saída
  pinMode(spVermelho,OUTPUT); //Define a porta do LED como saída
  pinMode(2, INPUT); // Botao //Define a porta do botão como entrada
}
void loop() {
  unsigned long currentMillis = millis(); //O tempo dos milissegundos começa a correr
  int sensorValue = digitalRead(2); //O valor da porta D2 é lido
  if(currentMillis - previousMillis > //A variavel entra em ação após a leitura da porta 2
  interval) {
    previousMillis = currentMillis; //Os milessegundos previstos são iguais a corrente por milessegundo
    switch(ctrlLuz) { //O botão é precionado
      case 0 : // O valor faz com que ele fassa o semafaro de pedreste fique verde
        digitalWrite(scVermelho,LOW); //O LED do sc é desligado
        digitalWrite(scVerde,HIGH); //O LED do sc é ligado
        digitalWrite(spVerde,LOW); //O LED do sc é desligado
        digitalWrite(spVermelho,HIGH); //O LED do sc é ligado
        ctrlLuz++;
        interval = 15000; //Há um intervalo de 15 segundos
      break; //Mudança de estados dos LEDS
      case 1 : // O caso 1 é acionado (Amarelo)
        digitalWrite(scVerde,LOW); //O LED do sc é desligado
        digitalWrite(scAmarelo,HIGH);//O LED do sc é ligado
        digitalWrite(spVerde,LOW); //O LED do sp é desligado
        digitalWrite(spVermelho,HIGH);//O LED do sp é ligado
        ctrlLuz++;
        interval = 1000; //Há o intervalo de 1 segundo
      break;//Mudança de estados dos LEDS
      case 2 : // O caso 2 é acionado (Vermelho)
        digitalWrite(scAmarelo,LOW); //O LED do sc é desligado
        digitalWrite(scVermelho,HIGH);//O LED do sc é ligado
        digitalWrite(spVermelho,LOW);//O LED do sp é desligado
        digitalWrite(spVerde,HIGH);//O LED do sp é ligado
        interval = 7000; //Intervalo de 7 segundos
        ctrlLuz = 0;
      break;//Mudança de estado
    }
  }
  //Abaixo o valor do botão (Sensor) é lido novamente e o valor é redefino para diferente de 0, caso não haja mudança no estado o ciclo recomeça
  if((sensorValue == 1) && (ctrlLuz == 1)) {
    interval = 2000;
    Serial.print("Sensor ");
    Serial.println(sensorValue, DEC);
  }
}

Funcionamento

O sinal irá funcionar da seguinte maneira:

  • Quando o sinal do sc estiver verde ou amarelo, o sinal vermelho dos pedestres estará aceso;
  • Já quando o sinal vermelho do sc estiver aceso, o sinal verde dos pedestre deverá estar aceso;
  • Caso o botão seja pressionado, a preferência de passagem pela rua será dos pedestres.

Demonstração


Projeto 4 - Termômetro

Neste novo tutorial, iremos simular um termômetro com o Arduino, utilizando LEDs e um sensor de temperatura.

Materiais necessários para o projeto Termômetro

Para este projeto, será necessário:

Diagrama esquemático

Ligação

  • Conecte o LED verde à porta digital 8 do Arduino Uno e faça a mesma conexão com o outro LED verde na porta digital 9 do Arduino Uno;
  • Conecte o LED amarelo à porta digital 10 do Arduino Uno e faça a mesma conexão com o outro LED amarelo na porta digital 11 do Arduino Uno;
  • Conecte o LED vermelho à porta digital 12 do Arduino Uno e faça a mesma conexão com o outro LED vermelho na porta digital 13 do Arduino Uno;
  • Conecte o Buzzer à porta digital 6 do Arduino Uno e, por fim, conecte o Sensor de Temperatura à porta analógica 0 (A0) do Arduino Uno.

Não se esqueça de conectar o GND e o 5V do Arduino na Protoboard, além de fazer as devidas conexões com os resistores, como mostra o diagrama acima.

Programação

int PinoSensor = 0;//Declara o pino A0 como entrada do sensor
int Buzzer = 6;//Define o pino D6 como Buzzer
int led1 = 8;//Define o LED 1 como porta D8
int led2 = 9;//Define o LED 2 como porta D9
int led3 = 10;//Define o LED 3 como porta D10
int led4 = 11;//Define o LED 4 como porta D11
int led5 = 12;//Define o LED 5 como porta D12
int led6 = 13;//Define o LED 6 como porta D13
int ValorSensor = 0;//Declara o valor inicial do sensor = 0
void setup() {
  pinMode(Buzzer, OUTPUT); //Porta do Buzzer é definida como saída
  pinMode(led1, OUTPUT); //Porta do LED 1 é definida como saída
  pinMode(led2, OUTPUT); //Porta do LED 2 é definida como saída
  pinMode(led3, OUTPUT); //Porta do LED 3 é definida como saída
  pinMode(led4, OUTPUT); //Porta do LED 4 é definida como saída
  pinMode(led5, OUTPUT); //Porta do LED 5 é definida como saída
  pinMode(led6, OUTPUT); //Porta do LED 6 é definida como saída
  Serial.begin(9600);
}
void loop(){
  ValorSensor = analogRead(PinoSensor);//É feito a leitura do pino do sensor
  Serial.print("Valor do Sensor = "); //Define o valor do sensor
  Serial.println(ValorSensor); //Escreve o valor do sensor
  if (ValorSensor > 30) //A função vai definir como cada LED será ligado dependendo do valor que o sensor mandar
    digitalWrite(led1, HIGH); //LED 1 liga
  else
   digitalWrite(led1, LOW); //LED 1 desliga
  if (ValorSensor > 35) //A função vai definir como cada LED será ligado dependendo do valor que o sensor mandar
   digitalWrite(led2, HIGH); //LED 2 liga
  else
   digitalWrite(led2, LOW); //LED 2 desliga
  if (ValorSensor > 40) //A função vai definir como cada LED será ligado dependendo do valor que o sensor mandar
    digitalWrite(led3, HIGH); //LED 3 liga
  else
    digitalWrite(led3, LOW); //LED 3 desliga
  if (ValorSensor > 45) //A função vai definir como cada LED será ligado dependendo do valor que o sensor mandar
   digitalWrite(led4, HIGH); //LED 4 liga
  else
   digitalWrite(led4, LOW); //LED 4 desliga
  if (ValorSensor > 50) //A função vai definir como cada LED será ligado dependendo do valor que o sensor mandar
   digitalWrite(led5, HIGH); //LED 5 liga
  else
    digitalWrite(led5, LOW); //LED 5 desliga
  if (ValorSensor > 55 ){ //A função vai definir como cada LED será ligado dependendo do valor que o sensor mandar
    digitalWrite(led6, HIGH); //LED 6 liga
    digitalWrite(Buzzer, HIGH); //Buzzer liga
  }
  else{
    digitalWrite(led6, LOW); //Led 6 desliga
    digitalWrite(Buzzer, LOW); //Buzzer desliga
  }
  delay(1000); //espera de 1000 milissegundos
}

 

Funcionamento

Quando o termômetro indicar uma situação crítica, o Buzzer será acionado para indicar a alta temperatura do local. Vejamos:

Se o Sensor de Temperatura NTC ler um valor maior que:

  • 30 = Ligar o 1° LED verde;
  • 35 = Ligar o 2° LED verde;
  • 40 = Ligar o 1° LED amarelo;
  • 45 = Ligar o 2° LED amarelo;
  • 50 = Ligar o 1° LED vermelho;
  • 55 = Ligar o 2° LED vermelho e simultaneamente ligar o Buzzer.

Projeto 5 - Piano

Neste novo projeto iremos produzir toques musicais aos quais LED’s correspondentes acenderão.

Materiais necessários para o projeto Piano

Para este projeto, será necessário:

  • Um Arduino Uno + Cabo de dados;
  • Uma Protoboard 830 Pontos;
  • Jumpers Macho 20 cm (40x);
  • 3 push buttons 6x6x6 mm;
  • 6 Resistores de 220 Ω;
  • LED difuso Vermelho;
  • LED difuso Verde;
  • LED difuso Amarelo;
  • Um Buzzer ativo 5 V;

Diagrama esquemático

Conecte cada Push Button às portas digitais 4, 3 e 2. Em seguida, conecte o Buzzer à porta digital 10 do Arduino Uno. Conecte o LED verde à porta digital 12 do Arduino, o LED amarelo deve ser conectado à porta digital 11 e por fim o LED vermelho deve ser conectado a porta digital 10 do Arduino Uno.

Não se esqueça de ligar os resistores aos LEDs e aos Push Buttons como mostra o diagrama acima, além de fazer as devidas conexões de 5V e GND do Arduino Uno à Protoboard.

Programação

const int ledPin1 = 13; //Define a porta D13 como LED 1
const int ledPin2 = 12; //Define a porta D12 como LED 2
const int ledPin3 = 11; //Define a porta D11 como LED 2
const int Botao1 = 2; //Define a porta D2 como botão 1
const int Botao2 = 3; //Define a porta D3 como botão 2
const int Botao3 = 4; //Define a porta D4 como botão 3
const int Buzzer = 10; //Define a porta D10 como Buzzer
int EstadoBotao1 = 0; //Estado inicial do botão1 é = 0
int EstadoBotao2 = 0; //Estado inicial do botão2 é = 0
int EstadoBotao3 = 0; //Estado inicial do botão3 é = 0
int Tom = 0; //Tom inicial é = 0
void setup() {
  pinMode(Buzzer, OUTPUT); //Define a porta do Buzzer como saída
  pinMode(ledPin1, OUTPUT); //Define a porta do LED 1 como saída
  pinMode(Botao1, INPUT); //Define a porta do botão 1 como entrada
  pinMode(ledPin2, OUTPUT); //Define a porta do LED 2 como saída
  pinMode(Botao2, INPUT); //Define a porta do botão 2 como entrada
  pinMode(ledPin3, OUTPUT); //Define a porta do LED 3 como saída
  pinMode(Botao3, INPUT); //Define a porta do botão 3 como entrada
}
void loop(){
  EstadoBotao1 = digitalRead(Botao1); //É feito a leitura do estado do botão 1
  EstadoBotao2 = digitalRead(Botao2); //É feito a leitura do estado do botão 2
  EstadoBotao3 = digitalRead(Botao3); //É feito a leitura do estado do botão 3

  //A variável abaixo irá acionar um tom do Buzzer e um Led de acordo com os estados dos botões
  if(EstadoBotao1 && !EstadoBotao2 &&
    !EstadoBotao3) {
    Tom = 50;
    digitalWrite(ledPin1, HIGH); //LED 1 liga
  }
  //A variável abaixo irá acionar um tom do Buzzer e um Led de acordo com os estados dos botões
  if(EstadoBotao2 && !EstadoBotao1 &&
    !EstadoBotao3) {
    Tom = 400;
    digitalWrite(ledPin3, HIGH); //LED 3 liga
  }
  //A variável abaixo irá acionar um tom do Buzzer e um Led de acordo com os estados dos botões
  if(EstadoBotao3 && !EstadoBotao2 &&
    !EstadoBotao1) {
    Tom = 1000;
    digitalWrite(ledPin2, HIGH); //LED 2 liga
  }
  while(Tom > 0){
    digitalWrite(Buzzer, HIGH); //Buzzer liga
    delayMicroseconds(Tom); //Tempo de espera do Tom
    digitalWrite(Buzzer, LOW); //Buzzer desliga
    delayMicroseconds(Tom); //Tempo de espera do Tom
    Tom = 0;
    digitalWrite(ledPin1, LOW); //LED 1 desliga
    digitalWrite(ledPin2, LOW); //LED 2 desliga
    digitalWrite(ledPin3, LOW); //LED 3 desliga
  }
}

Projeto 6 - Alarme

Neste projeto iremos construir um alarme que irá emitir um sinal sonoro a partir do Buzzer e acender o LED quando algum objeto estiver a menos de 30 cm do raio de alcance do sensor infravermelho

Materiais necessários para o projeto Alarme

Neste projeto, será necessário que você tenha os seguinte materiais:

  • Um Arduino Uno + Cabo de dados;
  • Uma Protoboard 830 Pontos;
  • Jumpers Macho 20 cm (40x);
  • Resistor de 220 Ω;
  • LED difuso Vermelho;
  • Um Buzzer ativo 5 V;
  • Um Sensor Infravermelho.

Diagrama esquemático

Conecte o LED vermelho à porta digital 12 do Arduino Uno e use o resistor de 220 Ω nesta ligação. Conecte o sensor infravermelho à porta analógica 0 (A0), o GND e o 5V. Por fim, faça a ligação do Buzzer ao GND e à porta digital 10.

Lembre-se, não se esqueça de fazer as ligações da Protoboard no GND e no 5V, além de conectá-los a estas saídas do Arduino Uno.

Programação

int LED = 13; //Porta D13 é definido como LED
int buzzer = 10; //Porta D10 é definido como Buzzer
int sharp = 0; //Porta A0 é definida como sensor
void setup() {
  pinMode(sharp,INPUT); //Porta do sensor é definida como entrada
  pinMode(buzzer,OUTPUT); //Porta do Buzzer é definida como saída
  pinMode(LED,OUTPUT); //Porta do LED é definida como saída
}
void loop() {
  int ir = analogRead(sharp); //Leitura da porta analogica do sensor é feita
  if(ir>150) { //Se o valor for menor que 150 o LED e o Buzzer são acionados
    digitalWrite(LED, HIGH); //LED liga
    digitalWrite(buzzer, HIGH); //Buzzer liga
  }else { //Depois
    digitalWrite(LED, LOW); //Led desliga
    digitalWrite(buzzer, LOW); //Buzzer desliga
  }
}

Funcionamento

Como dito acima, este alarme irá disparar quando algo estiver no seu raio de alcance de 30 cm, não há segredo para este projeto. Você pode utilizá-lo em diferentes ocasiões, seja um alarme de segurança, um sensor de estacionamento na sua garagem e muito mais, a sua imaginação é o limite.


Projeto 7 - Alarme Multipropósito

Partindo do projeto anterior, neste tutorial iremos criar um alarme mais complexo.

Materiais necessários para o projeto Alarme Multipropósito

Você precisará dos seguintes materiais:

  • Um Arduino Uno + Cabo de dados;
  • Uma Protoboard 830 Pontos;
  • Jumpers Macho 20 cm (40x);
  • 7 resistores de 220 Ω;
  • Um Buzzer;
  • 2 LED difuso vermelho;
  • 2 LED difuso verde;
  • 2 LED difuso amarelo;
  • 2 resistores de 1 kΩ;
  • Um Sensor de Temperatura NTC 5mm 10 k;
  • Um Sensor de Luminosidade LDR;
  • Um LED branco de alto brilho.

Diagrama esquemático

Conforme o diagrama abaixo, as ligações dos LEDs devem ser da seguinte maneira: do primeiro ao último LED deverão ser conectados às portas digitais do 5 ao 11, respectivamente nesta ordem. Lembrando de que em cada uma destas conexões os circuitos devem passar por um resistor de 220 Ω, além de conectar o outro terminal dos LEDs ao GND.

O Buzzer deve ser conectado ao GND e depois à porta digital 2 do Arduino Uno. Em seguida, o Sensor de Temperatura NTC deve ser conectado à porta analógica 1 (A1) e o Sensor de Luminosidade à porta analógica 0 (A0). Faltando ainda o resistor de 1KΩ, a ser ligado a cada sensor, como mostra o diagrama acima.

Não se esqueça de fazer as devidas ligações da Protoboard no GND e no 5V, além de conectá-las às saídas do Arduino Uno.

Programação

const int LDR = 0; //Porta A0 é definida como porta do LDR
const int NTC = 1; //Porta A1 é definida como porta do NTC
const int Buzzer = 2; //Porta D2 é definida como Buzzer
const int led1 = 5; //Porta D5 é definida como LED1
const int led2 = 6; //Porta D6 é definida como LED2
const int led3 = 7; //Porta D7 é definida como LED3
const int led4 = 8; //Porta D8 é definida como LED4
const int led5 = 9; //Porta D9 é definida como LED5
const int led6 = 10; //Porta D10 é definida como LED6
const int ledAB = 11; //Porta D11 é definida como LEDAB
int ValorLDR = 0; //O valor inicial so LDR é = 0
int ValorNTC = 0; //O valor inicial so NTC é = 0

void setup(){
    
  pinMode(Buzzer, OUTPUT); //A porta Buzzer é definida como saída
  pinMode(led1, OUTPUT); //A porta LED1 é definida como saída
  pinMode(led2, OUTPUT); //A porta LED2 é definida como saída
  pinMode(led3, OUTPUT); //A porta LED3 é definida como saída
  pinMode(led4, OUTPUT); //A porta LED4 é definida como saída
  pinMode(led5, OUTPUT); //A porta LED5 é definida como saída
  pinMode(led6, OUTPUT); //A porta LED6 é definida como saída
  pinMode(ledAB, OUTPUT); //A porta LEDAB é definida como saída
  Serial.begin(9600);
}

void loop(){
    
  ValorLDR = analogRead(LDR); //É feito a leitura do LDR
  ValorNTC = analogRead(NTC); //É feito a leitura do NTC
  Serial.print("Valor da Temperatura = "); //Mostra o valor da temperatura
  Serial.println(ValorNTC); //Escreve o valor do NTC
  if (ValorNTC > 10) //Se o valor for menor que 10
    digitalWrite(led1, HIGH); //LED1 liga
  else //Depois
   digitalWrite(led1, LOW); //LED1 desliga
  if (ValorNTC > 20) //Se o valor for menor que 20
   digitalWrite(led2, HIGH); //LED2 liga
  else //Depois
    digitalWrite(led2, LOW); //LED2 desliga
  if (ValorNTC > 30){ //Se o valor for menor que 30
    digitalWrite(led3, HIGH); //LED3 liga
    digitalWrite(Buzzer, HIGH); //Buzzer liga
  }
  else{ //Depois
    digitalWrite(led3, LOW); //LED3 desliga
    digitalWrite(Buzzer, LOW); //Buzzer desliga
  }
  if (ValorLDR > 600) //Se o valor do LDR for menor que 600
    digitalWrite(led6, HIGH); //LED6 liga
  else //Depois
    digitalWrite(led6, LOW); //LED6 desliga
  if (ValorLDR > 500) //Se o valor do LDR for menor que 500
    digitalWrite(led5, HIGH); //LED5 liga
  else //Depois
    digitalWrite(led5, LOW); //LED5 desliga
  if (ValorLDR > 450){ //Se o valor do LDR for menor que 450
    digitalWrite(led4, HIGH); //LED4 liga
    digitalWrite(ledAB, LOW); //LEDAB desliga
  }
  else{ //depois
    digitalWrite(led4, LOW); //LED4 desliga
    digitalWrite(ledAB, HIGH); //LEDAB liga
  }
}

Funcionamento

Os 3 LEDs de cores diferentes irão indicar qual é a temperatura e os outros 3 indicarão a luminosidade do ambiente. O funcionamento do projeto funcionará da seguinte maneira.

  • Conforme a temperatura aumentar, os 3 LEDs responsáveis por indica-la irão ligar, um por um. Quando os 3 estiverem ligados, o Buzzer deve ligar, soando um alarme;
  • Se o local estiver com uma alta luminosidade, todos os outros 3 LEDs irão acender e, à medida que a luminosidade for diminuindo, eles irão apagar um por um. Se todos os LEDs ficarem apagados, o LED branco de alto brilho indicará falta de luminosidade total;
  • Se os 3 LEDs de temperatura estiverem acesos e os 3 de luminosidade estiverem apagados, então o alarme deve soar e o LED de alto brilho deve acender.

Projeto 8 - Portão Eletrônico

Neste último projeto, iremos utilizar um servo motor para simular um portão eletrônico, como aqueles que vemos em shoppings.

Materiais necessários para o projeto Portão Eletrônico

Para isso será necessário que você tenha:

Diagrama esquemático

Primeiro, você deve conectar o Arduino Nano à Protoboard. Em seguida, o Sensor Inframervelho, no qual iremos fazer as devidas conexões no GND e no 5V. Por fim, conectá-lo à porta analógica 0 (A0) do Arduino Nano.

O Servo Motor, você deve conectar ao GND e ao 5 V, como mostra o diagrama acima, e, no final, conectar o seu terceiro fio à porta digital 9 do Arduino Nano.

Não se esqueça de conectar o GND e o 5V do Arduino Nano a Protoboard.

Programação

#include <Servo.h> //Inclui a biblioteca do servo.h
const int sensor = 0; //Define a porta A0 como sensor
Servo myservo; //Declara a variável do servo como myservo

void setup() {
  myservo.attach(9); //Myservo é definido como porta digital 9
  pinMode(sensor, INPUT); //Define a porta do sensor como entrada
  Serial.begin(9600);
}

void loop(){
  int ir = analogRead(sensor); //Faz a leitura da porta analógica do sensor
  Serial.print(ir); //Escreve ir
  Serial.print(" ir"); //Define como ir
  Serial.println();
  if(ir > 450){ //Se o valor da leitura for menor que 450
    myservo.write(90); //O servo se move 90 graus
    delay (6000); //Espera de 6 segundos
    myservo.write(-90); //O servo volta 90 graus
  }
}

Funcionamento

Como dito acima, usaremos o Servo Motor para fazer a elevação de uma barra, simulando o funcionamento de um portão eletrônico. Também usaremos um Sensor Infravermelho para acionar o servo motor, como mostrado no diagrama esquemático.

Este projeto irá funcionar da seguinte maneira:

  • O Sensor Infravermelho irá medir a distância até o carro. Caso esta distância seja igual ou menor que a pré determinada (Exemplo: 30 cm), o Servo Motor deve ser acionado para girar 90° para a esquerda;
  • Uma vez que a distância seja maior que a pré determinada, o motor volta a sua posição inicial.

Considerações Finais

Acabados de desenvolver 8 projetos com simples aplicações e inúmeras possibilidades de uso e melhorias. Com estes 8 tutoriais, tenho certeza que você será capaz de criar novos projetos e até mesmo incrementá-los. O Arduino é um equipamento de prototipagem de fácil acesso. Com ele, temos inúmeras possibilidades e testes a serem feitos no mundo Maker. Esperamos que você tenha entendido e conseguido montar os seus projetos, qualquer dúvida mande nos comentários aqui em baixo. Gostou destes projetos e também construiu o seu? Avalie o nosso post. Fez adaptações e conseguiu resultados melhores ainda? Tire uma foto e nos marque no Instagram @Eletrogate. E, lembre-se, se ainda não tem seu Kit Arduino ou os componentes necessários para o seu projeto, entre em nossa loja e explore este mundo Maker.

Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.


Sobre o Autor


Gabriel Felizardo
@gabriel_felizardotv

Com ensino médio e técnico em eletrotécnica completos pelo SESI/SENAI. Gosto muito de eletrônica, tecnologias e temas envolvendo energia.
Trabalho nas redes sociais como vendedor e produtor de conteúdo digital. No meu tempo livre desenvolvo projetos envolvendo o Arduino, além de inventar muitas coisas.


Eletrogate

7 de abril de 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!