Descrizione
[vc_row][vc_column][vc_column_text]
🔍 Modulo Sensore Infrarossi TCRT5000L – Rilevatore di Linea per Arduino
✅ Descrizione Generale
Il modulo TCRT5000L è un sensore a infrarossi riflettente, progettato per rilevare linee nere su sfondo bianco (o viceversa), ostacoli vicini o variazioni di riflettanza. È ampiamente usato in robot line follower, sistemi di conteggio oggetti, tachimetri e applicazioni di rilevamento prossimità.
⚙️ Caratteristiche Tecniche
| Caratteristica | Specifica |
|---|---|
| Sensore ottico | TCRT5000L (IR LED + fototransistor) |
| Distanza operativa | 0 – 2.5 cm (ottimale < 1 cm) |
| Tensione di alimentazione | 3.3V – 5V |
| Uscita | Digitale (LOW = linea nera rilevata) |
| Indicatore LED | ON quando la linea è rilevata |
| Dimensioni | Compatte, adatte a robot mobili |
| Regolazione soglia | No (modello base) – fixed threshold |
| Compatibilità | Arduino, ESP32, Raspberry Pi, STM32, ecc. |
📌 Il sensore emette infrarossi e misura la quantità riflessa: più riflessa (superficie chiara) → HIGH; meno riflessa (linea scura) → LOW.
🧪 Come Funziona
Il sensore TCRT5000L ha un LED IR e un fototransistor:
- Superficie chiara: riflette IR → fototransistor riceve → output = HIGH
- Superficie scura (es. linea nera): assorbe IR → output = LOW
🧰 Collegamento con Arduino
🔌 Schema Collegamenti
| Pin modulo | Collegamento Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| OUT | Es. D2 |
💻 Programmazione Arduino
📜 Esempio base: Line Follower
const int pinSensore = 2; // OUT del modulo
void setup() {
Serial.begin(9600);
pinMode(pinSensore, INPUT);
}
void loop() {
int stato = digitalRead(pinSensore);
if (stato == LOW) {
Serial.println("Linea NERA rilevata");
} else {
Serial.println("Superficie CHIARA");
}
delay(200);
}
⚠️ Il sensore non restituisce valori analogici, ma un segnale digitale HIGH/LOW.
🤖 Applicazioni Comuni
- 🤖 Robot line follower (rilevamento tracciato nero)
- 📦 Conteggio oggetti (interruzione del fascio IR)
- ⚙️ Tachimetri ottici (lettura di segni su ruota)
- 🛑 Sensori anticaduta (riconoscimento margine o superficie diversa)
🔄 Esempio: Robot con 2 sensori per seguire una linea
Sensori collegati a D2 e D3
#define SINISTRA 2
#define DESTRA 3
void setup() {
pinMode(SINISTRA, INPUT);
pinMode(DESTRA, INPUT);
Serial.begin(9600);
}
void loop() {
int sx = digitalRead(SINISTRA);
int dx = digitalRead(DESTRA);
if (sx == LOW && dx == LOW) {
Serial.println("Entrambi sulla linea");
// avanti
} else if (sx == LOW && dx == HIGH) {
Serial.println("Curva a sinistra");
// gira sinistra
} else if (sx == HIGH && dx == LOW) {
Serial.println("Curva a destra");
// gira destra
} else {
Serial.println("Linea persa");
// fermati o cerca linea
}
delay(100);
}
🛠 Suggerimenti d’Uso
- Mantieni la distanza tra sensore e superficie intorno a 5 – 10 mm.
- Evita luce ambientale troppo intensa (influenza la riflettanza).
- Per uso dinamico (robot), taratura meccanica e test empirici sono fondamentali.
- Se vuoi valori analogici, esistono versioni con uscita AO regolabile con potenziometro.
📚 Estensioni Possibili
- 📏 Calcolo velocità: rilevando passaggi sequenziali
- 🖱️ Touchless switch: attiva eventi con la mano davanti al sensore
- 🔄 Rotazione encoder: lettura di pattern alternati bianco/nero su disco
✅ Conclusione
Il Modulo TCRT5000L è un sensore semplice, economico e preciso per il rilevamento di linee, superfici, oggetti e ostacoli a breve distanza. Perfetto per:
- Robot educativi o da competizione
- Contatori automatici
- Rilevatori a riflessione
📦 Vuoi anche?
- 🧠 Schema Fritzing con più sensori su un robot?
- 📲 Integrazione con Wi-Fi per inviare conteggi su smartphone?
- 📁 Log dati su SD card?
- 🖥️ Visualizzazione su OLED o LCD?
Ecco un progetto completo che integra il modulo TCRT5000L con funzionalità multipli sensori su robot, Wi‑Fi per inviare i conteggi su smartphone, log su SD card e visualizzazione su OLED o LCD.
🧩 1. Schema Fritzing con più sensori su robot
Utilizza 3 o più moduli TCRT5000L montati sulla parte frontale del robot per seguire la linea. Ogni sensore ha VCC, GND e OUT collegati ai pin digitali (es. D2, D3, D4…). I segnali vanno suoi pin INPUT dell’Arduino/Nano.
Un esempio di schema Fritzing con 3 TCRT5000 montati su robot è disponibile in vari progetti educativi e consente il rilevamento della direzione della linea basandosi su quale sensore legge line nero (dyor.webs.upv.es, instructables.com).
📡 2. Integrazione Wi‑Fi per inviare i conteggi su smartphone
Sfrutta un modulo ESP32 o NodeMCU (ESP8266) per contare eventi (ad es. passaggi sulla linea) e pubblicarli tramite una pagina web locale, accessibile da smartphone.
Basato su forum Arduino e risorse, la filosofia è: esegui un server web sul modulo ESP, che mostri il dato in tempo reale all’utente via browser mobile (forum.arduino.cc, reddit.com).
📁 3. Log dati su SD card
Collega un modulo microSD SPI e scrivi i dati di conteggio o letture digitali su un file CSV. Si utilizza la libreria SD.h per salvare timestamp e valore su memoria esterna.
🖥️ 4. Visualizzazione su OLED o LCD
Installa un display OLED 128×64 I2C (SSD1306) o un LCD I2C 16×2. Mostrerà in tempo reale:
- il numero di linee rilevate,
- stato dei sensori (es. “linea sinistra”, “linea centro”…),
- eventuale tensione batteria, tempo, ecc.
📋 Riepilogo Connessioni Hardware
| Funzione | Componenti | Collegamenti principali |
|---|---|---|
| Line follower | 3× TCRT5000L | VCC‑5V, GND‑GND, OUT → D2, D3, D4 |
| Wi‑Fi / Web server | ESP32 o NodeMCU | Sensori collegati a GPIO, alimentazione 5V / 3.3V |
| Logging dati | Modulo microSD (CS ad esempio D5) | CS su D5, MISO MOSI SCK su SPI, larghezza file CSV |
| Display | OLED SSD1306 (I2C) | SDA → A4, SCL → A5 (I2C), display via Adafruit_SSD1306 |
📜 Esempio di Codice (ESP32 + Web Server + OLED + SD)
#include <WiFi.h>
#include <WebServer.h>
#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#define SEN_LEFT 2
#define SEN_CENTER 3
#define SEN_RIGHT 4
#define SD_CS 5
WebServer server(80);
Adafruit_SSD1306 display(128, 64, &Wire);
int countLines = 0;
void handleRoot(){
server.send(200, "text/html",
"<h1>Conteggio linee: "+String(countLines)+"</h1>");
}
void setup(){
Serial.begin(115200);
pinMode(SEN_LEFT,INPUT);
pinMode(SEN_CENTER,INPUT);
pinMode(SEN_RIGHT,INPUT);
// Wi-Fi
WiFi.begin("SSID","PASSWORD");
while(WiFi.status()!=WL_CONNECTED) delay(500);
server.on("/", handleRoot);
server.begin();
// SD card
if(!SD.begin(SD_CS)) Serial.println("SD err");
// OLED
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay(); display.setTextSize(2);
}
void loop(){
server.handleClient();
int sC = digitalRead(SEN_CENTER);
static int last = HIGH;
if(sC==LOW && last==HIGH){
countLines++;
File f = SD.open("log.csv", FILE_APPEND);
if(f){ f.println(String(millis()/1000)+","+countLines); f.close(); }
}
last = sC;
display.clearDisplay();
display.setCursor(0,0);
display.print("Cnt:"); display.println(countLines);
display.display();
delay(100);
}
🧠 Consigli utili
- 📐 Prova diverse distanze sensore/superficie (3–10 mm)
- 🧼 Usa un array di 3 sensori per stabilità su curve
- 🧪 Test calibrature empiriche
- 🔌 Alimentazione stabile
- 📶 Se servono notifiche push o grafici, puoi estendere con Blynk, MQTT o Telegram Bot
✅ Conclusione
Il progetto proposto include:
- Schema Fritzing con array multiplo di sensori TCRT5000L su robot.
- Web server Wi‑Fi per conteggi accessibili da smartphone.
- Log su SD card per analisi successive.
- Display OLED per feedback visivo in tempo reale.
Abbiamo disponibili datasheet di tutti i componenti, qualora non fosse presente nella scheda download del prodotto inviaci un messaggio dal modulo contattaci e lo pubblicheremo il prima possibile nel nostro sito.
[/vc_column_text][/vc_column][/vc_row]



