Binary Coffee

Primeros pasos con Arduino

c++ arduino electronic
La plataforma [Arduino](https://www.arduino.cc/) es un sistema microcontrolador monoplaca, de hardware libre, de f√°cil uso y bajo costo, desarrollado inicialmente para facilitar el uso de la electr√≥nica en dise√Īos art√≠sticos e interactivos y la aplicaci√≥n de esta por personas no expertas. Actualmente hay m√°s de 20 modelos de plataformas Arduino con diferencias en cuanto a caracter√≠sticas y posibilidades, n√ļmero de entradas/salidas, microcontrolador, etc., pero compatibles entre s√≠, manteniendo una compatibilidad de abajo arriba, esto es, una aplicaci√≥n que funciona en una plataforma, funcionar√° en otra m√°s compleja, (superior), y que por tanto incluya las caracter√≠sticas de la primera. Arduino encuentra un uso amplio en la ense√Īanza: en materias relacionadas con la rob√≥tica, el control, la adquisici√≥n de datos, los dise√Īos interactivos, etc., a pesar de ser una plataforma sencilla y f√°cil de manejar por usuarios con poca experiencia en el campo de la electr√≥nica, sus potencialidades pueden ser aprovechadas para realizar proyectos que tengan valor desde el punto de vista ingenieril. ### Conociendo la electr√≥nica Como te mencionaba la plataforma Arduino cuenta con una gran variedad de placas y modelos, en este post nos referimos a la placa de Arduino UNO, siendo esta una de las m√°s simples y baratas del mercado y para usos b√°sicos y de aprendizaje no presenta muchas limitantes. La placa tiene un tama√Īo de 75x53mm. Su unidad de procesamiento consiste en un micro-controlador [ATmega328](https://www.alldatasheet.com/view.jsp?Searchword=Atmega328p&gclid=Cj0KCQjww_f2BRC-ARIsAP3zarGDrh1_LkApow26gUa3xGshr4Jp6TsXI1u7BmUxHVDX8omOq3j69McaAhnyEALw_wcB). Puede ser alimentada mediante USB o alimentaci√≥n externa y contiene terminales tanto anal√≥gicos como digitales. ![Arduino UNO](https://api.binary-coffee.dev/uploads/arduino_491ff84dd0.png) Microcontrolador | ATmega328 | ---------|----------| Voltaje operativo | 5V | Voltaje de entrada(recomendado) | 7-12V | Voltaje de entrada (l√≠mites) | 6-20V | Terminales digitales E/S |14 (de los cuales 6 proporcionan salida PWM) | Terminales de entrada anal√≥gica| 6| Corriente continua para terminales E/S | 40 mA | Corriente continua para terminales de 3.3V | 50 mA | Memoria Flash | 32 KB de los cuales 0.5 KB son para el bootloader | SRAM | 2 KB| EEPROM | 1 KB| Velocidad del reloj | 16 MHz | En la siguiente figura se muestra la ubicaci√≥n de los componentes m√°s importantes que componen la placa Arduino Uno. ![Partes de la placa Arduino UNO](https://api.binary-coffee.dev/uploads/partes_fb58c35508.png) ### IDE Arduino El [IDE](https://www.arduino.cc/en/Main/Software) de Arduino cuenta con todas las herramientas necesarias para programar la placa. El lenguaje de programaci√≥n que se utiliza es C. A continuaci√≥n una breve descripci√≥n: ![IDE de Arduino](https://api.binary-coffee.dev/uploads/ide_12de3fcf2a.png) ### Hola mundo en Arduino Para programar nuestra primera placa crearemos un nuevo **sketch** (as√≠ se suele denominar a los archivos de Arduino con extensi√≥n ```.ino```). Para hacer esto hay varias maneras: 1. Archivo/Nuevo 2. ```Ctrl + N``` 3. Click sobre el icono de documento Luego de creado le aparecer√° un documento en blanco en el cual se escribir√° el c√≥digo. Todo c√≥digo de Arduino consta de tres partes principales: 1. Declaraci√≥n de librer√≠as. 2. ```setup``` 3. ```loop``` Si se desean utilizar librer√≠as de terceros se deben importar con la directiva ```include```. El ```setup``` es un m√©todo ```void``` el cual se ejecuta una √ļnica vez al alimentar la placa Arduino. En este bloque de c√≥digo se deber√°n configurar todas las condiciones iniciales de nuestro proyecto (configuraci√≥n de los puertos y registros, inicializaci√≥n de variable entre otras) El ```loop``` es un m√©todo tambi√©n ```void``` el cual se estar√° ejecutando repetidamente mientras la placa este en funcionamiento o, no se este ejecutando ninguna rutina de interrupci√≥n. En este m√©todo deber√° estar toda la l√≥gica funcional de nuestro proyecto. A continuaci√≥n veremos el **hola mundo** en Arduino ``` int LED = 13; void setup() { pinMode(LED, OUTPUT); } void loop(){ digitalWrite(LED, HIGH); delay(500); digitalWrite(LED, LOW); delay(500); } ``` Primero declaramos una variable de tipo entero en la cual almacenaremos la referencia al puerto digital n√ļmero 13 (todos los puertos pueden ser referenciados por su indicador o por el registro asociado). Este puerto esta conectado el√©ctricamente con un [diodo led](https://www.luces.shop/luces-led) de la propia placa Arduino (No necesitas conectar un led al puerto 13 para ver el efecto, si lo haces es recomendado limitar la corriente con una resistencia de 320 ohm). En el m√©todo ```setup``` usaremos la funci√≥n ```pinMode``` para especificar el modo de funcionamiento del puerto. Esta funci√≥n establece un puerto como solo entrada o solo salida. Recibe dos par√°metros: 1. Referencia al puerto 2. Modo El modo puede ser: 1. ```INPUT``` Establece el puerto como entrada (inhabilita expl√≠citamente los pullups internos). 2. ```OUTPUT``` Establece el puerto como salida. 3. ```INPUT_PULLUP``` Habilita las resistencias internas de pullup. En el caso del ejemplo se traduce a usar el pin 13 como salida. En el m√©todo ```loop``` usaremos dos funciones: La primera ```digitalWrite``` y la segunda ```delay``` 1. ```digitalWrite(pin, constante)``` Esta funci√≥n recibe dos par√°metros: la referencia al puerto y una constante. En esencia esta m√©todo establece un potencial en el pin en cuesti√≥n seg√ļn sea la constante pasada como par√°metro. La constante puede ser ```HIGH```, establece 5V o 3,3V (seg√ļn la configuraci√≥n establecida) en el pin, esto representa un nivel alto. Tambi√©n puede ser ```LOW``` para establecer 0V en el pin, representando un nivel bajo o (tierra). 2. ```delay(n)``` Esta funci√≥n establece una pausa de n milisegundos. En el ejemplo lo que se hace es encender y apagar el led del pin 13 con un periodo de 500 ms. Para enviar el c√≥digo a la placa conectamos el Arduino a un puerto USB. En el men√ļ "Herramientas/Tarjetas" seleccionamos Arduino Uno. Luego en el men√ļ "Herramientas/Puerto Serial" deber√° aparecer el nombre del puerto al que se asoci√≥ la placa. Por √ļltimo cargaremos el c√≥digo en el Arduino con una de las siguientes maneras: 1. Presionar el bot√≥n Cargar. 2. Archivo/Cargar 3. ```Ctrl+U``` Luego en el √Ārea de mensajes se mostrar√° todo el proceso y si no ocurri√≥ ning√ļn error deber√°s estar viendo un [LED intermitente](https://www.luces.shop/luces-led/). Hasta aqu√≠ este post introductorio, en otros art√≠culos te mostrar√© ejemplos pr√°cticos del uso de esta tecnolog√≠a.
Opiniones
noavatar
https://i1.wp.com/arduinofacil.com/wp-content/uploads/2018/12/led-parpadeo.gif?resize=300%2C208&ssl=1
noavatar
No has visto nunca un diodo LED parpadear?. Este post lo hice dirigido principalmente a personas que se quieran iniciar en el tema y porque pienso realizar una serie de artículos sobre esta tecnología y necesitaba empezar desde las bases.
noavatar
algun video, un gif, una foto? algo mostrando la magia?