Olá turma
Código para medir e acender os 4 leds
// Conexão Ping))) conectar pino do arduino ao sensor
int sinal=8; //indica qual pino do arduino o sensor esta ligado
int distancia; //gurada o valor da distancia medida
unsigned long pulseduration=0; //duração do pulso
//conexão dos leds
int led1=13;
int led2=12;
int led3=11;
int led4=10;
//função roda apenas quando o arduino é ligado e configura
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(sinal, OUTPUT); //configura o pino de sinal como saida
Serial.begin(9600); //faz a comunicação do arduino com o computador via usb
}
void loop()
{
// le o sensor Ping)))
medirDistancia();
// divideo o valor do pulso pela metade
pulseduration=pulseduration/2;
// now convert to centimetres. We're metric here people...
//converte a duranção do pulso em centimetros e armazena na variavel distância
distancia = int(pulseduration/29);
// Display on serial monitor
Serial.print("Distance - ");
Serial.print(distancia);
Serial.println(" cm");
acender();
delay(100);
}
//função para calcular a distancia
void medirDistancia()
{
// set pin as output so we can send a pulse
//definir pino sinal como saída para que possamos enviar um pulso
pinMode(sinal, OUTPUT);
// set output to LOW
digitalWrite(sinal, LOW);
delayMicroseconds(5);
// now send the 5uS pulse out to activate Ping)))
//agora envie o pulso de 5uS para ativar Ping
digitalWrite(sinal, HIGH);
delayMicroseconds(5);
digitalWrite(sinal, LOW);
// now we need to change the digital pin
// to input to read the incoming pulse
//agora precisamos mudar o pino digital
// para inserir para ler o pulso recebido
pinMode(sinal, INPUT);
// finally, measure the length of the incoming pulse
//finalmente, medimos o comprimento do pulso recebido
pulseduration=pulseIn(sinal, HIGH);
}
//função para acender os led conforme a distancia
void acender(){
if(distancia<30){ digitalWrite(led1, HIGH);}else{digitalWrite(led1, LOW);}
if(distancia<60){ digitalWrite(led2, HIGH);}else{digitalWrite(led2, LOW);}
if(distancia<90){ digitalWrite(led3, HIGH);}else{digitalWrite(led3, LOW);}
if(distancia<120){ digitalWrite(led4, HIGH);}else{digitalWrite(led4, LOW);}
}
Nenhum comentário:
Postar um comentário