.. note:: ¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas. **¿Por qué unirse?** - **Soporte Experto**: Resuelve problemas post-venta y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprender y Compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Vistas Exclusivas**: Obtén acceso anticipado a anuncios de nuevos productos y adelantos. - **Descuentos Especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos. - **Promociones Festivas y Sorteos**: Participa en sorteos y promociones navideñas. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy. 2.2.1 Fotoresistor ===================== .. note:: .. image:: ../img/mcp3008_and_adc0834.jpg :width: 25% :align: left Dependiendo de la versión de tu kit, identifica si tienes **ADC0834** o **MCP3008** y procede con la sección correspondiente. Introducción --------------- El fotoresistor es un componente comúnmente utilizado para medir la intensidad de la luz ambiental. Ayuda al controlador a reconocer el día y la noche, y a realizar funciones de control de luz, como la de una lámpara nocturna. Este proyecto es muy similar al de un potenciómetro, y podrías pensar que cambia el voltaje para detectar la luz. Componentes ----------- .. image:: img/list_2.2.1_photoresistor.png Principio ---------- Un fotoresistor o celda fotoeléctrica es un resistor variable controlado por la luz. La resistencia de un fotoresistor disminuye a medida que aumenta la intensidad de la luz incidente; en otras palabras, exhibe fotoconductividad. Un fotoresistor se puede aplicar en circuitos de detección de luz y en circuitos de conmutación activados por luz y oscuridad. .. image:: img/image196.png :width: 200 :align: center Diagrama Esquemático -------------------------- .. image:: img/image321.png .. image:: img/image322.png Procedimientos Experimentales ---------------------------------- **Paso 1:** Construir el circuito. .. image:: img/image198.png :width: 800 **Paso 2:** Acceder a la carpeta del código. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/c/2.2.1/ **Paso 3:** Compilar el código. .. raw:: html .. code-block:: gcc 2.2.1_Photoresistor.c -lwiringPi **Paso 4:** Ejecutar el archivo ejecutable. .. raw:: html .. code-block:: sudo ./a.out Una vez ejecutado el código, el brillo del LED variará según la intensidad de luz que detecte el fotoresistor. .. note:: Si no funciona después de ejecutarlo, o aparece un mensaje de error: "wiringPi.h: No such file or directory", consulta :ref:`faq_c_nowork`. **Código** .. code-block:: c #include #include #include typedef unsigned char uchar; typedef unsigned int uint; #define ADC_CS 0 #define ADC_CLK 1 #define ADC_DIO 2 #define LedPin 3 uchar get_ADC_Result(uint channel) { uchar i; uchar dat1=0, dat2=0; int sel = channel > 1 & 1; int odd = channel & 1; digitalWrite(ADC_CLK, 1); delayMicroseconds(2); digitalWrite(ADC_CLK, 0); delayMicroseconds(2); pinMode(ADC_DIO, OUTPUT); digitalWrite(ADC_CS, 0); // Bit de inicio digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); // Modo de un solo extremo digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); // IMPAR digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,odd); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); // Selección digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,sel); delayMicroseconds(2); digitalWrite(ADC_CLK,1); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); for(i=0;i<8;i++) { digitalWrite(ADC_CLK,1); delayMicroseconds(2); digitalWrite(ADC_CLK,0); delayMicroseconds(2); pinMode(ADC_DIO, INPUT); dat1=dat1<<1 | digitalRead(ADC_DIO); } for(i=0;i<8;i++) { dat2 = dat2 | ((uchar)(digitalRead(ADC_DIO))<