Arduino-Estructura-Básica-del-Código


 El lenguaje de programación de Arduino es sencillo y accesible para todos, incluso para quienes se inician en la electrónica y la programación.Para empezar a entenderlo y con el tiempo llegar a dominarlo, comenzaremos por aprender la estructura básica de su lenguaje Cada código que escribas para Arduino tendrá al menos dos secciones importantes: setup()y loop(). Vamos a ver en detalle cómo funcionan y qué tipos de instrucciones puedes usar en cada una.

1. La Función setup()

La función setup()se ejecuta una sola vez cuando la placa Arduino se enciende o se reinicia. Aquí colocamos las instrucciones que necesitan configurarse antes de que el programa comience a repetirse en el bucle principal ( loop()).

Ejemplos de Instrucciones en setup()

1.1. Configuración de Pines

En Arduino, los pines digitales pueden configurarse como entradas o salidas, dependiendo de si deseas recibir o enviar información. Esto es esencial para controlar componentes como LEDs, motores o para leer valores de sensores.

La función pinMode() se utiliza para establecer el comportamiento de un pin, y generalmente se coloca en la función setup(), ya que sólo necesitas configurarlo una vez al inicio del programa.

Ejemplo de configuración:

void setup() {
  pinMode(13, OUTPUT); // Configura el pin 13 como salida
  pinMode(2, INPUT);   // Configura el pin 2 como entrada

Entradas vs. Salidas

  • Entradas: Usas los pines configurados como entrada para leer señales externas, como un botón o sensor. Con digitalRead(), puedes saber si la señal es ALTA o BAJA.
  • Salidas: Usas los pines configurados como salida para controlar dispositivos externos, como LEDs o relés, usando digitalWrite(). Puedes establecer el pin en estado ALTO (HIGH) para encender un dispositivo o en BAJO (LOW) para apagarlo.

1.2. Iniciar la Serie Comunicación

Si deseas enviar mensajes desde Arduino a tu computadora, como información sobre el estado del sistema, necesitas inicializar la serie de comunicación en setup():

void setup(){
  Serial.begin(9600); // Inicia la comunicación a 9600 baudios
  Serial.println("Iniciando programa..."); // Mensaje al abrir el monitor serie 
En este ejemplo, al iniciar el programa, el mensaje "Iniciando programa..." aparecerá en el monitor serie del IDE de Arduino, lo cual es útil para confirmar que el código está funcionando. Cada vez que quieras enviar un mensaje o dato desde Arduino a tu computadora, utilizarás Serial.print() o Serial.println(), donde la diferencia es que el último añade una nueva línea al final de cada mensaje enviado.

¿Qué Puedes Monitorear con la Comunicación Serie?

  • Valores de Sensores: Puedes leer un sensor y ver su valor en tiempo real en el monitor serie.
  • Estado del Sistema: Monitorea si un pin digital está encendido o apagado, o si alguna acción ha ocurrido.
  • Mensajes de Depuración: Agrega mensajes en diferentes partes de tu código para identificar si algo no está funcionando correctamente.

1.3. Configuración de Periféricos

Si trabajas con sensores o módulos adicionales, muchos de ellos requieren inicialización. Por ejemplo, si tienes un sensor de temperatura o una pantalla LCD, la configuración inicial se haría aquí.

void setup() {
  lcd.begin(16, 2); // Inicia una pantalla LCD de 16 columnas y 2 filas
  lcd.print("Hola, Mundo!"); // Muestra texto en la pantalla
}


2. La Función loop()

Después de la configuración inicial en setup(), la función loop()es donde se ejecutan las instrucciones que quieres que se repitan continuamente. Es aquí donde sucede la mayor parte del trabajo en tu programa Arduino.

Ejemplos de Instrucciones en loop()

2.1 Uso de Temporizadores con delay()

El control del tiempo es una de las herramientas más básicas y útiles en Arduino. La función delay() permite pausar la ejecución del código por una cantidad de tiempo determinada en milisegundos. Esto es útil cuando necesitas esperar entre acciones, como encender y apagar un LED en intervalos regulares.

Ejemplo de uso:

void loop() {
  digitalWrite(13, HIGH); // Enciende el LED
  delay(1000);            // Espera 1 segundo
  digitalWrite(13, LOW);  // Apaga el LED
  delay(1000);            // Espera 1 segundo

¿Cuándo usar delay()?

Para crear efectos de parpadeo en LEDs o luces.Para sincronizar acciones en tu proyecto, como el encendido o apagado de motores en intervalos específicos.En proyectos de control, donde los dispositivos deben activarse o desactivarse en momentos predefinidos.

2.2 Leer un sensor

Muchos sensores, como los de luz o temperatura, proporcionan datos en forma de señales analógicas, lo que significa que no son simplemente "encendido" o "apagado", sino que pueden variar en un rango continuo de valores. En Arduino, puedes leer estas señales utilizando la función analogRead(), que lee los valores de los pines analógicos (A0, A1, A2, etc.).

Arduino también puede leer datos de sensores conectados a sus pines de entrada. Por ejemplo, si tienes un potenciómetro conectado al pin analógico A0, puedes leer su valor y hacer algo con esa información:

Ejemplo básico:

void loop() {
  int valor = analogRead(A0); // Lee el valor del pin A0
  Serial.println(valor);      // Envía el valor al monitor serie
  delay(500);                 // Espera 0.5 segundos antes de repetir
}

¿Cómo funciona analogRead()?

Devuelve un valor entre 0 y 1023, que representa la intensidad de la señal analógica leída en el pin especificado.
Útil para medir variables continuas, como la luz ambiente (con una fotorresistencia) o la temperatura (con un termistor).
Este valor luego se puede usar para tomar decisiones en el código, como ajustar el brillo de un LED o activar un relé cuando la lectura supera un umbral.


2.3. Tomar Decisiones con Condicionales

Puedes usar condicionales como ifpara que tu código reaccione a eventos, como presionar un botón:

void loop() {
  int estadoBoton = digitalRead(2); // Lee el estado del pin 2
  if (estadoBoton == HIGH) {        // Si el botón está presionado
    digitalWrite(13, HIGH);         // Enciende el LED
    
  } else {
    digitalWrite(13, LOW);          // Apaga el LED si no está presionado
 

3. Ampliando Tus Conocimientos

A medida que vayas avanzando, te encontrarás con más funciones y características del lenguaje Arduino. Aquí solo cubrimos lo básico, pero conforme explora más proyectos, irás agregando otras herramientas como interrupciones, temporizadores y mucho más.