Color Sensor

Nome del Componente:  SunFounder Color Sensor

Come funziona: Quando illuminiamo un oggetto con la luce bianca dei quattro LED, esso assorbe le frequenze luminose in base alla sua particolare forma o materiale. L’oggetto riflette il resto delle frequenze luminose ed il risultato è il colore che viene percepito dal nostro occhio, che per inciso mischia automaticamente le frequenze luminose e crea la percezione di un unico colore.

Sigla Modello: TCS3200

Foto Componente: 

Istruzioni Collegamento:

Colleghiamo il pin GND del sensore a qualsiasi porta GND presente nella scheda Arduino, il pin VCC con la porta 5V e i pin  OUT, S0, S1, S2, S3 con qualsiasi porta digitale.

Quindi di conseguenza:
GND – GND
VCC – 5V
E poi noi abbiamo scelto:
OUT –
 2
S0 –  3
S1 – 4
S2 – 5
S3 – 6 

Librerie necessarie:  nessuna libreria necessaria

Codice di esempio:
#define S0 3 //definisco una costante
#define S1 4
#define S2 5
#define S3 6
#define sensorOut 2

int frequenza = 0; //assegno alla variabile un
valore

void setup() {
  //il pinMode serve per configurare un determinato 
  pin e stabilire se deve essere un ingresso o 
  un'uscita
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
  digitalWrite(S0,HIGH); //HIGH e LOW si usano quando
  si vuole accendere o spegnere un pin 
  digitalWrite(S1,LOW);
  Serial.begin(9600);

}

void loop() {

  digitalWrite(S2,LOW); 
  digitalWrite(S3,LOW);
  frequenza = pulseIn(sensorOut, LOW); //misura la 
  durata degli impulsi in arrivo su uno degli ingressi
  digitali
  Serial.print("Rosso= ");
  Serial.print(frequenza); //stampa in seriale la 
  frequenza
  Serial.print("  ");
  delay(100);

 

  digitalWrite(S2,HIGH); 
  digitalWrite(S3,HIGH);
  frequenza = pulseIn(sensorOut, LOW);
  Serial.print("Verde= ");
  Serial.print(frequenza);
  Serial.print("  ");
  delay(100);

  
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  frequenza = pulseIn(sensorOut, LOW);
  Serial.print("Blu= ");
  Serial.print(frequenza);
  Serial.println("  ");
  delay(100);

  delay(1000); //1 secondo di pausa

}

Volendo si può aggiungere la funzione map() che serve a “ri-mappare” un numero (come la lettura di un sensore) da un intervallo ad un’altro.

map(value, fromLow, from High, toLow, toHigh)

Si indica la variabile che conterrà il valore “ri-mappato” (value), poi si scrive il valore minimo (fromLow) e massimo (fromHigh) prima della ri-mappatura e, a seguire, il valore minimo (toLow) e massimo (toHigh) dopo la ri-mappatura.

Ester & Alissa

Lascia un commento

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