En programación, una constante es un valor que no puede ser alterado o modificado durante la ejecución de un programa[1], únicamente puede ser leído. Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.
Descripción de niveles lógicos
Para arduino y los demás lenguajes de programación existen dos constantes para representar la verdad y falsedad.
-
FALSE: Falso se define como 0 (cero).
-
TRUE: True se define como 1, lo cual es correcto para arduino y muchos lenguajes de programación; pero un estado verdadero también puede ser un entero que sea diferente de 0, así, 2, 5, -10, -1 también se definen como verdadero en un sentido booleano.
Tenga en cuenta que true
y false
se escriben en minúsculas a diferencia de HIGH
, LOW
, INPUT
y OUTPUT
.
Definición de pin ALTO y BAJO
Al leer o escribir en un pin digital solo hay dos valores posibles que un pin puede tomar o ser configurados HIGH
o LOW
[2].
HIGH
El significado de HIGH
es algo diferente dependiendo de si un pin está configurado en un INPUT
o OUTPUT
. Cuando un pin se configura como INPUT
con un pinMode()
y se lee con digitalRead()
, el Arduino informará un estado HIGH
si:
- Una tensión superior a 3.0V está presente en el pin (tableros de 5V).
- Hay un voltaje mayor que 2.0V voltios en el pin (tableros de 3.3V).
Un pin también puede configurarse como una INPUT
con pinMode()
, y posteriormente hacerse HIGH
con digitalWrite()
. Esto habilitará las resistencias pullup internas de 20K, que elevarán el pin de entrada a una lectura HIGH
a menos que sea tirado por LOW
un circuito externo. Esto se puede hacer alternativamente pasando un INPUT_PULLUP
argumento a la función pinMode()
, como se explica con más detalle en la sección "Definición de los modos de pines digitales: ENTRADA, ENTRADA_PULTA Y SALIDA" más adelante.
Cuando un pin se configura en SALIDA con pinMode()
, y se establece en HIGH
cuando digitalWrite()
, el pin está en:
- 5 voltios (tableros 5V).
- 3.3 voltios (tableros 3.3V).
En este estado, puede generar corriente, por ejemplo, encender un LED que está conectado a tierra a través de una resistencia en serie.
LOW
LOW
también tiene un significado diferente dependiendo de si un pin está configurado en INPUT
o OUTPUT
. Cuando un pin se configura como INPUT
con pinMode()
y se lee con digitalRead()
, el Arduino informará LOW
si:
- Una tensión inferior a 1.5V está presente en el pin (tableros de 5V).
- Hay un voltaje inferior a 1.0V (Aprox.) en el pin (placas de 3.3V).
Cuando un pin se configura en OUTPUT
con pinMode()
, y se configura en LOW
con digitalWrite()
, el pin está a 0 voltios (ambos tableros de 5V y 3.3V). En este estado, puede sumir la corriente, por ejemplo, encender un LED que está conectado a través de una resistencia en serie a +5 voltios (o +3.3 voltios).
Definición de los modos de pines digitales: INPUT, INPUT_PULLUP y OUTPUT
Pines digitales pueden utilizarse como INPUT
, INPUT_PULLUP
o OUTPUT
. Cambiar un pin con pinMode()
cambia el comportamiento eléctrico del pin.
INPUT
Los pines Arduino configurados como INPUT
con pinMode()
se dice que están en un estado de alta impedancia. Los pines configurados INPUT
hacen que el circuito muestre exigencias extremadamente pequeñas, lo que equivale a una resistencia en serie de 100 megohmios frente al pin. Esto los hace útiles para leer un sensor.
Si tiene su pin configurado como un INPUT
interruptor y está leyendo un interruptor, cuando el interruptor está en el estado abierto, el pin de entrada estará "flotando", lo que dará como resultado resultados impredecibles. Para asegurar una lectura correcta cuando el interruptor está abierto, se debe usar una resistencia de levantamiento o de bajada. El propósito de esta resistencia es llevar el pin a un estado conocido cuando el interruptor está abierto. Generalmente se elige una resistencia de 10K ohmios, ya que es un valor suficientemente bajo para evitar de manera confiable una entrada flotante y, al mismo tiempo, un valor lo suficientemente alto como para no consumir demasiada corriente cuando el interruptor está cerrado. Consulte el tutorial de lectura digital en serie para obtener más información.
Si se usa una resistencia desplegable, el pin de entrada estará LOW
cuando el interruptor esté abierto y HIGH
cuando el interruptor esté cerrado.
Si se usa una resistencia de pull-up
, el pin de entrada estará HIGH
cuando el interruptor esté abierto y LOW
cuando el interruptor esté cerrado.
INPUT_PULLUP
El Arduino tiene resistencias de pull-up internas (resistencias que se conectan a la alimentación interna) a las que puede acceder. Si prefiere usar estas resistencias de pull-up en lugar de las externas, puede usar el INPUT_PULLUP
argumento en pinMode()
.
Los pines configurados como entradas con INPUT
o INPUT_PULLUP
pueden dañarse o destruirse si están conectados a voltajes bajo tierra (voltajes negativos) o por encima del riel de alimentación positiva (5V o 3V).
OUTPUT
Los pines configurados como OUTPUT
con pinMode()
se dice que están en un estado de baja impedancia. Esto significa que pueden proporcionar una cantidad sustancial de corriente a otros circuitos. Los pines ATmega pueden generar (proporcionar corriente) o hundir (absorber corriente) hasta 40 mA (miliamperios) de corriente a otros dispositivos / circuitos. Esto los hace útiles para alimentar los LED porque los LED normalmente usan menos de 40 mA. Las cargas superiores a 40 mA (por ejemplo, motores) requerirán un transistor u otro circuito de interfaz.
Los pines configurados como salidas pueden dañarse o destruirse si se conectan a tierra o a los rieles de alimentación positiva.
Referencias
[1] wikipedia constante, https://es.wikipedia.org/wiki/Constante_(inform%C3%A1tica) Consultado marzo 2019
[2] arduino https://www.arduino.cc/reference/en/language/variables/constants/constants/, Consultado marzo 2019