Tabla de contenido:

Detección de color con LED RGB: 4 pasos
Detección de color con LED RGB: 4 pasos

Video: Detección de color con LED RGB: 4 pasos

Video: Detección de color con LED RGB: 4 pasos
Video: Como controlar un diodo LED de 3 colores RGB 2024, Diciembre
Anonim
Detección de color mediante LED RGB
Detección de color mediante LED RGB

¿Alguna vez ha querido una forma automatizada de detectar el color de un objeto? Al hacer brillar una luz de cierto color sobre el objeto y observar cuánta luz se refleja, puede saber de qué color es el objeto. Por ejemplo, si enciende una luz roja sobre un objeto rojo, esa luz se reflejará. Si ilumina con una luz azul un objeto rojo, el objeto absorberá parte de esa luz y menos se reflejará.

Paso 1: Piezas necesarias

Piezas necesarias
Piezas necesarias

Usé un microcontrolador PIC 16F887, pero casi cualquiera con capacidad de modulación de ancho de pulso funcionará. 1 LED RGB1 Microcontrolador1 LED rojo estándar1 Resistencia de 1k ohmios 1 Fotorresistor (cambia la resistencia dependiendo de la cantidad de luz que brille) Algunos cables Solo necesito el microcontrolador y el LED RGB para tener una amplia gama de detectores de color, pero si solo quieres un circuito que detecta un color, no necesita un microcontrolador, solo necesita un LED brillante del color que desea detectar. El LED rojo estándar es el "LED indicador": se enciende cuando se detecta el color correcto.

Paso 2: construye el circuito

Construye el circuito
Construye el circuito
Construye el circuito
Construye el circuito

El esquema es bastante simple y, en forma general, se muestra a continuación. El LED RGB es alimentado externamente por una señal PWM. Pongo cinta aislante alrededor del fotorresistor para que la luz ambiental no entre, solo se detectará la luz directamente encima de él.

Paso 3: el código

Este código fue escrito para un Microchip PIC 16F887, pero es de esperar que pueda hacerse una idea general. Usé el potenciómetro incorporado en mi placa de desarrollo para variar el espectro de color del LED RGB (y no atraviesa todo el espectro porque no tengo 3 módulos PWM, pero es lo suficientemente bueno) Comentarios incluidos. #include #include #include "delay.c" #include #include #use delay (clock = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP # byte CCP1CON = 0x17 byte CCP2CON = 0x1D # byte PWM1CON = 0x9Bint valor = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (valor int8) {salida_bajo (PIN_C2); CCP1CON = valor; PWM1CON = 0;} void my_setup_ccp2 {salida_bajo (PIN_C1); CCP2CON = valor;} // ================================= Void principal () {// A4 = fuente de energía para fotodiodooutput_high (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Temporizador / Interrupción setupenable_interrupts_ccPWM_TIM () my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); while (1) {// Evita que PIC entre en reposo.//SET PWM DUTY CYCLE output_high; (PIN_PWM | COMPARE_TIMER2) // El pin A3 es la conexión del fotodiodo if (input (PIN_A3) == 1) output_high (PIN_A4); else output_low (PIN_A4); // Leer el valor del potenciómetro para cambiar el color del LED value = read_adc (); cambiar (valor) {caso 0: p1 = valor; salida_bajo (PIN_C0); p2 = valor; rotura; caso 50: p1 = valor; salida_alto (PIN_C0); p2 = valor; rotura; caso 100: p1 = valor; salida_alto (PIN_C0); p2 = valor; rotura; caso 150: salida_alta (PIN_C0); p1 = 50; p2 = valor; rotura; caso 200: salida_bajo (PIN_C0); p1 = 0; p2 = valor; rotura; caso 250: p1 = 0; p2 = valor; salida_bajo (PIN_C0); rotura; } p1 = valor; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}

Paso 4: ¡Aplicaciones

Aplicaciones!
Aplicaciones!

Un detector de color simple como este se puede usar en robótica o para proyectos geniales como separar legos por color, clasificar M&M o como ayuda para el daltonismo. ¡Esperamos que este instructivo haya sido útil para mejorar un proyecto que tenía en mente!:) Los LED son buenos para muchas cosas….

Recomendado: