TUTORIAL: CANCELA
AUTOMÁTICA COM
ARDUINO
@rodrigowsanches [email protected]
INTRODUÇÃO:
Este projeto consiste em uma cancela
automática acionada por um sensor
ultrassônico HC-SR04, que detecta um objeto a
menos de 5 cm de distância. Quando isso
ocorre, o sistema aciona um servo motor para
levantar a cancela, atualiza um LCD 16x2 e
controla um semáforo com LEDs vermelho,
amarelo e verde.
Lista de materiais :
1 Arduino Uno
1 Sensor Ultrassônico HC-SR04
1 Servo motor SG90
1 LCD 16x2 com módulo I2C
1 Módulo I2C para LCD
1 LED vermelho
1 LED amarelo
1 LED verde
3 Resistores de 220Ω (para os LEDs)
Jumpers e Protoboard
@rodrigowsanches [email protected]
Esquema de ligação:
Conexões do Sensor Ultrassônico
→
Trig Pino 8 do Arduino
→
Echo Pino 9 do Arduino
→
VCC 5V do Arduino
→
GND GND do Arduino
Conexões do Servo Motor
→
Sinal Pino 6 do Arduino
→
VCC 5V do Arduino
→
GND GND do Arduino
Conexões do LCD com Módulo I2C
SDA → Pino A4 do Arduino
SCL → Pino A5 do Arduino
VCC → 5V do Arduino
GND → GND do Arduino
Conexões dos LEDs (Semáforo)
→
LED vermelho Pino 10 do Arduino
→
LED amarelo Pino 11 do Arduino
→
LED verde Pino 12 do Arduino
Todos os LEDs devem ter um resistor de 220Ω ligado ao GND
@rodrigowsanches [email protected]
Código do Projeto:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigPin = 8;
const int echoPin = 9;
const int servoPin = 6;
const int redLED = 10;
const int yellowLED = 11;
const int greenLED = 12;
Servo meuServo;
void setup() {
meuServo.attach(servoPin);
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Sistema Pronto!");
digitalWrite(redLED, HIGH);
}
Continua...
@rodrigowsanches [email protected]
Continuação do Código:
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distancia:");
lcd.setCursor(10, 0);
lcd.print(distance);
lcd.print(" cm");
if (distance < 5) {
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, HIGH);
lcd.setCursor(0, 1);
lcd.print("Aguardando...");
delay(1000);
digitalWrite(yellowLED, LOW);
digitalWrite(greenLED, HIGH);
meuServo.write(90);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Passagem Livre!");
delay(10000);
meuServo.write(0);
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sistema Pronto!");
}
delay(200);
}
@rodrigowsanches [email protected]
Como Funciona o Código:
O LCD exibe "Sistema Pronto!" quando o Arduino é ligado.
O LED vermelho está ligado inicialmente.
Quando o sensor ultrassônico detecta um objeto a menos de 5 cm;
O LED amarelo acende por 1 segundo.
O LED verde acende e a cancela abre (servo motor vai para 90°).
No LCD, aparece "Passagem Livre!".
Aguarda 10 segundos.
O LED verde apaga, o vermelho acende novamente e a cancela
fecha (servo volta para 0°).
Conclusão:
Este projeto demonstra um sistema simples de cancela
automática usando Arduino, sensor ultrassônico, LCD I2C,
servo motor e semáforo com LEDs. Pode ser aprimorado para
aplicações reais, como controle de estacionamento e portões
automáticos.
@rodrigowsanches [email protected]