INPUT

Las constantes son expresiones predefinidas en el lenguaje Arduino. Las contantes se utilizan para que el programa sea más fácil de leer. Clasificamos las constantes en grupos:

Definición de niveles lógicos: true y false (Constantes Booleanas)

Hay dos palabras que se usan en el lenguaje Arduino para representar la verdad y la falsedad: true, y false.

false

false es la más fácil de definir, se define como 0 (cero).

true

true a menudo se define como 1, lo cual es correcto, pero cierto que tiene una definición más amplia. Cualquier número entero que es distinto de cero es true en un sentido Booleano. Así -1, 2 y -200 se definen como true, también en sentido Booleano.
Tenga en cuenta que las constantes true false se escriben en mayúsculas, al igual que HIGHLOWINPUT OUTPUT.

Definición de los niveles de los pines: HIGH y LOW


Cuando leemos o escribimos un pin digital, solo hay dos valores posibles que el pin puede tener, activado o desactivado: HIGH o LOW.

HIGH (Nivel alto)

El significado de HIGH (en referencia a un pin) es algo diferente según se trate de si un pin se configura como INPUT  (entrada) o como OUTPUT (salida).
Cuando un pin se configura como INPUT con pinMode()  y se lee con digitalRead() HIGH si:
  • una tensión mayor de 3 voltios está presente en el pin (placas de 5 V)
  • una tensión mayor de 2 voltios está presente en el pin (placas de 3,3 V)
Un pin se puede configurar como INPUT con pinMode(), y en consecuencia, ponerse a nivel HIGH con digitalWrite(). Esto habilitará las resistencias pullup internas de 20 K, que provocará que el pin de entrada se ponga a nivel HIGH a menos que se lleve a nivel LOW por la circuitería externa. Así es como trabaja INPUT_PULLUP descrito más adelante con más detalle.
Cuando un pin se configura como OUTPUT con pinMode () y se activa a nivel HIGH  con digitalWrite() el pin está a:
  • 5 voltios (en placas alimentadas a 5 V);
  • 3.3 voltios (en placas alimentadas a 3.3V);
En este estado el pin actúa como source (fuente) de corriente, por ejemplo, encender un LED conectado a masa por medio de una resistencia limitadora.

LOW (Nivel bajp)


El significado de LOW también tiene un significado diferente dependiendo si se configura como INPUT o como OUTPUT. Cuando un pin se configura como INPUT con pinMode y se lee con digitalRead Arduino (Atmega) informará LOW si:
  • una tensión menor de 3 voltios está presente en el pin (placas 5 V);
  • una tensión menor de 2 voltios está presente en el pin (placas 3.3 V);
Cuando un pin está configurado como OUTPUT con pinMode () y es puesto a nivel LOW con digitalWrite (), el pin está a 0 voltios (en ambas placas de 5 V y 3.3 V). En este estado el pin actúa como sink (drenador) de corriente, por ejemplo, para encender un LED conectado por medio de una resistencia limitadora a +5 voltios (o a +3.3 voltios).

Definición de los modos de los pines digitales: INPUT, INPUT_PULLUP, y OUTPUT


Los pines digitales se pueden usar como INPUTINPUT_PULLUP o OUTPUT.
Cuando se cambia un pin con pinMode (), cambia el comportamiento eléctrico del pin.

Pines configurados como INPUT


Los pines de Arduino (Atmega) configurados como INPUT con pinMode () se dice que están en estado de alta impedancia. Los pines configurados como INPUT demandan una corriente extremadamente baja del circuito que esta muestreando, equivalente a una resistencia en serie de 100 Megohms. Esto los hace útiles para la lectura de un sensor.
Si tenemos un pin configurado como INPUT y estamos leyendo un interruptor, cuando el interruptor está en estado abierto la entrada del pin está "flotante", dando como resultado una lectura impredecible. Para asegurar una lectura apropiada del pin cuando el interruptor está abierto, debe usarse una resistencia pullup pulldow. La función de estas resistencias es llevar el pin a un estado conocido cuando el interruptor está abierto. Usualmente se elige una resistencia de 10 K ohm, ya que es un valor suficientemente bajo como para evitar que una entrada quede "flotante", y al mismo tiempo un valor suficientemente alto como para no drenar demasiada corriente cuando el interruptor está cerrado. Ver el tutorial Digital Read Serial para más información.
Si se usa una resistencia pulldown, el pin de entrada estará a nivel LOW cuando el interruptor esté abierto y en estado HOGH cuando el interruptor esté abierto.
Si se usa una resistencia pullup, el pin estará a nivel HIGH cuando el interruptor esté abierto y LOW cuando el interruptor esté cerrado.

Pines configurados como INPUT_PULLUP


El microcontrolador Atmega del Arduino tiene resistencias pull-up internas (resistencias conectadas internamente a la alimentación) a las que podemos acceder. Si prefieres usar estas en lugar de resistencias pull-up externas, puedes usar el argumento INPUT_PULLUP en pinMode ()
Ver el tutorial Input Pullup Serial para ver un ejemplo de este uso.
Los pines configurados como INPUT INPUT_PULLUP se pueden dañar o destruir si se conectan a tensiones más bajas que la masa (tensiones negativas) o por encima de la tensión de alimentación (5 V o 3,3 V).

Pines configurados como Outputs


Los pines configurados como OUTPUT  con pinMode () se dice que están en estado de baja impedancia. Esto significa que pueden proporcionar una cantidad sustancial de corriente a otros circuitos. Los pines del Atmega pueden ser source (fuente, proporcionar corriente) o sink (drenador, absorver corriente) hasta 40 mA (milliamperios) a otros dispositivos o circuitos. Esto hace que sean útiles para encender LEDs porque los LEDs típicamente consumen menos de 40 mA. Carga mayores de 40 mA (por ejemplo, motores) requieren un transistor u otra circuitería de interface.
Los pines configurados como salidas se pueden dañar o destruir se se conectan directamente a masa o al positivo de la alimentación.

Definición de los LED_BUILTIN (LED incorporados)


Mucha placas Arduino tienen un pin conectado a un LED incluido en la placa conectado con una resistencia en serie. La constante LED_BUILTIN es el número de pin al que el LED incluido está conectado en la placa. La mayoría de las placas tiene este LED conectado al pin digital 13.

No hay comentarios:

Publicar un comentario