Funciones de entrada y salida de Arduino

Funciones de entrada y salida de Arduino
Para interactuar la placa Arduino con diferentes chips integrados, sensores, LED y otros periféricos se utilizan diferentes funciones para la entrada y salida. Del mismo modo, para ejecutar el código compilado en la placa Arduino, estas funciones también se utilizan. Estas funciones de entrada y salida también definen las entradas y salidas del programa Arduino.

Funciones de entrada/salida

Hay cinco tipos diferentes de funciones que se utilizan en Arduino para configurar sus entradas y salidas. Las siguientes funciones de salida de entrada se discuten brevemente en este discurso:

  • función pinmode ()
  • Función DigitalRead ()
  • Función DigitalWrite ()
  • Función Analogread ()
  • función analogwrite ()

función pinmode ()

Para conectar los periféricos a la placa Arduino, sus alfileres se asignan a cada dispositivo que debe conectarse a la placa Arduino. El número de PIN se asigna en el código Arduino utilizando la función de modo PIN. La función del modo PIN tiene dos argumentos: uno es el número de pin, y el otro es el modo del PIN. Los modos PIN se dividen en tres tipos.

  • APORTE
  • PRODUCCIÓN
  • Input_pullup

APORTE : Define el pin respectivo que se utilizará como una entrada para Arduino.

PRODUCCIÓN : Este modo se usa cuando se debe dar instrucción a cualquier dispositivo conectado.

Input_pullup : Este modo también se usa para asignar estado de entrada al pin. Al usar este modo, la polaridad se invertirá de la entrada dada, por ejemplo, si la entrada es alta, eso significará que el dispositivo está apagado y si la entrada es baja, eso significa que el dispositivo está encendido. Esta función funciona con la ayuda de resistencias internas que están construidas en Arduino.

Sintaxis : Para usar el modo PIN, se debe seguir la siguiente sintaxis:

PinMode (Number Pin, Modo de Pin);

DigitalRead () y DigitalWrite () Funciones

Hay 14 alfileres digitales en el Arduino Uno que se pueden usar para las funciones de lectura y escritura. Cuando se conoce el estado de cualquier PIN específico, se usa la función digitalRead (). Esta función es una función de tipo de retorno, ya que le indicará el estado del pin en su salida.

Del mismo modo, cuando se debe asignar un estado a cualquier PIN, entonces se usa una función digitalwrite (). La función DigitalWrite () tiene dos argumentos, uno es el número PIN y otro es el estado que será definido por el usuario.

Ambas funciones son de tipo booleano, por lo que solo se usan dos tipos de estados en la función de escritura digital, uno es alto y el otro es bajo. Para usar las funciones DigitalRead () y DigitalWrite (), se debe usar la siguiente sintaxis:

DigitalRead (Number PIN);
DigitalWrite (Number Pin, Estado);

Ejemplo

En el ejemplo mencionado a continuación, se utilizan las funciones PinMode (), DigitalRead () y DigitalWrite ():

int Buttonpin = 2;
int ledpin = 12;
// Las variables cambiarán:
int ButtonState;
setup () void
De serie.comenzar (9600);
PinMode (LEDPIN, salida);
PinMode (Buttonpin, input_pullup);

bucle void ()
ButtonState = DigitalRead (ButtonPin);
De serie.println (ButtonState);
if (ButtonState == 1)
// gire el LED encendido:
DigitalWrite (LEDPIN, 1);
demás
// Gire LED:
DigitalWrite (LEDPIN, 0);

En el código de ejemplo, se realiza un LED activado y apagado utilizando las funciones de entrada y salida y también se usa un botón Push.

Primero se declara el número PIN para el botón y el LED y el input_pullup se da al botón como su modo y luego el LED recibe la salida como su modo.

Para leer el estado del botón, debe estar en el modo de entrada, por eso Input_Pullup se da al botón y en la función de configuración utilizando el modo PIN Los pines declarados se asignan a Arduino para el botón y LED.

Del mismo modo, después de eso, el bucle lee el estado inicial del botón usando la función Digitaread ().Si el estado del botón es alto, entonces el LED recibirá el estado alto, lo que significa que LED se encenderá. Sin embargo, si el estado del botón es bajo, entonces el estado de LED será bajo, eso significa que el LED se apagará.

Dado que el input_pullup se usa para un botón que invertirá las entradas del botón como cambiar alto en Low y viceversa. Entonces, cuando se compila el programa, el LED también se encenderá y, al presionar el botón, el LED se apagará.

Producción

Funciones de anicoGread () y analogwrite ()

El Arduino Uno tiene 6 puertos analógicos que pueden ser utilizados por estas funciones analógicas de lectura y escritura. La función Analogread () leerá el estado del PIN analógico y devolverá un valor en forma de números en el rango de 0 a 1024 para una resolución de 10 bits y para una resolución de 12 bits, el rango será de 0 a 4095.

La resolución de bits es la conversión analógica a digital, por lo que durante 10 bits el rango se puede calcular por 2^10 y para 12 bits será 2^12 respectivamente. Sin embargo, para asignar un estado a cualquier pin analógico en el arduino uno la función analogwrite () se usa. Generará la onda de modulación de pulso y el estado se definirá dando su ciclo de trabajo que varía de 0 a 255.

La principal diferencia entre las funciones analógicas y digitales es que lo digital define los datos en forma de alto o bajo, mientras que el análogo proporciona los datos en forma de un ciclo de trabajo de modulación de ancho de pulso. Se da la sintaxis de la lectura y escritura analógica y después de eso se da un código de ejemplo para fines de ilustración:

Analograad (Number Pin);
analogwrite (number pin, valor de pin);

Ejemplo

Para demostrar el uso de DigitalRead () y DigitalWrite () Funciones, se compila un programa Arduino para cambiar el LED de brillo. El brillo del LED se cambia usando el potenciómetro que está conectado al pin analógico A3 del Arduino. La función Analogread () lee la salida del potenciómetro y luego los valores del potenciómetro se escalan utilizando la función MAP. Después de que el valor se escaline, se le da al LED.

int led_pin = 4;
setup () void
De serie.comenzar (9600);
PinMode (LED_PIN, salida);

bucle void ()
int analogValue = anicoGread (a3);
int brillo = map (analogValue, 0, 1023, 0, 255);
Analogwrite (LED_PIN, Brillo);
De serie.imprimir ("Analógico:");
De serie.imprimir (analogValue);
De serie.imprimir (", brillo:");
De serie.println (brillo);
retraso (100);

Cuando el valor del potenciómetro es cero, eso significa que la resistencia es máxima y no habrá voltaje suministrado al LED. Por lo tanto, el valor para el brillo también será cero, por lo tanto, el LED permanecerá fuera del estado.

Cuando disminuye el valor del potenciómetro, aumentará el valor del brillo y, por lo tanto, el LED estará en estado.

Conclusión

Las funciones de salida de entrada juegan un papel muy importante cuando se trata de dispositivos de interfaz con Arduino o cuando realiza proyectos basados ​​en hardware. Estas funciones son bloques de construcción de cada proyecto Arduino. En esta redacción, las funciones de salida de entrada se discuten en detalle con la ayuda de códigos de ejemplo.