26. kleurensensor GY-31

GY-31 colorsensor:










aansluitschema:









achtergrondinfo:
http://howtomechatronics.com/tutorials/arduino/arduino-color-sensing-tutorial-tcs230-tcs3200-color-sensor/



Basis startcode:

/*     Arduino Color Sensing Tutorial functioneel met de GY-31 color sensing module
 *     geprogrammeerd door Dejan Nedelkovski, www.HowToMechatronics.com
 *     modified by JRL technasium
  */
 
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8

int frequencyR = 0;
int frequencyG = 0;
int frequencyB = 0;
int led=13;

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(led,OUTPUT);
  pinMode(sensorOut, INPUT);
  
  // frequency-scaling 20%
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  
  Serial.begin(9600);
}
void loop() {
  
  // Lees rood filter diode 
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  
  // frequentiue uitgang lezen
    frequencyR = pulseIn(sensorOut, LOW);
  
  // waarde van rood uitgang lezen 
  Serial.print("R= ");
  Serial.print(frequencyR);//frequentie rode kleur wordt geprint
  Serial.print("  ");
  delay(100);
   if (frequencyR>150 && frequencyR<300) // aangepaste (meet) waarden invullen. 
   // Deze liggen voor deze specifieke situatie tussen 100 en 150.
   // bij andere achtergrond belichtings situaties kan deze waarde vaieren.
{
   Serial.println ("juiste freqentie"); // bij juiste rood frequentie wordt poort ingeschakeld.
   digitalWrite (led,HIGH);
}
   else 
   { Serial.print ("onjuiste freqentie"); // bij onjuiste rood freqentie wordt poort uigeschakeld.
   digitalWrite (led,LOW);
   }
 
  
  // Lees waarde groen filter diode 
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  
  // lees groen filter diode 
  frequencyG = pulseIn(sensorOut, LOW);
  
  //
  Serial.print("G= ");
  Serial.print(frequencyG);//frequentie groene kleur wordt geprint
  Serial.print("  ");
  delay(100);
 
  //Lees waarde blauw filter diode 
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  
  //lees blauw filter diode
  frequencyB = pulseIn(sensorOut, LOW);
  
  //
  Serial.print("B= ");
  Serial.print(frequencyB);//frequentie blauwe kleur wordt geprint
  Serial.println("  ");
  delay(100);
}




andere optie is de TCS230 https://www.youtube.com/watch?v=T3ax1Yx8T-s