PitTCS230 - Sensore Colore TCS230.

L'utilizzo di un sensore colore TCS230.

 

 

Prova del sensore commerciale con lettura del pin analogico

Fonte principale Progetti Arduino.

 

Cosa serve:

  • Scheda TCS230 compatibile

Codice sorgente:


    /*     Arduino Color Sensing Tutorial
     *      
     *  by Dejan Nedelkovski, www.HowToMechatronics.com
     *  modificato by ZappocoS www.zappoco.altervista.org  - gennaio 2018
     */
     
    #define S0 4
    #define S1 5
    #define S2 6
    #define S3 7
    #define sensorOut 8
    int frequencyR = 0;
    int frequencyG = 0;
    int frequencyB = 0;

    void setup() {
      pinMode(S0, OUTPUT);
      pinMode(S1, OUTPUT);
      pinMode(S2, OUTPUT);
      pinMode(S3, OUTPUT);
      pinMode(sensorOut, INPUT);
      
      // Setting frequency-scaling to 20%
      digitalWrite(S0,HIGH);
      digitalWrite(S1,LOW);
      
      Serial.begin(9600);
    }
    void loop() {
      // Setting red filtered photodiodes to be read
      digitalWrite(S2,LOW);
      digitalWrite(S3,LOW);
      // Reading the output frequency
      frequencyR = pulseIn(sensorOut, LOW);
      // Printing the value on the serial monitor
      Serial.print("R= ");//printing name
      Serial.print(frequencyR);//printing RED color frequency
      Serial.print("  ");
      delay(100);
      // Setting Green filtered photodiodes to be read
      digitalWrite(S2,HIGH);
      digitalWrite(S3,HIGH);
      // Reading the output frequency
      frequencyG = pulseIn(sensorOut, LOW);
      // Printing the value on the serial monitor
      Serial.print("G= ");//printing name
      Serial.print(frequencyG);//printing RED color frequency
      Serial.print("  ");
      delay(100);
      // Setting Blue filtered photodiodes to be read
      digitalWrite(S2,LOW);
      digitalWrite(S3,HIGH);
      // Reading the output frequency
      frequencyB = pulseIn(sensorOut, LOW);
      // Printing the value on the serial monitor
      Serial.print("B= ");//printing name
      Serial.print(frequencyB);//printing RED color frequency

      if (frequencyR <=50 && frequencyR < frequencyG &&  frequencyR < frequencyB ) {
        Serial.print("  RED");
      }
      if (frequencyG <=50 && frequencyG < frequencyR &&  frequencyG < frequencyB ) {
        Serial.print("  GREEN");
      }
      if (frequencyB <=50 && frequencyB < frequencyR &&  frequencyB < frequencyG ) {
        Serial.print("  BLUE");
      }

      delay(100);
      Serial.println("  ");
    }


 

 

 

Scarica tutto quello che serve:

 

 

 

ZappocoS, 14 gennaio 2018