Você está na página 1de 27

8 Projetos Incríveis

com
8 PROJETOS INCRÍVEIS COM ARDUINO

O Arduino é uma plataforma incrível para desenvolver projetos, tanto


profissionais quanto apenas de hobby. Para ficar cada vez melhor e
desenvolver grandes projetos, o segredo é começar com projetos mais simples
e ir implementando-os.

Neste eBook você irá aprender os 8 projetos mais incríveis para começar a
dominar o Arduino.

1
PROJETO #1 – LCD

Este projeto consiste em como imprimir uma mensagem na tela do LCD


através da função lcd.print() contida na biblioteca LiquidCrystal.h. Além disso,
você verá como conectar corretamente o LCD ao Arduino.

Material:

 1x Arduino (Uno, Mega...)


 1x LCD 16x2
 1x Potenciômetro 10kΩ

Ligação:

Pino LCD Pino Arduino


VSS (1) GND
VDD (2) 5V
RS (4) 12
RW (5) GND
Enable (6) 11
D4 (11) 5
D5 (12) 4
D6 (13) 3
D7 (14) 2

Após fazer estas ligação, também se deve ligar o potenciômetro de 10kΩ aos
pinos 5V, GND e V0(3) do LCD. Veja como ficará a ligação na Imagem 1.

2
Imagem 1 – Ligação LCD ao Arduino

Programação:

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Hello World!");//mensagem que irá imprimir
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
lcd.print("s");
}

3
PROJETO #2 – Pisca-Pisca Ajustável

Este projeto consiste em ajustar a frequência com que um LED pisca. Esta
frequência dependerá diretamente do ajuste de um potenciômetro.

Material:

 1x Arduino
 1x Potenciômetro de 10kΩ
 1x LED
 1x Resistor de 220Ω

Ligação:

Conecte o potenciômetro de 10kΩ aos pinos 5V, GND e na porta 0 do Arduino.


Conecte o LED à porta 11, com o resistor de 220Ω, conforme a Imagem 2:

Imagem 2 – Ligação Potenciômetro e LED ao Arduino

4
Programação:

int potPin = 0;
int ledPin = 11;
int val = 0;
void setup(){
pinMode(ledPin, OUTPUT);
}
void loop(){
val = analogRead(potPin);
digitalWrite(ledPin, HIGH);
delay(val);
digitalWrite(ledPin, LOW);
delay(val);
}

5
PROJETO #3 – Semáforo de Carros e Pedestres

Neste projeto consiste em implementar dois semáforos: um para os carros e


outro para os pedestres.

O semáforo irá seguir a seguinte lógica:

 Quando o sinal do semáforo do carro estiver verde ou amarelo, o sinal


vermelho dos pedestres estará aceso;
 Quando o sinal vermelho do semáforo do carro estiver aceso, somente o
sinal verde do pedestre deve estar aceso;
 Caso o botão seja pressionado, a preferência de passagem pela rua é
do pedestre.

Material:

 1x Arduino
 2x LED vermelho
 2x LED verde
 1x LED amarelo
 1x Pushbutton
 6x Resistor 220Ω

6
Ligação:

Imagem 3

Programação:

int scVerde = 10;


const int scAmarelo = 11;
const int scVermelho = 12;
const int spVerde = 8;
const int spVermelho = 9;
int ledState = LOW;
long previousMillis = 0;
long interval = 5000;
int ctrlLuz = 0;

void setup() {

Serial.begin(9600);
pinMode(scVerde,OUTPUT);
7
pinMode(scAmarelo,OUTPUT);
pinMode(scVermelho,OUTPUT);
pinMode(spVerde,OUTPUT);
pinMode(spVermelho,OUTPUT);
pinMode(2, INPUT); // Botao
}

void loop() {

unsigned long currentMillis = millis();


int sensorValue = digitalRead(2);
if(currentMillis - previousMillis >
interval) {
previousMillis = currentMillis;
switch(ctrlLuz) {

case 0 : // Verde
digitalWrite(scVermelho,LOW);
digitalWrite(scVerde,HIGH);
digitalWrite(spVerde,LOW);
digitalWrite(spVermelho,HIGH);
ctrlLuz++;
interval = 15000;
break;

case 1 : // amarelo
digitalWrite(scVerde,LOW);
digitalWrite(scAmarelo,HIGH);
digitalWrite(spVerde,LOW);
digitalWrite(spVermelho,HIGH);
ctrlLuz++;
interval = 1000;
break;

case 2 : // Vermelho
digitalWrite(scAmarelo,LOW);
digitalWrite(scVermelho,HIGH);
digitalWrite(spVermelho,LOW);

8
digitalWrite(spVerde,HIGH);
interval = 7000;
ctrlLuz = 0;
break;
}

}
if((sensorValue == 1) && (ctrlLuz == 1)) {
interval = 2000;
Serial.print("Sensor ");
Serial.println(sensorValue, DEC);
}
}

