Sensor de Ultrasom com LED, o sensor é super bacana, com um pouco de criatividade dá para criar projetos interessantes.
Tags:
Comentar
Quanto a lista de materiais, bem, é apenas um arduino, um display de LCD, pode ser um 16x2, e um resistor de 10K. Naturalmente, precisará de outros resistores de valores diversos para medir.
Só se for agora ...
disponha Raony,
#include <LiquidCrystal.h>
#include <Ultrasonic.h>
#define BACKLIGHT_PIN 8
#define LED_PIN 9
#define TRIGGER_PIN 12
#define ECHO_PIN 13
int brightness = 0;
int brightnessAtual = 0;
int brightnessAnt = 0;
int tempoDisplay = 60;
LiquidCrystal lcd(11, 10, 5, 4, 3, 2);
Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup()
{
pinMode(BACKLIGHT_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(BACKLIGHT_PIN, HIGH);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Ultrasom 3HTEC");
}
void loop()
{
float cmMsec, inMsec;
long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
delay(200);
brightness = map(cmMsec, 12, 50, 0, 255);
if(tempoDisplay>0){
lcd.display();
digitalWrite(BACKLIGHT_PIN, HIGH);
lcd.setCursor(0, 1);
lcd.print(strZero(brightnessAnt, 5));
lcd.print("-");
if(brightness>=0){
lcd.print(strZero(brightness, 5));
} else {
lcd.print("*MIN*");
}
lcd.print(" [");
lcd.print(strZero(tempoDisplay,2));
lcd.print("]");
tempoDisplay--;
} else {
lcd.noDisplay();
digitalWrite(BACKLIGHT_PIN, LOW);
}
if(cmMsec < 12){
brightnessAnt = 0;
}
if(brightness > 255 || brightness < 0){
brightness = brightnessAnt;
} else {
brightnessAnt = brightness;
}
if(brightnessAtual != brightness){
tempoDisplay = 30;
}
brightnessAtual = brightness;
analogWrite(LED_PIN, brightness);
}
String strZero(int val, int len){
String retorno = String(val, DEC);
int tam = retorno.length();
if(tam > len){
retorno = "";
} else {
for(int i=tam; i<len; i++){
retorno = "0"+retorno;
}
}
return retorno;
}
String strBranco(int val, int len){
String retorno = String(val, DEC);
int tam = retorno.length();
if(tam > len){
retorno = "";
} else {
for(int i=tam; i<len; i++){
retorno = " "+retorno;
}
}
return retorno;
}
Muito bacana Eduardo, teria como você disponibilizar o sketch? a lista de todos os materiais usados pra desenvolver esta aplicação?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)