Dando continuidade neste artigo, hoje falaremos mais sobre o sensor seguidor de linha HW-006. É um sensor optico que funciona por infravermelho. É muito usado para fazer robôs que seguem linhas demarcadas na superfície. O módulo é baseado no sensor TCRT5000, cujo datasheet está aqui.

O princípio de operação é simples, um feixe de luz infravermelha é emitido, ricocheteia em um objeto e (mais ou menos dele) é apresentado no detector (fotodiodo ou fototransistor). Há um chip inversor schmitt trigger 74HC14D na placa HW-006, responsável por “limpar” o sinal. Ele então apresenta um zero claro (sem detecção) ou um (detecção) para o pino OUT da placa de circuito.
De acordo com esta fonte, ele funciona tanto em 3,3 V quanto em 5 V, consumindo cerca de 20 mA. Sua distância de detecção é de no máximo 10 mm.
Testando o módulo
Não implementaremos um veículo de teste, em vez disso, criarei apenas uma faixa de fita isolante preta sobre meu tapete verde. O microcontrolador usado será minha placa de desenvolvimento ESP32-C6, como visto aqui. O que queremos é determinar se o sensor atuará (disparará) na mudança de superfície ou não.


Conectarei o sensor HW-006 no pino D5 do ESP32-C6. Seu pino D4 tem o WS2812b Neopixel. Iremos iluminar o WS2812b em azul com detecção de linha e vermelho sem detecção de linha. O código completo é visto abaixo. Observe que você tem que instalar a biblioteca Adafruit Neopixel como visto aqui.
#include <Adafruit_NeoPixel.h>
#define D_in D4
#define ledamount 1
Adafruit_NeoPixel pixels(ledamount, D_in);
long currenttime;
long oldtime;
void setup() {
// put your setup code here, to run once:
pinMode(D5, INPUT);
pixels.begin();
}
void loop() {
// put your main code here, to run repeatedly:
currenttime= micros();
if(currenttime - oldtime > 20000){ //only enters the program every 20ms
oldtime= micros();
if(digitalRead(D5)){
pixels.clear();
pixels.setPixelColor(0, pixels.Color(255, 0, 0)); // detection (color), lights red
pixels.show();
}else{
pixels.clear();
pixels.setPixelColor(0, pixels.Color(0, 0, 255)); // no detection (black), lights blue
pixels.show();
}
}
}
Resultados e palavras finais
No vídeo acima, você pode ver o esboço trabalhando com o hardware. Sobre a linha (e longe da mesa), o neopixel fica azul. Fora da trilha (e perto da mesa), o neopixel fica vermelho. Você pode ver claramente a detecção da linha acontecendo, a diferença entre as cores acionando o sensor.
Se você quiser acompanhar e comprar alguns desses sensores, use meu link de afiliado aqui. Até a próxima.






Pingback: Giroscópio GY-50 L3G4200D com ESP32 - Fritzenlab eletrônica