Diferencia entre revisiones de «digitalWrite()»

De ArduWiki
Saltar a: navegación, buscar
(Devoluciones)
(Parámetros)
Línea 9: Línea 9:
 
== Parámetros ==
 
== Parámetros ==
 
;pin: es el numero del pin digital a usar (0~13 + 14~19). Puedes usar [[constan]] [[byte]] para de definirla.
 
;pin: es el numero del pin digital a usar (0~13 + 14~19). Puedes usar [[constan]] [[byte]] para de definirla.
;valor: por lo general se usa las palabras reservadas HIGH o LOW. Puedes usar una variable [[byte]] para definirla.
+
;valor: por lo general se usa las palabras reservadas HIGH o LOW, pero puedes usar 0, 1, false o true. Puedes usar una variable [[byte]] para definirla.
 +
 
 
== Devoluciones ==
 
== Devoluciones ==
 
Nada.
 
Nada.

Revisión del 20:24 26 jun 2018

Descripción

Envía al puerto digital definido previamente como OUTPUT el valor HIGH o LOW (poniendo en 1 o 0 la salida). El pin se puede especificar ya sea como una variable o como una constante (0~13 + 14~19).

Sintaxis

digitalWrite(pin, valor);

Parámetros

pin
es el numero del pin digital a usar (0~13 + 14~19). Puedes usar constan byte para de definirla.
valor
por lo general se usa las palabras reservadas HIGH o LOW, pero puedes usar 0, 1, false o true. Puedes usar una variable byte para definirla.

Devoluciones

Nada.

Advertencias

En muchos ejemplo 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

Algunos ejemplo simples:

digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(17, HIGH);  //Pone en HIGH el pin A3

Ejemplo 2

Un ejemplo mas avanzado:

void setup(){
   for (byte i=6; i<=10; i++){
      pínMode(i, OUTPUT);
      digitalWrite(i, LOW);
   }
}
void loop(){
   for (byte i=6; i<=10; i++){
      digitalWrite(i, !digitalRead(i));
      delay(500);
   }
}

Vea también