Programación Parte 2
Después de entender la estructura básica de nuestro programa y cómo almacenar valores, necesitamos explorar cómo interactuar con los componentes de nuestros circuitos.
Input
Una operación de entrada es aquella en la que leemos o recibimos datos de un componente en nuestro circuito - un sensor. Como se explica en la sección Circuitos , diferentes sensores pueden tener señales digitales y analógicas.
Señal | Instrucción de Arduino | Explicación |
---|---|---|
Analógico | analogRead(pin) | Devuelve un valor entero entre 0 y 1023 leído en pin |
Digital | digitalRead(pin) | Devuelve 0 (LOW) o 1 (HIGH) leído en pin |
Ejemplo
// Leer el valor de un botón conectado al pin digital 2
buttonState = digitalRead(2);
// Leer el valor de un sensor conectado al pin analógico A3
sensorReading = analogRead(A3);
Salida
Por el contrario, una operación de salida es aquella en la que enviamos datos a un componente en nuestro circuito, un actuador.
Señal | Instrucción de Arduino | Explicación |
---|---|---|
Analógico | analogWrite(pin, valor) | Envía un valor entre 0 y 1023 a pin |
Digital | digitalWrite(pin, valor) | Envía 0 (LOW) o 1 (ALTA) a pin |
Ejemplo
// Enviando una señal HIGH (igual que el valor 1) al pin 3
digitalWrite(3, HIGH);
// Enviando un estado de 123 al pin A1
analogWrite(A1, 123);
Decisión
Para implementar la toma de decisiones en la programación, utilizamos condicionales. Nos permiten determinar qué debería ocurrir (las instrucciones deben ser ejecutadas) en función de las condiciones que definimos.
Síntesis
// Un condicional simple si
if (condition) {
// Instrucciones para ejecutarse sólo si la condición es verdadera
}
// if-else condicional
// usado cuando comprobamos dos posibles resultados de una condición
if (condition) {
// Instrucciones para ejecutarse si la condición es verdadera
} else {
// Instrucciones para ejecutarse si la condición es falsa
}
// if-else-if condicional
// usado cuando comprobamos más de dos resultados posibles de una condición
if (condition1) {
// Instrucciones para ejecutarse si la condición 1 es verdadera
} else if (condition2) {
// Instrucciones para ejecutarse si la condicion 1 es falsa, pero la condicion 2 es verdadera
} else {
// Instrucciones para ejecutar si todas las condiciones son falsas
}
Donde la condición `` generalmente puede ser una de las siguientes:
Operador | Descripción | Ejemplo |
---|---|---|
== | Igualidad | buttonState == MÁS |
!= | Desigualdad | buttonState != MÁS |
> | Mayor que | sensor de lectura > 300 |
>= | Mayor o igual | sensor de lectura >= 300 |
< | Menos que | sensor de lectura < 300 |
< | Menos o igual | sensor de lectura <= 300 |
Serial
Una función de programación muy importante que usaremos tiene que ver con obtener información del Arduino ya que nuestro programa se está ejecutando. El puerto Serial proporciona esta comunicación y no necesitamos crear un circuito para ella.
Configuración
void setup() {
// Iniciar el puerto serie y configurarlo a la velocidad de transferencia de 9600 bits por segundo
Serial.begin(9600);
}
Manipulación
void loop(){
// Imprime la lectura desde A0 siempre en una nueva línea
Serial. rintln( analogRead(A0) );
// Espera 0. segundos (500 milisegundos) antes de ejecutar de nuevo la función de bucle
delay(500);
}
Retraso
Como vimos en el último ejemplo, la función delay()
puede utilizarse para pausar la ejecución de nuestro programa durante un tiempo especificado.
Sintaxis delay(number_of_millisegunds)
Ejemplo: delay(1000) para una pausa de 1sec (5000) para 5segs, delay(50) para 50 milisegundos
Esto puede ser útil siempre que necesitemos una pausa entre la ejecución de las instrucciones y es comúnmente colocado como la última instrucción en la función de bucle para proporcionar una pausa antes de ejecutarla de nuevo.