Sensor de Ultrasom com LED, o sensor é super bacana, com um pouco de criatividade dá para criar projetos interessantes.

Exibições: 207

Comentar

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)

Comentário de Eduardo Fratoni Motton em 28 novembro 2013 às 10:06

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.

Comentário de Eduardo Fratoni Motton em 27 novembro 2013 às 21:48

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;
}

Comentário de Raony Silva em 27 novembro 2013 às 21:45

Muito bacana Eduardo, teria como você disponibilizar o sketch? a lista de todos os materiais usados pra desenvolver esta aplicação?

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço