pinMode()

De ArduWiki
Saltar a: navegación, buscar

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:

  1. 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.
  2. 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