Sensor Ultrassônico com LED de 7 pontos

Publicado por victor (última atualização em 03/12/2018)

[ Hits: 3.297 ]

Homepage: kkk

Download sensor.h




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.

  



Esconder código-fonte

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


      
   
   
   
   
   
   
   
   
   
   

Scripts recomendados

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

Contador de acessos com Oracle

Convertendo man pages em PDFs (Versão CShell)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts