¡Cómo utilizar el sensor de color tcs230, encontrar el programa, detectar el color y luego emitirlo en el tubo digital!
El segundo paso es comprender las conexiones del circuito: Aquí hay una breve introducción a las funciones de cada pin del chip TCS230 y algunas opciones de combinación.
S0 y S1 se utilizan para seleccionar el coeficiente proporcional de salida o el modo de apagado de energía; S2 y S3 se utilizan para seleccionar el tipo de filtro; OE inverso es el pin de habilitación de salida de frecuencia, que puede controlar el estado de salida. Cuando hay varios pines de chip ****, también se puede utilizar como señal de selección de chip para conectar al pin de salida del microprocesador. OUT es el pin de salida de frecuencia, GND es el pin de tierra del chip y VCC proporciona. El voltaje de trabajo del chip. La Tabla 1 enumera las combinaciones disponibles de S0, S1 y S2, S3.
El tercer paso, combine la interfaz del circuito para comprender el principio de funcionamiento de la detección de color
Detecte el color RGB: ① Seleccione los tres colores del filtro en secuencia y luego presione la salida. de TCS230 en secuencia Realizar un recuento. Deje de contar cuando el conteo llegue a 255 y calcule el tiempo utilizado por cada canal. Este tiempo corresponde a la base de tiempo utilizada por cada filtro de TCS230 en las pruebas reales. El número de pulsos medidos durante este período es R, los valores correspondientes. de G y B. 2) Configure el temporizador en un tiempo fijo (como 10 ms), luego seleccione el filtro de tres colores y calcule la cantidad de pulsos de salida del TCS230 durante este período. El TCS230 genera el número de pulsos durante este tiempo y luego calcula un factor de escala por el cual el número de pulsos llega a ser 255. En las pruebas reales, los valores R, G y B correspondientes se pueden obtener calculando el mismo tiempo al aire libre y multiplicando el número medido de pulsos por el factor de escala.
4.?Paso 4, rutina de referencia (no original)
/****************************** **********************************************/
#include lt;reg52.hgt;?
#define uchar unsigned char?
uchar duan[10]={0xc0, 0Xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; ?// ¿El código de bits del segmento de datos requerido?
uchar wei[5]={0Xf7, 0XEf, 0XDf, 0XBf, 0X7f}; //¿controlador de bits?
uint z, x, c, v, b, n, date; //definir tipo de datos
uint dispcount=0; //¿recuento de interrupciones?
uint lck=0; ?
uint lck=0; ?
uint disp=0;// ¿Valor de frecuencia?
/****************************************** ************************ ?
¿Función de retardo?
******* ** ************************************************* *** *********/?
retraso nulo(uchar t) {? uchar i,j ? /p>
?for(j=13;jgt;0;j--); ?{ }?
}?}
/***** *** ************************************************* **** ************ ¿Escaneo dinámico de tubos digitales?
********************** ******** ******************************************* */?
void xianshi()? /************************ Conversión de datos****** ******************* **********/?
Consulte el contenido de la biblioteca de recursos más adelante
/ link?url=6CWP6mRKPrFDUMH0FmulOJnDBnHEOEm8s6f6SwN2wY486s23T2Zgr3GrDhWcQvGEhVh41nL-3OgJZnvF-jHIalvCQoCW_ zXTKekcT1DmM2y