Nota

¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el fascinante mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.

¿Por qué unirte?

  • Soporte Experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprende y Comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Avances Exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y adelantos exclusivos.

  • Descuentos Especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • Promociones Festivas y Sorteos: Participa en sorteos y promociones especiales de temporada.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.

2.1.4 Potenciómetro

Nota

../_images/mcp3008_and_adc0834.jpg

Dependiendo de la versión de tu kit, identifica si tienes ADC0834 o MCP3008 y procede con la sección correspondiente.

Introducción

La función de ADC permite convertir señales analógicas en señales digitales. En este experimento, usamos el ADC0834 para realizar esta conversión con un potenciómetro. El potenciómetro cambia la cantidad física, en este caso el voltaje, que luego es convertido mediante la función ADC.

Componentes

../_images/list_2.1.4_potentiometer.png

Diagrama del Circuito

../_images/image311.png ../_images/image312.png

Procedimientos Experimentales

Paso 1: Construye el circuito.

../_images/image180.png

Nota

Coloca el chip siguiendo la posición correspondiente indicada en la imagen. Observa que las muescas del chip deben estar a la izquierda cuando se coloque.

Paso 2: Dirígete a la carpeta del código.

cd ~/davinci-kit-for-raspberry-pi/nodejs/

Paso 3: Ejecuta el código.

sudo node potentionmeter.js

Después de ejecutar el código, gira la perilla del potenciómetro; la intensidad del LED cambiará en consecuencia.

Código

const Gpio = require('pigpio').Gpio;
const ADC0834 = require('./adc0834.js').ADC0834;

const adc = new ADC0834(17, 18, 27);
const led = new Gpio(22, {mode: Gpio.OUTPUT});

setInterval(() => {
    adc.read(0).then((value) => {
        console.log(`Current analogVal: ${value}\n`);
        led.pwmWrite(value);
    }, (error)=>{
        console.log("Error: " + error);
    });
}, 100);

Explicación del Código

const Gpio = require('pigpio').Gpio;

Importa el módulo pigpio.

const ADC0834 = require('./adc0834.js').ADC0834;

Importamos un constructor ADC0834 para usar el módulo adc0834.

const adc = new ADC0834(17, 18, 27);

Instancia un objeto ADC0834; los tres parámetros corresponden a sus tres pines.

Este es un objeto promise. Puedes obtener más información sobre el concepto en el siguiente enlace:

setInterval(() => {
    adc.read(0).then((value) => {
        console.log(`Current analogVal: ${value}\n`);
        led.pwmWrite(value);
    }, (error)=>{
        console.log("Error: " + error);
    });
}, 100);

Cada 100 ms, se lee el valor del canal 0 del ADC0834 (el canal 0 está conectado al potenciómetro), y el valor se almacena en value.

Imprime value y úsalo para controlar el brillo del LED. Ahora puedes observar cómo el brillo del LED varía en función del valor del potenciómetro.

Imagen del Fenómeno

../_images/image181.jpeg