9
PROJETO #4 – Termômetro

Neste projeto vamos simular um termômetro com o Arduino, utilizando LEDs e


um sensor de temperatura. Quando o termômetro indicar uma situação crítica,
um Buzzer será acionado para indicar a alta temperatura.

Se o sensor de temperatura 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 ligar o Buzzer;

Material:

 1x Arduino
 1x Buzzer
 1x Sensor de Temperatura NTC
 1x Resistor de 1kΩ
 6x Resistor de 220Ω
 2x LED Verde
 2x LED Amarelo
 2x LED Vermelho

Ligação:

 Conecte um LED verde na porta 8 e o outro na porta 9;


 Conecte um LED amarelo na porta 10 e o outro na porta 11;
 Conecte um LED vermelho na porta 12 e o outro na porta 13;
 Conecte o Buzzer na porta 6 e o Sensor de Temperatura na porta A0
(conforme indica a Imagem 4).

10
Imagem 4

Programação:

int PinoSensor = 0;
int Buzzer = 6;
int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;
int led5 = 12;
int led6 = 13;
int ValorSensor = 0;

11
void setup() {

pinMode(Buzzer, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
Serial.begin(9600);

void loop(){

ValorSensor = analogRead(PinoSensor);
Serial.print("Valor do Sensor = ");
Serial.println(ValorSensor);

if (ValorSensor > 30)


digitalWrite(led1, HIGH);
else
digitalWrite(led1, LOW);
if (ValorSensor > 35)
digitalWrite(led2, HIGH);
else
digitalWrite(led2, LOW);
if (ValorSensor > 40)
digitalWrite(led3, HIGH);
else
digitalWrite(led3, LOW);
if (ValorSensor > 45)
digitalWrite(led4, HIGH);
else
digitalWrite(led4, LOW);
if (ValorSensor > 50)
digitalWrite(led5, HIGH);
else

12
digitalWrite(led5, LOW);
if (ValorSensor > 55 ){
digitalWrite(led6, HIGH);
digitalWrite(Buzzer, HIGH);
}
else{
digitalWrite(led6, LOW);
digitalWrite(Buzzer, LOW);
}
delay(1000);
}

13
PROJETO #5 – Piano

Este projeto produzirá toques musicais e acenderá um LED à medida que um


botão é pressionado.

Material:

 1x Arduino
 1x Buzzer
 6x Resistores de 220Ω
 3x Pushbutton
 1x LED Verde
 1x LED Amarelo
 1x LED Vermelho

Ligação:

 Conecte cada botão às portas 2, 3 e 4;


 Conecte o Buzzer à porta 10;
 Conecte cada LED às portas 11, 12 e 13.

Imagem 5

14
Programação:

const int ledPin1 = 13;


const int ledPin2 = 12;
const int ledPin3 = 11;
const int Botao1 = 2;
const int Botao2 = 3;
const int Botao3 = 4;
const int Buzzer = 10;
int EstadoBotao1 = 0;
int EstadoBotao2 = 0;
int EstadoBotao3 = 0;
int Tom = 0;

void setup() {

pinMode(Buzzer, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(Botao1, INPUT);
pinMode(ledPin2, OUTPUT);
pinMode(Botao2, INPUT);
pinMode(ledPin3, OUTPUT);
pinMode(Botao3, INPUT);

void loop(){

EstadoBotao1 = digitalRead(Botao1);
EstadoBotao2 = digitalRead(Botao2);
EstadoBotao3 = digitalRead(Botao3);

if(EstadoBotao1 && !EstadoBotao2 &&


!EstadoBotao3) {
Tom = 50;
digitalWrite(ledPin1, HIGH);
}

15
if(EstadoBotao2 && !EstadoBotao1 &&
!EstadoBotao3) {
Tom = 400;
digitalWrite(ledPin3, HIGH);
}
if(EstadoBotao3 && !EstadoBotao2 &&
!EstadoBotao1) {
Tom = 1000;
digitalWrite(ledPin2, HIGH);
}
while(Tom > 0){
digitalWrite(Buzzer, HIGH);
delayMicroseconds(Tom);
digitalWrite(Buzzer, LOW);
delayMicroseconds(Tom);
Tom = 0;
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
}

16
PROJETO #6 – Alarme

Este projeto consiste em criar um alarme que irá emitir um som e acender o
LED quando algum objeto estiver a menos de 30cm do raio de alcance do
Sensor Infravermelho.

Material:

 1x Arduino
 1x LED Vermelho
 1x Resistor de 220Ω
 1x Sensor infravermelho
 1x Buzzer

Ligação:

 Conecte o LED ao pino 13 (utilize o Resistor).


 Conecte o Sensor ao pino A0.
 Conecte o Buzzer ao pino 10.

Imagem 6

17
Ligação:

int LED = 13; int buzzer = 10; int sharp =


0;

void setup() {

pinMode(sharp,INPUT);
pinMode(buzzer,OUTPUT);
pinMode(LED,OUTPUT);

void loop() {

int ir = analogRead(sharp);
if(ir>150) {
digitalWrite(LED, HIGH);
digitalWrite(buzzer, HIGH);
}else {
digitalWrite(LED, LOW);
digitalWrite(buzzer, LOW);
}

18
PROJETO #7 – Alarme Multipropósito

Este projeto consiste em criar um alarme mais complexo. 3 LEDs de cores


diferentes irão indicar a temperatura e outros 3 irão indicar a luminosidade. O
funcionamento do projeto tem a seguinte lógica:

 Conforme a temperatura for aumentando, os LEDs correspondentes vão


acendendo um por um. Quando todos os 3 LEDs estiverem acesos, um
alarme deve soar.
 Se a luminosidade do local estiver alta, todos os outros 3 LEDs devem
estar acesos e a medida que esta luminosidade for reduzida, os LEDs
vão apagando-se um por um. Quando todos os LEDs estiverem
apagados, o que indicará falta de luminosidade total, outro LED
específico deve acender.
 Se os 3 LEDs de temperatura estiverem acesos e os 3 de luminosidade
estiverem apagados, então o alarme deve soar e o LED específico deve
acender.

Material:

 1x Arduino
 7x Resistor de 220Ω
 2x Resistor de 1kΩ
 2x LED verde
 2x LED amarelo
 2x LED vermelho
 1x LED branco de alto brilho
 1x Sensor de Temperatura NTC
 1x Sensor de Luminosidade LDR
 1x Buzzer

19
Ligação:

 Conecte os LEDs nos pinos de 5 ao 11 (conforme Imagem 7).


 Conecte o Buzzer ao pino 2.
 Conecte o Sensor de Tempertura ao pino A1.
 Conecte o Sensor de Luminosidade ao pino A0.

Imagem 7

20
Programação:

const int LDR = 0;


const int NTC = 1;
const int Buzzer = 2;
const int led1 = 5;
const int led2 = 6;
const int led3 = 7;
const int led4 = 8;
const int led5 = 9;
const int led6 = 10;
const int ledAB = 11;
int ValorLDR = 0;
int ValorNTC = 0;

void setup(){

pinMode(Buzzer, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(ledAB, OUTPUT);
Serial.begin(9600);

void loop(){

ValorLDR = analogRead(LDR);
ValorNTC = analogRead(NTC);
Serial.print("Valor da Temperatura = ");
Serial.println(ValorNTC);
if (ValorNTC > 10)
digitalWrite(led1, HIGH);
else

21
digitalWrite(led1, LOW);
if (ValorNTC > 20)
digitalWrite(led2, HIGH);
else
digitalWrite(led2, LOW);
if (ValorNTC > 30){
digitalWrite(led3, HIGH);
digitalWrite(Buzzer, HIGH);
}
else{
digitalWrite(led3, LOW);
digitalWrite(Buzzer, LOW);
}
if (ValorLDR > 600)
digitalWrite(led6, HIGH);
else
digitalWrite(led6, LOW);
if (ValorLDR > 500)
digitalWrite(led5, HIGH);
else
digitalWrite(led5, LOW);
if (ValorLDR > 450){
digitalWrite(led4, HIGH);
digitalWrite(ledAB, LOW);
}
else{
digitalWrite(led4, LOW);
digitalWrite(ledAB, HIGH);
}

22
PROJETO #8 – Portão Eletrônico

Este projeto consiste em utilizar um servo motor para realizar a elevação de


uma barra, simulando o funcionamento de um portão eletrônico. Também irá
utilizar um sensor de distância para acionar o servo motor caso a distância seja
menor que a determinada.

O funcionamento do projeto tem a seguinte lógica:

 O sensor de distância irá medir, e caso esta distância seja igual ou


menor que a pré-determinada, 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.

Material:

 1x Arduino
 1x Sensor de infravermelho
 1x Micro Servo motor

23
Ligação:

 Conecte o servo motor ao pino 9.


 Conecte o sensor ao pino A0.

Imagem 8

24
Programação:

#include <Servo.h>
const int sensor = 0;
Servo myservo;
void setup() {
myservo.attach(9);
pinMode(sensor, INPUT);
Serial.begin(9600);
}

void loop(){

int ir = analogRead(sensor);
Serial.print(ir);
Serial.print(" ir");
Serial.println();
if(ir > 450){
myservo.write(90);
delay (6000);
myservo.write(-90);
}

25
Este eBook foi desenvolvido pela EngEasier

26

Você também pode gostar