Fundamentos del lenguaje
27 pasos en 9 series de Arduino.
Arduino es C++ en overol: el dialecto y la biblioteca core que volvieron los microcontroladores una compra de tienda de hobby en vez de un título de ingeniería eléctrica. Un sketch son dos funciones — setup una vez, loop por siempre — y el vocabulario es el hardware mismo: pinMode, digitalWrite, analogRead, millis. Desde 2005 es la rampa de entrada de makers, artistas y estudiantes, y el banco de prototipos de muchísimo trabajo embebido profesional.
Este tour teclea el vocabulario de un banco real: blink y Serial, pines con nombre, botones con pull-up y toggles por flanco, fades de PWM, la tubería analógica de cuentas a voltios con map y constrain, histéresis, los patrones de millis que reemplazan a delay, entrada serial y switches de comandos de una letra, telemetría CSV para el plotter, funciones ayudantes y arreglos de pines, una máquina de estados, buffers de char y structs y EEPROM, interrupciones, tone, y azar sembrado. El Bis son tres dispositivos completos: un semáforo, un controlador de invernadero y una baliza Morse — cada fragmento compila para un Uno de verdad.
El sketch
- La forma del sketchBlink: el hola mundo del hardware, en dos funciones.
- Salida serialLa voz del sketch: begin a una velocidad, print de líneas.
- Pines con nombreconst int le gana a un número de pin suelto por el sketch.
E/S digital
- INPUT_PULLUPLa resistencia interna sostiene el pin en HIGH; apretar lo baja a LOW.
- Toggle al presionarUna variable de estado recuerda entre pasadas; ! la voltea.
- Fade con PWManalogWrite atenúa por ciclo de trabajo: 0 apagado, 255 pleno.
Analógico
- analogReadCuentas de 0 a 1023, y la aritmética que las vuelve voltios.
- map y constrainReescala un rango sobre otro y recorta los bordes.
- HistéresisDos umbrales evitan que la bomba castañetee en la línea.
Tiempo
- Blink sin delaymillis nunca bloquea: compara marcas en vez de dormir.
- Dos temporizadoresDos tareas, dos marcas de tiempo, ninguna espera a la otra.
- DebounceUna pulsación cuenta cuando los contactos dejan de rebotar.
Serial
- Entrada serialavailable cuenta bytes en espera; read los toma de a uno.
- Comandos serialesComandos de una letra desde el monitor manejan los relés.
- Telemetría CSVLíneas separadas por comas que el plotter serial grafica directo.
Funciones y estado
- Funciones ayudantesFunciones chicas con nombre dejan a loop como una política de una línea.
- Arreglos de pinesUn arreglo de pines vuelve el setup repetido un bucle.
- Una máquina de estadosUn enum nombra los estados; switch corre exactamente uno por pasada.
Datos
- Buffers de charBuffers fijos evitan el vaivén de heap de String en 2 KB.
- StructsUn struct lleva una lectura entera por el sketch en una pieza.
- EEPROM1024 bytes que sobreviven al corte de luz.
Periféricos
- InterrupcionesUna ISR corre al instante en que el pin cae, en pleno loop.
- toneManeja un piezo a una frecuencia; noTone lo calla.
- randomSiembra desde un pin flotante y saca de un rango.
Bis
- traffic_light.inoUn semáforo: fases en enum, transiciones a reloj, sin delay.
- greenhouse_monitor.inoEl invernadero entero: dos lazos de histéresis y una línea CSV.
- morse_beacon.inoParpadea un mensaje en Morse desde una tabla A-Z.