Nota
¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el apasionante 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.
1.1.1 LED Intermitente
Introducción
En este proyecto, aprenderemos a hacer parpadear un LED mediante programación. Con tus ajustes, el LED puede producir una serie de efectos interesantes. ¡Adelante, inténtalo!
Componentes
Diagrama del Circuito
En este experimento, conecta una resistencia de 220Ω al ánodo (la pata larga del LED), luego la resistencia a 3.3 V, y conecta el cátodo (la pata corta) del LED a GPIO17 de la Raspberry Pi. Por lo tanto, para encender un LED, necesitamos poner el GPIO17 en nivel bajo (0V). Podemos lograr este efecto mediante programación.
Procedimiento Experimental
Paso 1: Construye el circuito.
Paso 2: Dirígete a la carpeta del código.
cd ~/davinci-kit-for-raspberry-pi/nodejs/
Nota
Cambia de directorio a la ruta del código de este experimento usando cd.
Paso 3: Ejecuta el código
sudo node blink.js
Nota
Aquí sudo significa superusuario y node indica ejecutar el archivo con Node.js.
Después de ejecutar el código, verás que el LED parpadea.
- Paso 4: Si deseas editar el archivo de código
blink.js, presiona
Ctrl + Cpara detener la ejecución. Luego, escribe el siguiente comando para abrirblink.js:
nano blink.js
Nota
nano es una herramienta de edición de texto. El comando abre el
archivo de código blink.js con esta herramienta.
Presiona Ctrl+X para salir. Si has modificado el código, aparecerá una
indicación preguntando si deseas guardar los cambios. Escribe Y (guardar) o
N (no guardar).
Luego, presiona Enter para salir. Vuelve a escribir nano blink.js para ver los cambios realizados.
Código
El siguiente es el código del programa:
const Gpio = require('pigpio').Gpio;
const led = new Gpio(17,{mode: Gpio.OUTPUT});
var led_state = 0;
function blink_led(){
led.digitalWrite(led_state);
led_state = !led_state;
}
setInterval(blink_led,300);
Alternativamente, escribe el código como una función flecha específica de JavaScript:
const Gpio = require('pigpio').Gpio;
const led = new Gpio(17,{mode: Gpio.OUTPUT});
var led_state = 0;
setInterval(() => {
led.digitalWrite(led_state);
led_state = !led_state;
}, 300);
Explicación del Código
const Gpio = require('pigpio').Gpio;
Importa el constructor Gpio del paquete pigpio y define una
constante Gpio que representa este constructor.
Con este constructor, podemos usar JavaScript para controlar dispositivos
electrónicos. pigpio se utiliza para implementar GPIO rápido, PWM,
control de servos, notificación de cambios de estado y manejo de interrupciones.
const led = new Gpio(17,{mode: Gpio.OUTPUT});
La palabra clave new se utiliza para construir objetos instanciados de la clase.
Conecta el LED al GPIO17 de la placa de expansión en forma de T, configura el modo
LedPin en salida y asígnalo a la constante led. Esto construye un objeto GPIO17
led en modo de salida.
Hay dos maneras de numerar los pines IO en la Raspberry Pi: número BOARD y número BCM. En nuestro proyecto, usamos el número BCM. Necesitas configurar cada canal como entrada o salida.
function blink_led(){
led.digitalWrite(led_state);
led_state = !led_state;
}
setInterval(blink_led,300);
El método setInterval() puede llamar funciones o calcular expresiones con
un período especificado (en milisegundos). Aquí cambiamos el estado de operación del LED con un período de 300ms.
El método gpio.digitalWrite(level) establece el nivel del gpio en 1 o 0.
var led_state = 0;
setInterval(() => {
led.digitalWrite(led_state);
led_state = !led_state;
}, 300);
Reescribe el código como una función flecha para hacerlo más conciso.
Imagen del Fenómeno