Sensor Ultrassônico com LED de 7 pontos
Publicado por victor (última atualização em 03/12/2018)
[ Hits: 3.620 ]
Homepage: kkk
Programa que, utilizando o sensor ultrassônico, percebe quando algum objeto está próximo em 3 diferentes distâncias, acende três específicos leds; e também, em 8 diferentes distâncias, escreve números referentes à distância no momento utilizando o led de 7 pontos.
#include<Ultrassonic.h>
Ultrassonic ultrassonic(8,9);
long microsec = 0
float distanciaCM = 0
void setup()
{
Serial.begin(9600);
//Definindo os pontos do led de 7 pntos
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
//Definindo os leds comuns
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
}
void loop()
{
microsec = ultrassonic.timing();
distanciaCM = ultrassonic.convert(microsec, Ultrassonic::CM);
ledDistancia();
Serial.print(distanciaCM);
seria.println("cm");
delay(1000);
}
void ledDistancia()
{
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
if(distanciaCM >= 40)
{
//Quando a distancia for maior que 40, acender led da porta 13
digitalWrite(13,HIGH);
}
if(distanciaCM < 40 and distanciaCM >=30)
{
//Quando a distancia estiver entre 40 e 30, acender o led da porta 12
digitalWrite(12,HIGH);
}
if(distanciaCM <30 and distanciaCM >=0)
{
//Quando a distancia estiver entre 30 e 0, acender o led da porta 11
digitalWrite(11,HIGH);
}
//Agora vamos para o led de 7 pntos
if(distanciaCM < 10)
{
//Quando a distancia for menor que 10, escrever 0
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
digitalWrite(h,LOW); //H é um ponto
}
if(distanciaCM > 10 and distanciaCM <= 20)
{
//Quando a distancia estiver entre 10 e 20, escrever 1
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(h,LOW);
}
if (distanciaCM > 20 and distanciaCM <=30)
{
//Quando a distancia estiver entre 20 e 30, escrever 2
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
if (distanciaCM > 30 and distanciaCM <= 40)
{
//Quando a distancia estiver entre 30 e 40, escrever 3
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
if (distanciaCM > 40 and distanciaCM <= 50)
{
//Quando a distancia estiver entre 40 e 50, escrever 4
digitalWrite(a,LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
digitalWrite(h,LOW);
}
if (distanciaCM >= 50)
{
//Quando a distancia for maior que 50, acender o ponto h
digitalWrite(a,LOW);
digitalWrite(b,LOW);
digitalWrite(c,LOW);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,LOW);
digitalWrite(g,LOW);
digitalWrite(h,HIGH);
}
}
Substituindo o comando delay() por uma pausa real
Substituindo o comando delay() por uma pausa real
Obtendo o valor máximo e mínimo de um array em Arduino
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (1)
Podem me chamar de 1mbecil :) (2)
Debian Stable travado em atualizações: dist-upgrade não resolve [RESOL... (11)
Como ler fonte de um projeto? [RESOLVIDO] (5)
Perfil criado no samba ad dc não loga no Windows 10 e 11 [RESOLVIDO] (14)









