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.
}

Variables, Ciclos, Condicionales

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;
}

En proceso…

View more articles
  • Como instalar Fedora en MacBookPro15,1 MacBook Pro (15-inch, 2018)

    Mi MacBookPro15,1 la uso para desarrollo y ya no soporta las nuevas versiones de MacOS solo hasta Sequoia (15.x)., por lo que he optado por la mejor solucion instalarle Fedora Linux que es la distro que mas me gusta. Este equipo es de los primeros en implementar un chip de seguridad T2. Este chip maneja…

  • Instalar Fedora MacBookPro9,2 MacBook Pro 13-inch Mid 2012

    Tenia a la mano un MacBookPro que usaba para trabajar ya la había actualizado hasta el tope con 16GB de RAM y un SSD SATA y que a la fecha es un equipo viejo, decidí instalarle una de mis distribuciones de Linux preferidas Fedora, así que te comparto una guía de instalación. Todo funciona perfecto…

  • Como Fabricar Un Adaptador Alámbrico E Inalámbrico Para Controles De Videojuegos Compatible En Varias Consolas Con Joypad OS

    Joypad OS es un firmware para placas de microcontroladores (RP2040, ESP32-S3, nRF52840) con el cual puedes fabricar un adaptador tanto alámbrico como inalámbrico para controles de videojuegos. Podrás conectar estos controles USB y Bluetooth: Xbox PlayStation Nintendo 8BitDo Mandos inalámbricos: Adaptadores USB: Otros controladores compatibles Consolas compatibles Modo Descripción SInput Modo compuesto predeterminado: funciona en…