Arduino – 3. Lenguaje de programación C / C++

Para programar el microcontrolador de nuestra placa Arduino se utiliza una versión reducida del lenguaje C / C++, dentro del sitio oficial podemos encontrar toda la documentación de referencia https://www.arduino.cc/reference/en/., aquí te comparto las que yo considero mas importante.

Comentarios

Los comentarios son muy útiles a la hora de interpretar el código, ya que lo podemos usar para describir el propósito general del programa como su funcionamiento.

// Comentarios en una linea

/*
  Varias lineas
  de comentarios
*/

Estructura inicial

Se basa en dos funciones principales setup() y loop().

/* 
 * Este espacio se utiliza para comentar la finalidad del programa, 
 * el autor, descripción, funcionalidad, detalles necesarios., 
 * invocar librearías y declarar o inicializar variables.
*/ 

// Esta linea solo se incluye si usas VSC PlatformIO
#include <Arduino.h>

void setup() {
   /*
    * Se usa para inicializar variables, funciones, estradas 
    * y salidas (IO), se ejecuta solo una vez al iniciar.
   */
}

void loop() {
  // Función principal, se ejecuta en modo de ciclo infinito.
}

Funciones

Son bloques de código que nos facilitan una tarea repetitiva.

// Definimos o declaramos la función
void nombreFuncion() {
  // Código de la función
}

// Llamar o invocar a una función
nombreFuncion();

Funciones simples

void encenderLed(){
  digitalWrite(LED, HIGH);
}

void apagarLed(){
  digitalWrite(LED, LOW);
}

Funciones que reciben y regresan parámetros

/* 
Las variables que reciben se encuentran dentro de los paréntesis y ahí mismo se declaran tipoVariable nomVariable1
*/
void nombreFuncion(tipoVariable nomVariable1, tipoVariable nomVariable2, tipoVariable nomVariableN) {
  // return regresa el resultado
  return valor;
}

// Invocar a una función e imprimir el resultado que regresa
Serial.println(nombreFuncion(valor1, valor2, valorN));

// O el resultado asignarlo a una variable
tipoVariable resultado;
resultado = nombreFuncion(valor1, valor2, valorN);

Ejemplo función suma

void setup(){
  /* 
    Establecemos la comunicación del puerto serial a 9600 bps
    Necesario para usar Serial.println
  */
  Serial.begin(9600);
}

void loop() {
  // Declaramos la valiable k de tipo enterno (integer)
  int k;
  // k almacena lo que regresa la función (return) 
  k = suma(2, 3); // Resultado = 5
  // Imprimimos el valor de k que es igual a 5
  Serial.println(k);
  // Esperamos un tiempo
  delay(500);
}

// La función recibe dos valores x, y
int suma(int x, int y){
  // Declaramos la variable resultado
  int resultado;
  // sumamos los dos parametros recibidos
  resultado = x + y;
  // Retornamos el resultado
  return resultado;
}

Buenas practicas

Código estructurado o tabulado

comprenderlo o entenderlo

void setup() {
// Necesario para el puerto serial estableciendo la velocidad de datos 9600 bps
  Serial.begin(9600);

}

void loop() {
// Imprimir el mensaje Hola Arduino en el Monitor Serial
  Serial.println("Hola Arduino");
}

Menos lineas de codigo mejor

View more articles
  • Arduino – 7. Apagar gradualmente un LED

    Hemos visto hasta el momento las salidas digitales las cuales solo tiene dos valores posibles 1 HIGH (encendido) y 0 LOW (apagado) con la función digitalWrite(PIN, HIGH / LOW);., también existen los tipos de salidas analógicas PWM (Pulse Width Modulation / Modulación por Ancho de Pulsos) las cuales van de un rango de 0 a…

  • Arduino – 3. Lenguaje de programación C / C++

    Para programar el microcontrolador de nuestra placa Arduino se utiliza una versión reducida del lenguaje C / C++, dentro del sitio oficial podemos encontrar toda la documentación de referencia https://www.arduino.cc/reference/en/., aquí te comparto las que yo considero mas importante. Comentarios Los comentarios son muy útiles a la hora de interpretar el código, ya que lo…

  • Arduino – 6. Ejercicio Semáforo

    Requerimos Conectamos el PIN GND al protoboard a la fila / bus negativa ( – ) y de ahí tomamos un cable a cada cátodo del los Leds, colocamos las resistencias al ánodo de cada Led, del PIN 12 a la resistencia del Led Rojo, del PIN 11 a la resistencia del Led Amarillo y…