Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Tutoriel de détection de couleur Arduino - Capteur de couleur TCS230 TCS3200

Dans ce didacticiel Arduino, nous apprendrons à détecter les couleurs à l'aide d'Arduino et du capteur de couleur TCS230 / TCS3200. Vous pouvez regarder la vidéo suivante ou lire le didacticiel écrit ci-dessous pour plus de détails.

Fonctionnement du capteur de couleur TCS230 / TCS3200

Le TCS230 détecte la lumière colorée à l'aide d'un réseau de photodiodes 8 x 8. Ensuite, à l'aide d'un convertisseur courant-fréquence, les lectures des photodiodes sont converties en une onde carrée avec une fréquence directement proportionnelle à l'intensité lumineuse. Enfin, en utilisant la carte Arduino, nous pouvons lire la sortie d'onde carrée et obtenir les résultats pour la couleur.

Si nous examinons de plus près le capteur, nous pouvons voir comment il détecte différentes couleurs. Les photodiodes ont trois filtres de couleur différents. Seize d'entre eux ont des filtres rouges, 16 autres ont des filtres verts, 16 autres ont des filtres bleus et les 16 autres photodiodes sont claires sans filtres.

Chacune des 16 photodiodes est connectée en parallèle, donc en utilisant les deux broches de commande S2 et S3, nous pouvons sélectionner laquelle d'entre elles sera lue. Ainsi, par exemple, si nous voulons détecter la couleur rouge, nous pouvons simplement utiliser les 16 photodiodes filtrées par le rouge en réglant les deux broches sur le niveau logique bas selon le tableau.

Le capteur possède deux broches de commande supplémentaires, S0 et S1, qui sont utilisées pour mettre à l'échelle la fréquence de sortie. La fréquence peut être mise à l'échelle sur trois valeurs prédéfinies différentes de 100 %, 20 % ou 2 %. Cette fonction de mise à l'échelle de la fréquence permet d'optimiser la sortie du capteur pour divers fréquencemètres ou microcontrôleurs.

Nous sommes maintenant prêts à passer à autre chose et à connecter le capteur TCS230 à la carte Arduino. Voici les schémas du circuit.

Vous pouvez obtenir les composants nécessaires pour ce didacticiel Arduino à partir des liens ci-dessous :

  • Capteur de couleur TCS230 TCS3200…….
  • Carte Arduino ……………………………
  • Breadboard et Jump Wires ……… 
  •  

Code source du capteur de couleur TCS230

Description : Nous devons d'abord définir les broches auxquelles le capteur est connecté et définir une variable pour lire la fréquence. Dans la section de configuration, nous devons définir les quatre broches de contrôle comme sorties et la sortie du capteur comme entrée Arduino. Ici, nous devons également définir la mise à l'échelle de la fréquence, pour cet exemple, je vais la définir sur 20 %, et démarrer la communication série pour afficher les résultats dans le moniteur série.

Dans la section boucle, nous commencerons par lire les photodiodes filtrées en rouge. Pour cela, nous allons régler les deux broches de commande S2 et S3 au niveau logique bas. Ensuite, en utilisant la fonction "pulseIn()", nous allons lire la fréquence de sortie et la mettre dans la variable "fréquence". En utilisant la fonction Serial.print(), nous imprimerons le résultat sur le moniteur série. La même procédure s'applique aux deux autres couleurs, il suffit d'ajuster les broches de contrôle pour la couleur appropriée.

/*     Arduino Color Sensing Tutorial
 *      
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 *  
 */
 
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8

int frequency = 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
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//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
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//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
  frequency = pulseIn(sensorOut, LOW);
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(100);
}Code language: Arduino (arduino)

Maintenant, si nous exécutons le moniteur série, nous commencerons à obtenir des valeurs. Ces valeurs dépendent de l'échelle de fréquence sélectionnée, ainsi que de l'éclairage environnant.

Notez ici que trois valeurs diffèrent en raison de la sensibilité différente de chaque type de photodiode, comme le montre le diagramme de sensibilité spectrale de la photodiode de la fiche technique du capteur.

Néanmoins, voyons maintenant comment les valeurs réagissent lorsque nous amènerons des couleurs différentes devant le capteur. Ainsi, par exemple, si nous apportons la couleur rouge, la valeur initiale baissera, dans mon cas d'environ 70 à environ 25.

Alors maintenant, si nous voulons représenter les couleurs détectées avec le modèle RVB qui a des valeurs de 0 à 255, nous utiliserons la fonction map() pour mapper ou convertir les lectures aux valeurs de 0 à 255.

//Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,70,255,0);

La valeur de 70 sera mappée sur 0 et la valeur de 25 sur 255. La même procédure s'applique aux deux autres couleurs.

Voici le code source final de cet exemple :

/*     Arduino Color Sensing Tutorial
 *      
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 *  
 */
 
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 8

int frequency = 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
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,72,255,0);
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//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
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 30,90,255,0);
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//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
  frequency = pulseIn(sensorOut, LOW);
  //Remaping the value of the frequency to the RGB Model of 0 to 255
  frequency = map(frequency, 25,70,255,0);
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(100);
}Code language: Arduino (arduino)

Notez que les couleurs ne sont pas très précises, mais elles sont toujours assez bonnes pour des projets simples. Comme autre exemple du capteur de couleur TCS230 dans ma prochaine vidéo, nous apprendrons comment fabriquer une machine de tri automatique des couleurs Arduino.

N'hésitez pas à poser des questions dans la section des commentaires ci-dessous et n'oubliez pas de consulter ma collection de projets Arduino.


Processus de fabrication

  1. Capteur de lumière Raspberry Pi :un didacticiel LDR simple
  2. Tutoriel sur le verrouillage RFID Arduino
  3. Surveillance du CO2 avec le capteur K30
  4. Comment mesurez-vous ?
  5. Capteur d'empreintes digitales capacitif avec un Arduino ou ESP8266
  6. Tour de capteur cloud Arduino
  7. Mixeur de couleurs Arduino RVB
  8. Mélange de couleurs Arduino
  9. Tutoriel Arduino 01 :Prise en main