https://github.com/victor-lis/sensor-hc-sr04-e-leds-alternando
https://github.com/victor-lis/sensor-hc-sr04-e-leds-alternando
arduino led robotics sensor
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/victor-lis/sensor-hc-sr04-e-leds-alternando
- Owner: Victor-Lis
- Created: 2023-12-10T17:46:39.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-10T20:18:31.000Z (almost 2 years ago)
- Last Synced: 2024-10-05T12:41:04.984Z (about 1 year ago)
- Topics: arduino, led, robotics, sensor
- Language: C++
- Homepage:
- Size: 68.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sensor-HC-SR04-e-Leds-alternando
Sem dúvidas meu projeto que me deu mais trabalho até agora, nem tanto pelo Hardware ou pelo código em si, a coisa que me deu mais trabalho foi conectar a biblioteca "Ultrasonic", pois foi minha primeira conexão com uma lib em C++ externa, sem ter um código de "exemplo" para facilitar.
## Desafios
Acredito que meus principais desafios nesse projeto foram:
- Entender os pinos do sensor.
- Utilizar a lib.
- Trabalhar com as distâncias.
## AprendizadosPor final aprendi algumas coisas interessantes como:
### Iniciando a lib```c++
#include "Ultrasonic.h" //INCLUSÃO DA BIBLIOTECA NECESSÁRIA PARA FUNCIONAMENTO DO CÓDIGOconst int echoPin = 7; //PINO DIGITAL UTILIZADO PELO HC-SR04 ECHO(RECEBE)
const int trigPin = 6; //PINO DIGITAL UTILIZADO PELO HC-SR04 TRIG(ENVIA)
const int ledVermelho = 11; //PINO LED VERMELHO
const int ledAzul = 2; //PINO LED VERDE
const int ledAmarelo = 10; //PINO LED AMARELO
const int ledVerde = 12; //PINO LED VERDEUltrasonic ultrasonic(trigPin,echoPin); //INICIALIZANDO OS PINOS DO ARDUINO
int distancia; //VARIÁVEL DO TIPO INTEIRO
String result; //VARIÁVEL DO TIPO STRING
```### Configuração Inicial
```c++
void setup(){
pinMode(echoPin, INPUT); //DEFINE O PINO COMO ENTRADA (RECEBE)
pinMode(trigPin, OUTPUT); //DEFINE O PINO COMO SAIDA (ENVIA)
Serial.begin(9600); //INICIALIZA A PORTA SERIALpinMode(ledVermelho, OUTPUT);
pinMode(ledAzul, OUTPUT);
pinMode(ledAmarelo, OUTPUT);
pinMode(ledVerde, OUTPUT);
}
```### Função para receber a distância detectada
```c+++
void hcsr04(){
digitalWrite(trigPin, LOW); //SETA O PINO 6 COM UM PULSO BAIXO "LOW"
delayMicroseconds(2); //INTERVALO DE 2 MICROSSEGUNDOS
digitalWrite(trigPin, HIGH); //SETA O PINO 6 COM PULSO ALTO "HIGH"
delayMicroseconds(10); //INTERVALO DE 10 MICROSSEGUNDOS
digitalWrite(trigPin, LOW); //SETA O PINO 6 COM PULSO BAIXO "LOW" NOVAMENTE
//FUNÇÃO RANGING, FAZ A CONVERSÃO DO TEMPO DE
//RESPOSTA DO ECHO EM CENTIMETROS, E ARMAZENA
//NA VARIAVEL "distancia"
distancia = (ultrasonic.Ranging(CM)); //VARIÁVEL GLOBAL RECEBE O VALOR DA DISTÂNCIA MEDIDA
result = String(distancia); //VARIÁVEL GLOBAL DO TIPO STRING RECEBE A DISTÂNCIA(CONVERTIDO DE INTEIRO PARA STRING)
delay(500); //INTERVALO DE 500 MILISSEGUNDOS
}
```### Função para converter a distância para Int e determinar qual led ligar.
#### O código funciona da seguinte forma:
##### resultInt <= 5cm: Led Vermelho
####
##### resultInt > 5cm && resultInt < 10cm: Led Amarelo
####
##### resultInt >= 10cm && resultInt < 15cm: Led Verde
####
##### resultInt >= 15cm: Led Azul
####
```c++
void loop(){
hcsr04(); // FAZ A CHAMADA DO MÉTODO "hcsr04()"int resultInt = result.toInt();
if(resultInt <= 5){
digitalWrite(ledVermelho, HIGH);
}else{digitalWrite(ledVermelho, LOW);
}if(resultInt > 5 && resultInt < 10){
digitalWrite(ledAmarelo, HIGH);
}else{
digitalWrite(ledAmarelo, LOW);
}if(resultInt >= 10 && resultInt < 15){
digitalWrite(ledVerde, HIGH);
}else{
digitalWrite(ledVerde, LOW);
}if(resultInt >= 15){
digitalWrite(ledAzul, HIGH);
}else{
digitalWrite(ledAzul, LOW);
}
Serial.print("Distancia "); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.print(result); ////IMPRIME NO MONITOR SERIAL A DISTÂNCIA MEDIDA
Serial.println("cm"); //IMPRIME O TEXTO NO MONITOR SERIAL
}
```## Adicional
Para os interessados, deixei a lib acima, o nome está como [Ultrasonic.zip](https://github.com/Victor-Lis/Sensor-HC-SR04-e-Leds-alternando/blob/main/Ultrasonic.zip)
## Resultado[Ver vídeo do projeto funcionando!](https://youtube.com/shorts/X1GySaBlLOs)
## Autores- [@Victor-Lis](https://github.com/Victor-Lis)
- [@Karlos-Eduardo (Amigo que acabei ensinando e ajudando durante projeto)](https://github.com/ImpressoraTelepatica)## Agradecimentos
Devo meus agradecimentos a minha professora [Kátia Fushita](https://www.linkedin.com/in/katia-fushita-180522160/), que foi quem realmente me fez entender o uso dessa biblioteca e desse sensor, além de outros inúmeros projetos que vem me ajudando.