Diferencia entre revisiones de «pinMode()»

De ArduWiki
Saltar a: navegación, buscar
(Ejemplo 2)
(Referencias)
Línea 69: Línea 69:
  
 
== Referencias ==
 
== Referencias ==
* [https://www.arduino.cc/reference/es/language/variables/constants/constants/ Niveles logicos en Arduino]
+
* [https://www.arduino.cc/reference/es/language/variables/constants/constants/ Niveles lógicos en Arduino]
 +
* [https://playground.arduino.cc/ArduinoNotebookTraduccion/DigitalIO Playground]
  
 
[[Category:Funciones]]
 
[[Category:Funciones]]

Revisión del 20:47 20 mar 2019

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).

Sintaxis

pinMode(pin, modo);

Parámetros

pin
es el numero del pin digital a usar (0~13 + 14~19). Puedes usar const byte para de definirla.
modo
por lo general se usa las palabras reservadas: INPUT / OUTPUT / INPUT_PULLUP.

Retorna

Nada.

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 RAM porque se espera que su valor cambie durante la ejecución del bosquejo, 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