Escola Técnica Estadual Maria Eduarda Ramos de Barros
Alunos: Matheus Henrique, Matheus Brayan e Cauã Vinícius
Turma : 2⁰ Redes-A
int pin_trigger = 10;
int pin_echo = 9;
int pin_led_vermelho = 5;
int pin_led_verde = 6;
int pin_led_azul = 7;
// Intervalos de distância (em centímetros)
int limite_alerta = 50;
int limite_atencao_min = 50;
int limite_atencao_max = 100;
int limite_seguro_min = 100;
int limite_seguro_max = 150;
void setup() {
pinMode(pin_trigger, OUTPUT);
pinMode(pin_echo, INPUT);
pinMode(pin_led_vermelho, OUTPUT);
pinMode(pin_led_verde, OUTPUT);
pinMode(pin_led_azul, OUTPUT);
[Link](9600);
}
void loop() {
float distancia = medirDistancia();
"[Link](""Distância detectada: "");"
[Link](distancia);
"[Link]("" cm"");"
atualizarCorLed(distancia);
delay(1000);
}
// Função para medir distância com o sensor ultrassônico
float medirDistancia() {
digitalWrite(pin_trigger, LOW);
delayMicroseconds(2);
digitalWrite(pin_trigger, HIGH);
delayMicroseconds(10);
digitalWrite(pin_trigger, LOW);
long duracao = pulseIn(pin_echo, HIGH);
float distanciaCm = (duracao * 0.034) / 2;
return distanciaCm;
}
// Função para definir a cor do led conforme a distância
void atualizarCorLed(float distancia) {
if (distancia < limite_alerta) {
// Alerta de proximidade = alerta vermelho
definirCorLed(255, 0, 0);
} else if (distancia >= limite_atencao_min and distancia <= limite_atencao_max) {
// Atenção= amarelo
definirCorLed(255, 255, 0);
} else if (distancia > limite_seguro_min and distancia <= limite_seguro_max) {
// Distância segura = verde
definirCorLed(0, 255, 0);
} else {
// Fora das regras = led desligado
definirCorLed(0, 0, 0);
}
}
// Função para acionar o led rgb
void definirCorLed(int vermelho, int verde, int azul) {
analogWrite(pin_led_vermelho, vermelho);
analogWrite(pin_led_verde, verde);
analogWrite(pin_led_azul, azul);
}