Sensor de color GY-31
Ilustración 1 Sensor GY-31
Nombre: Sensor de color GY-31
Variable: Intensidad de luz.
Funcionamiento: El TCS230 detecta la luz de color con la ayuda de una serie de
fotodiodos de 8 x 8. Luego, utilizando un convertidor de corriente a frecuencia, las
lecturas de los fotodiodos se convierten en una onda cuadrada con una frecuencia
directamente proporcional a la intensidad de la luz. Finalmente, usando la placa
Arduino, podemos leer la salida de onda cuadrada y obtener los resultados del
color.
Ilustración 2 Funcionamiento del sensor
Si observamos de cerca el sensor, podemos ver cómo detecta varios colores. Los
fotodiodos tienen tres filtros de color diferentes. Dieciséis de ellos tienen filtros
rojos, otros 16 tienen filtros verdes, otros 16 tienen filtros azules y los otros 16
fotodiodos son claros y no tienen filtros.
Características:
Sensor de colores de alta resolución
Cuatro grupos de detección: Rojo, verde, azul (RGB) y luz blanca (sin filtro,
detecta todas las longitudes de onda)
Se puede detectar cualquier color cuantificando la intensidad de cada uno
de los componentes RGB que posee la luz recibida
Arreglo de 64 (8x8) fotodiodos (16 para el rojo, 16 para el verde, 16 para el
azul y 16 sin ningún filtro)
Fotodiodos de cada grupo ubicados de manera intercalada para minimizar
el efecto de una irradiancia incidente no uniforme
La salida es una onda cuadrada con ciclo de trabajo del 50% cuya
frecuencia es directamente proporcional a la intensidad de la luz
(irradiancia) para el color seleccionado
Color de detección seleccionable mediante S2 y S3
Diagrama de conexión:
Se necesitan pocos materiales para implementar este sensor.
Sensor agy-31
Placa Arduino
Algunos cables
Protoboard
Programa:
1. #define S0 4
2. #define S1 5
3. #define S2 6
4. #define S3 7
5. #define sensorOut 8
6.
7. int frequency = 0;
8.
9. void setup() {
10. pinMode(S0, OUTPUT);
11. pinMode(S1, OUTPUT);
12. pinMode(S2, OUTPUT);
13. pinMode(S3, OUTPUT);
14. pinMode(sensorOut, INPUT);
15.
16. // Setting frequency-scaling to 20%
17. digitalWrite(S0,HIGH);
18. digitalWrite(S1,LOW);
19.
20. [Link](9600);
21. }
22.
23. void loop() {
24. // Setting red filtered photodiodes to be read
25. digitalWrite(S2,LOW);
26. digitalWrite(S3,LOW);
27. // Reading the output frequency
28. frequency = pulseIn(sensorOut, LOW);
29. // Printing the value on the serial monitor
30. [Link]("R= ");//printing name
31. [Link](frequency);//printing RED color frequency
32. [Link](" ");
33. delay(100);
34.
35. // Setting Green filtered photodiodes to be read
36. digitalWrite(S2,HIGH);
37. digitalWrite(S3,HIGH);
38. // Reading the output frequency
39. frequency = pulseIn(sensorOut, LOW);
40. // Printing the value on the serial monitor
41. [Link]("G= ");//printing name
42. [Link](frequency);//printing RED color frequency
43. [Link](" ");
44. delay(100);
45.
46. // Setting Blue filtered photodiodes to be read
47. digitalWrite(S2,LOW);
48. digitalWrite(S3,HIGH);
49. // Reading the output frequency
50. frequency = pulseIn(sensorOut, LOW);
51. // Printing the value on the serial monitor
52. [Link]("B= ");//printing name
53. [Link](frequency);//printing RED color frequency
54. [Link](" ");
55. delay(100);
56. }
Costo: $29750
Proveedor: [Link]
[Link]