Diferencia entre revisiones de «pinMode()»
De ArduWiki
(→Descripción) |
(→Referencias externas) |
||
Línea 76: | Línea 76: | ||
* [https://www.prometec.net/funciones1/ Funciones Arduino] - Prometec | * [https://www.prometec.net/funciones1/ Funciones Arduino] - Prometec | ||
* [https://programarfacil.com/podcast/26-arduino-entradas-y-salidas/ Entradas y salidas] - Luis del Valle | * [https://programarfacil.com/podcast/26-arduino-entradas-y-salidas/ Entradas y salidas] - Luis del Valle | ||
+ | * [http://manueldelgadocrespo.blogspot.com/p/pinmode.html pinMode()] - Manuel Delgado | ||
[[Category:Funciones pines]] | [[Category:Funciones pines]] |
Revisión actual del 16:46 4 jul 2019
Contenido
Descripción
Esta función debe ser usada dentro de setup() y sirve para configurar los puertos digitales que serán usadas y el modo que puede ser INPUT (entrada) o OUTPUT (salida) o INPUT_PULLUP (entrada con resistencia pull-up interna).
Tip: Los pines tanto analógicos como digitales de entrada no necesitan ser definidos con pinMode().
Sintaxis
pinMode(pin, modo);
Parámetros
- pin
- es el numero del pin digital a usar (0~13 + 14~19). Puedes usar const byte para definirla.
- modo
- por lo general se usa las palabras reservadas: INPUT / OUTPUT / INPUT_PULLUP.
Retorna
Nada.
Comentarios
- Los terminales de Arduino, por defecto, están configurados como entradas, por lo tanto no es necesario definirlos en el caso de que vayan a trabajar como entradas.
- Los pines configurados como INPUT (entrada) quedan, bajo el punto de vista eléctrico, como entradas en alta impedancia.
- Los pines configurado como OUTPUT (salida) se dice que están en un estado de baja impedancia y pueden proporcionar 40 mA de corriente a otros dispositivos y circuitos. Esta corriente es suficiente para alimentar un LED (no olvides poner una resistencia en serie de 220 ohms o mas), pero no es lo suficiente grande como para alimentar cargas de mayor consumo como relés o motores.
- Un cortocircuito en las patillas Arduino provocará una corriente elevada que puede dañar o destruir el chip ATmega.
Advertencias
En muchos ejemplos se ve que usa una variable de tipo int para definir el pin a usar. Esto es un grave error por dos motivos:
- Una variable sera almacenada en memoria SRAM porque se espera que su valor cambie durante la ejecución del boceto, pero normalmente en los pines esto nunca ocurre, por lo que es preferible usar const que es almacenada en flash.
- El tipo int ocupa 2 byte. Es suficiente usar el tipo byte (0~255) que solo ocupa 1 byte.
Ejemplo 1
Aqui definimos los pines digitales 3, 4 y 5 como salidas.
void setup(){
for (byte n=3; n<=5; n++){
pinMode(n, OUTPUT);
}
}
void loop(){
//nada
}
Ejemplo 2
Usamos un pin analogico como digital.
void setup() {
pinMode(A0, OUTPUT); //Definimos pin analógico A0 como digital. También funciona con 14.
digitalWrite(A0, HIGH);
}
void loop() {
//Nada
}
Ejemplo 3
Parpadea el LED a bordo.
void setup() {
DDRB = DDRB | 32; //Configura el pin digital 13 como OUTPUT, no altera el resto. 32=B00100000;
}
void loop() {
PORTB = PORTB ^ 32; //Invertido estado del bit 5 (pin digital 13), no altera el resto.
delay(500);
}
Vea también
Referencias externas
- Niveles lógicos en Arduino
- Playground
- Funciones Arduino - Prometec
- Entradas y salidas - Luis del Valle
- pinMode() - Manuel Delgado