Medindo Distancias com o P12 – Sensor de Obstaculos
“Extraído do Livro Arduino Simples e Divertido com autorização dos autores”. Escrito por: Cláudio Vieira Oliveira e Humberto Zanetti
SENSOR DE DISTÂNCIA
Neste projeto vamos utilizar os módulos P12 – Sensor de Obstáculos e PL2 – First Robot (ou P21 – Semáforo) para desenvolver um sensor de distância bastante simples.
O módulo P12 – Sensor de Obstáculos deverá ser conectado ao Arduino da seguinte maneira:
Pino 5+ do P12 ao pino 5V do Arduino;
Pino GND do P12 a um dos pinos GND do Arduino;
Pino A0 do Arduino ao pino A0 do P12;
GND do P21 a qualquer pino GND do Arduino;
Led1 do P21 ao pino 11 do Arduino;
Led2 do P21 ao pino 10 do Arduino;
Led3 do P21 ao pino 9 do Arduino.
Em seguida, entre no ambiente de desenvolvimento do Arduino e digite o seguinte programa.
// Sensor de distância
int VERM = 11; // LED Vermelho
int AMAR = 10; // LED Amarelo
int VERD = 9; // LED Verde
int SENSOR = A0;
int valor;
void setup() {
Serial.begin(9600);
pinMode(VERM, OUTPUT);
pinMode(AMAR, OUTPUT);
pinMode(VERD, OUTPUT);
}
void loop() {
// Obter o valor do sensor (entre 0 e 1023)
valor = analogRead(SENSOR);
Serial.print(“Valor: “);
Serial.println(valor);
int distancia = map(valor, 0, 1023, 0, 4);
switch (distancia) {
case 0:
digitalWrite(VERM, HIGH);
digitalWrite(AMAR, LOW);
digitalWrite(VERD, LOW);
break;
case 1:
digitalWrite(VERM, LOW);
digitalWrite(AMAR, HIGH);
digitalWrite(VERD, LOW);
break;
case 2:
digitalWrite(VERM, LOW);
digitalWrite(AMAR, LOW);
digitalWrite(VERD, HIGH);
break;
default:
digitalWrite(VERM, LOW);
digitalWrite(AMAR, LOW);
digitalWrite(VERD, LOW);
break;
}
delay (100);
}
Neste sketch conforme algo se aproxima do módulo P12 – Sensor de Obstáculos, nós iremos acendendo os LEDs do módulo PL2 – First Robot (ou P21 – Semáforo). Todos os LEDs apagados indicam que não há objeto nas proximidades. O LED Verde aceso indica algo distante, o Amarelo indica um objeto à uma distância média enquanto o LED Vermelho vai indicar um objeto muito próximo (ou tocando) o sensor. Desta maneira, obtemos o valor do sensor (entre 0 e 1023) e o mapeamos para um valor entre 0 e 4, que indicará a proximidade de um objeto em relação ao sensor, conforme podemos observar no trecho de código-fonte a seguir.
valor = analogRead(SENSOR);
int distancia = map(valor, 0, 1023, 0, 4);
Para mais projetos como esse compre o Livro Arduino Simples e Divertido clicando aqui!
“Extraído do Livro Arduino Simples e Divertido com autorização dos autores”. Escrito por: Cláudio Vieira Oliveira e Humberto Zanetti