Diferencias
Muestra las diferencias entre dos versiones de la página.
doc:tec:elo:uc_arduino:arduino_io:inicio [2025/07/22 15:59] – creado - editor externo 127.0.0.1 | doc:tec:elo:uc_arduino:arduino_io:inicio [Fecha desconocida] (actual) – editor externo (Fecha desconocida) 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Arduino: Entradas / Salidas ====== | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | Vamos a analizar el funcionamiento de los puertos disponibles en la placa Arduino Nano. | ||
+ | |||
+ | ===== Digitales ===== | ||
+ | |||
+ | Trabajan únicamente con '' | ||
+ | |||
+ | Pueden programarse tanto como entradas como salidas, de forma independiente unas de otras. | ||
+ | |||
+ | Por defecto, al iniciar el Arduino, están configuradas como entradas. Esto es así para protegerlas frente a eventuales cortocircuitos: | ||
+ | * Si algún pin resulta que va a ser una entrada, entonces se le estará aplicando una tensión externa al mismo. Si ese mismo pin se configura inicialmente como salida se producirá un cortocircuito en dicha situación. | ||
+ | |||
+ | Lo que haremos por programa es programar las que vayan a ser salidas. | ||
+ | |||
+ | **1) Estado inicial**. Simplemente configurando los puertos digitales como salidas... ¿Cuál es el valor por defecto de las mismas, '' | ||
+ | |||
+ | <file c> | ||
+ | // Declaración de variables | ||
+ | int persiana1_sube, | ||
+ | |||
+ | // Inicialización de variables | ||
+ | persiana1_sube=3; | ||
+ | persiana1_baja=4; | ||
+ | |||
+ | void setup() { | ||
+ | |||
+ | // Inicializo persiana 1: pin salida y valor 1 | ||
+ | digitalWrite(persiana1_sube, | ||
+ | pinMode(persiana1_sube, | ||
+ | digitalWrite(persiana1_baja, | ||
+ | pinMode(persiana1_baja, | ||
+ | |||
+ | // Prueba para ver valor por defecto | ||
+ | pinMode(5, OUTPUT); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | * Al ejecutar este programa, se ve que los pines configurados como salidas tienen un valor '' | ||
+ | * Si estos pines van a estar conectados a interfaces que se activen con '' | ||
+ | \\ | ||
+ | ===== Analógicas ===== | ||
+ | |||
+ | Los pines analógicos que se numeran del PC0 al PC5 en el ATMega328P y **del A0 al A5** en la placa de Arduino, son pines analógicos pero también **se pueden utilizar como pines digitales**. Se puede acceder a ellos como si fueran pines digitales de Arduino utilizando la numeración **del 14 al 19**. Siendo el 14 el pin A0, el 15 el A1 y así sucesivamente hasta el 19. | ||
+ | |||
+ | **Importante**. Sin embargo los pines analógicos adicionales que posee el Arduino Nano **A6 y A7 no pueden funcionar en este modo de pines digitales**, | ||
+ | * Así, el siguiente código funciona en un Arduino Nano, poniendo un '' | ||
+ | |||
+ | byte pin_color = A0; | ||
+ | |||
+ | void setup(void) { | ||
+ | pinMode(pin_color, | ||
+ | } // Final setup | ||
+ | |||
+ | void loop(void) { | ||
+ | digitalWrite(pin_color, | ||
+ | delay(2000); | ||
+ | digitalWrite(pin_color, | ||
+ | delay(2000); | ||
+ | } // Final loop | ||
+ | |||
+ | </ | ||
+ | * Sin embargo si intentamos hacer lo mismo con el pin A6 ('' | ||
+ | |||