Sensor Ultrassônico com LED de 7 pontos

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

[ Hits: 3.169 ]

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

Substituindo o comando delay() por uma pausa real

Obtendo o valor máximo e mínimo de um array em Arduino

Acertando a hora!!

Jogo Sudoku em Pascal


  

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