Configuración GPIO de entrada en Arduino: Paso a paso
Tabla de contenidos
- Introducción
- Configuración del circuito de entrada
2.1 Registro de dirección de PIN
2.2 Registro de puerto
2.3 Resistencia de pull-down
- Configuración del circuito de salida
3.1 Registro de dirección de PIN
3.2 Registro de puerto
3.3 Conexión del LED
- Ejemplo de código
- Conclusiones
- Recursos adicionales
Configuración del circuito de entrada y salida en Arduino
En este artículo, aprenderemos a configurar circuitos de entrada y salida en un Arduino con el chip ATmega328 utilizando ensamblador AVR. La configuración adecuada de los circuitos de entrada y salida es esencial para el funcionamiento correcto de cualquier proyecto Arduino. A lo largo de este artículo, te guiaré paso a paso en la configuración de estos circuitos.
1. Introducción
El Arduino es una plataforma de desarrollo electrónico muy popular que permite a los usuarios realizar una amplia variedad de proyectos. Uno de los aspectos fundamentales de cualquier proyecto Arduino es la capacidad de recibir y enviar señales a través de sus pines de entrada y salida.
En este artículo, nos centraremos en la configuración de circuitos de entrada y salida en un Arduino con el chip ATmega328 utilizando lenguaje ensamblador AVR. Aprenderemos cómo configurar el registro de dirección del PIN, el registro de puerto y cómo conectar componentes como interruptores y LED.
2. Configuración del circuito de entrada
La configuración de los circuitos de entrada es fundamental para recibir señales desde componentes externos, como interruptores. A continuación, se describe cómo configurar estos circuitos:
2.1 Registro de dirección de PIN
El registro de dirección de PIN, conocido como DDR, controla la dirección de cada pin del Arduino. Para configurar un pin como entrada, debemos establecer el correspondiente bit del registro DDR en 0. Por ejemplo, si queremos configurar el pin 0 del Puerto B como entrada, estableceríamos el bit 0 del registro DDRB en 0.
2.2 Registro de puerto
El registro de puerto, conocido como PORT, controla el voltaje aplicado a cada pin del Arduino. Para configurar un pin como entrada sin activar la resistencia de pull-up interna, debemos establecer el correspondiente bit del registro PORT en 0. Por ejemplo, si queremos configurar el pin 0 del Puerto B como entrada sin resistencia de pull-up, estableceríamos el bit 0 del registro PORTB en 0.
2.3 Resistencia de pull-down
Para asegurarnos de que el pin de entrada no se vea afectado por voltajes residuales, es recomendable utilizar una resistencia de pull-down. Esto implica conectar una resistencia entre el pin de entrada y la conexión a tierra (GND). La resistencia de pull-down se encarga de "jalar" el voltaje hacia tierra cuando el interruptor está abierto, evitando así señales no deseadas.
3. Configuración del circuito de salida
La configuración de los circuitos de salida es esencial para enviar señales desde el Arduino a componentes externos, como LED. A continuación, se describe cómo configurar estos circuitos:
3.1 Registro de dirección de PIN
Al igual que en los circuitos de entrada, también debemos configurar los pines de salida mediante el registro de dirección de PIN. Para esto, debemos establecer el correspondiente bit del registro DDR en 1. Por ejemplo, si queremos configurar el pin 7 del Puerto D como salida, estableceríamos el bit 7 del registro DDRD en 1.
3.2 Registro de puerto
El registro de puerto, en el caso de los circuitos de salida, controla el voltaje aplicado a los pines configurados como salida. Para encender un LED conectado a un pin de salida, debemos establecer el correspondiente bit del registro PORT en 1. Por ejemplo, si queremos encender un LED conectado al pin 7 del Puerto D, estableceríamos el bit 7 del registro PORTD en 1.
3.3 Conexión del LED
Para conectar un LED al Arduino, necesitamos hacerlo a través de una resistencia limitadora de corriente. Esta resistencia se coloca en serie con el LED, y la conexión se realiza entre el pin de salida y un punto común de la resistencia y el LED. La otra terminal del LED se conecta al voltaje de referencia (Vcc) y la terminal opuesta de la resistencia se conecta a tierra (GND).
4. Ejemplo de código
A continuación, se muestra un ejemplo de código ensamblador AVR que configura un circuito de entrada y salida en el Arduino. Este código hace que un LED se encienda cuando se presiona un interruptor conectado al pin 0 del Puerto B, y se apaga cuando se suelta el interruptor.
; Configuración del circuito de entrada y salida en Arduino
; Por: [Tu Nombre]
.include "m328pdef.inc"
.equ LED_PIN = PB7
.equ SWITCH_PIN = PB0
.org 0x0000
rjmp main
.org INT0addr
; Rutina de interrupción
main:
; Configuración de pines de entrada
ldi R16, 0b00000001 ; Configurar el pin 0 del Puerto B como entrada
out DDRB, R16
ldi R16, 0b00000000 ; Configurar el pin 0 del Puerto B sin resistencia de pull-up
out PORTB, R16
; Configuración de pines de salida
ldi R16, (1 << LED_PIN) ; Configurar el pin 7 del Puerto B como salida
out DDRB, R16
ldi R16, 0b00000000 ; Apagar el LED inicialmente
out PORTB, R16
loop:
sbis PINB, SWITCH_PIN
rjmp led_on
sbic PINB, SWITCH_PIN
rjmp led_off
led_on:
sbi PORTB, LED_PIN
rjmp loop
led_off:
cbi PORTB, LED_PIN
rjmp loop
5. Conclusiones
La configuración correcta de los circuitos de entrada y salida es esencial para utilizar los pines del Arduino de manera efectiva. En este artículo, hemos aprendido cómo configurar estos circuitos utilizando lenguaje ensamblador AVR.
Configurar pines de entrada nos permite recibir señales desde componentes externos, mientras que configurar pines de salida nos permite enviar señales a componentes externos como LED. La combinación de ambos es fundamental para crear proyectos Arduino funcionales y versátiles.
Recuerda seguir las buenas prácticas de diseño de circuitos y utilizar las resistencias de pull-up o pull-down adecuadas para garantizar un funcionamiento óptimo de tu proyecto Arduino.
6. Recursos adicionales