Sensor Ultrassônico com LED de 7 pontos
Publicado por victor (última atualização em 03/12/2018)
[ Hits: 3.504 ]
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
Obtendo o valor máximo e mínimo de um array em Arduino
Substituindo o comando delay() por uma pausa real
Agenda de contaos usando dialog
Nenhum coment�rio foi encontrado.
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
Unbuntu não atualiza o firmware [RESOLVIDO] (2)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE [RESOLV... (12)