Collegamento del sensore di colore TCS230 Arduino

Il sensore di colore TCS230 per Arduino è in grado di rilevare 4 colori e di convertire l’intensità dello spettro cromatico in un segnale di uscita di diversa frequenza. Consideriamo il dispositivo del sensore di colore, lo schema di collegamento ad Arduino UNO e presentiamo alcuni programmi esemplificativi con esempi di utilizzo del sensore e di emissione di informazioni sullo spettro cromatico (colore dell’oggetto) alla porta seriale di Arduino IDE.




Per questa attività sono necessari:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • TCS230 modulo sensore di colore
  • LED e resistenza
  • breadboard
  • cavi di collegamento

Sensore di colore TCS230 datasheet, pinout

Nella tavolozza dei colori RGB, qualsiasi colore può essere rappresentato come una combinazione di tre colori primari: rosso (R), verde (G) e blu (B). Pertanto, per determinare il colore di un oggetto, è necessario misurare contemporaneamente lo spettro rosso, blu e verde. Il sensore utilizza il chip TCS230 come elemento di rilevamento, costituito da un array di fotodiodi 8×8 – 16 fotodiodi per tre colori e 16 fotodiodi nell’array senza filtro.

Modulo di sensore di colore TCS230 pinout, datasheet
Modulo di sensore di colore TCS230 pinout, datasheet

Caratteristiche del sensore di colore TCS230 Arduino:

  • Tensione di alimentazione: 2,7 – 5,5 V
  • Colori e frequenza di uscita del segnale programmabili
  • Funzione di autospegnimento
  • Errore di frequenza in uscita dello 0,2%

Il sensore viene utilizzato per rilevare la tonalità di colore di un oggetto a una distanza massima di 10 mm; il sensore è dotato di quattro LED che illuminano il punto di misurazione. Sul retro del sensore sono presenti due pad con quattro contatti. Attraverso questi contatti il sensore TCS230 è collegato al microcontrollore Arduino. I contatti “S0” e “S1” sono utilizzati per scalare la frequenza degli impulsi all’uscita “OUT” del modulo TCS230.

Come collegare sensore di colore TCS230 ad Arduino

Collegamento del sensore di colore TCS230 Arduino Uno
Collegamento del sensore di colore TCS230 Arduino Uno

Il sensore TCS230 deve essere calibrato in buone condizioni di illuminazione e alla stessa distanza dall’oggetto di misurazione. Se l’illuminazione cambia o la distanza dall’oggetto cambia, tutte le impostazioni devono essere modificate. Si noti che il sensore rileva facilmente il colore rosso, ma non distingue bene tra blu e verde. Per inviare le informazioni alla porta seriale dell’IDE Arduino, assemblare il circuito e caricare il programma sulla scheda.

Programma Arduino per utilizzare sensore di colore TCS230




#define s2  2
#define s3  3
#define out 4

byte red = 0;
byte green = 0;
byte blue = 0;

void setup() {
 Serial.begin(9600);
 
 pinMode(s2, OUTPUT);
 pinMode(s3, OUTPUT);
 pinMode(out, INPUT);
} 
 
void loop() { 
 color();

 Serial.print(" RED: " + String(red));
 Serial.print(" GREEN: " + String(green));
 Serial.println(" BLUE: " + String(blue));
 
 delay(500);
}
 
void color() {
 digitalWrite(s2, LOW);
 digitalWrite(s3, LOW);
 red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 digitalWrite(s3, HIGH);
 blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

 digitalWrite(s2, HIGH);
 green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 
}

Spiegazione del codice per sensore di colore RGB Arduino:



  1. la procedura void color() viene utilizzata per interrogare il sensore di colore;
  2. nella procedura void loop(), i dati ricevuti vengono emessi sulla porta seriale.

Come usare il sensore di colore TCS230 con Arduino

Come usare il sensore di colore TCS230 con Arduino Uno
Come usare il sensore di colore TCS230 con Arduino Uno

Dopo aver calibrato il sensore, possiamo aggiungere i LED al circuito. Eseguendo il programma seguente, si vedranno i valori per ciascuno dei tre colori e un messaggio su quale colore è stato selezionato quando si porta il campione al sensore. Va notato che se il messaggio del colore non corrisponde al colore reale, è necessario calibrare ulteriormente il sensore e modificare i valori di frequenza nel programma, adattandoli ai valori RGB.

Programma Arduino per sensore di colore e LED GGB

#define s2  2
#define s3  3
#define out 4

byte red = 0;
byte green = 0;
byte blue = 0;

void setup() {
  Serial.begin(9600);
 
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
 
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(out, INPUT);
} 
 
void loop() { 
  color();

  Serial.print(" RED: " + String(red));
  Serial.print(" GREEN: " + String(green));
  Serial.println(" BLUE: " + String(blue));

  if (red > 60 and blue < 90 and green < 90) {
    Serial.println("RED COLOR");
    digitalWrite(10, HIGH);
    digitalWrite(11, LOW);
    digitalWrite(12, LOW);
  }

  if (red < 60 and blue > 90 and green < 90) {
    Serial.println("BLUE COLOR");
    digitalWrite(10, LOW);
    digitalWrite(11, HIGH);
    digitalWrite(12, LOW);
  }

  if (red < 60 and blue < 90 and green > 90) {
    Serial.println("GREEN COLOR");
    digitalWrite(10, LOW);
    digitalWrite(11, LOW);
    digitalWrite(12, HIGH);
  }
 
 delay(500);
}
 
void color() {
  digitalWrite(s2, LOW);
  digitalWrite(s3, LOW);
  red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  digitalWrite(s3, HIGH);
  blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);

  digitalWrite(s2, HIGH);
  green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH); 
}

Spiegazione del codice per utilizzare sensore di colore RGB:

  1. utilizzando dichiarazioni if aggiuntive nel programma del sensore di colore, è possibile specificare più di tre colori da definire.

Conclusioni. L’ordinamento dei colori ha molte applicazioni nel mondo reale e riteniamo che sia più utile quando può essere realizzato con una soluzione a basso costo come la piattaforma Arduino Uno. Il modulo sensore di colore TCS2300 RGB sarà utile nei progetti in cui è richiesto il riconoscimento dei colori, ad esempio per la corrispondenza dei coloranti, la selezione dei colori, il rilevamento del colore delle strisce reattive, ecc.

Rate this post


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.