[AUDIO_EN_BLANCO] Hola. Seguimos con la lección de primeros pasos en la plataforma Arduino. Y ahora vamos a ver un poco más sobre el software. Ustedes ya, en la tarea, habrán descargado el software que lo tenemos aquí. Y seguramente lograron hacer que este led del microprocesador se prendiera y se apagara. Ahora vamos a tratar de entender un poco cómo es que funciona esto. Lo primero que tenemos que saber es cómo es el software Arduino. Entonces lo que tenemos acá, en su computador seguramente se ve bastante parecido. Puede variar un poco según la plataforma. Es básicamente un editor de texto donde nosotros hacemos un programa que está escrito en lenguaje C. Aunque por la cantidad de funciones que se usan en Arduino, y esa es una de las ventajas que tiene, normalmente uno no tiene que preocuparse de todo lo que se preocuparía si programara en lenguaje C. Además hay una consola que nos muestra alguna información relevante como por ejemplo, el estado de la memoria y algunos errores que se puedan generar. Y estos dos botones, que los vamos a usar bastante, se usan para verificar el programa, y para compilar y cargar el programa al microcontrolador. Por supuesto, pueden encontrar más información sobre el software en la página de Arduino. Después necesitamos entender un poco más el programa, que en la plataforma de Arduino se le llama Sketch. Entonces veamos un poco la sintaxis. Todo esto que está entre el slash asterisco y asterisco slash son comentarios. Es decir, no importa lo que yo ponga acá, el código no se va a ver afectado de ninguna manera. Lo mismo, las líneas que están después de un doble slash. ¿Cuál es la diferencia? Que el doble slash solo comenta la línea correspondiente mientras que slash asterisco comenta todo lo que esté encerrado entre este símbolo y este símbolo. Los dos son equivalente en cuanto a su utilidad. Todo lo que esté comentado no es compilado en el programa. Después vienen estas dos secciones de códigos que son lo fundamental en el lenguaje Arduino. El primero se llama setup, y el segundo se llama loop. ¿Cómo funciona esto? Setup se ejecuta primero. Cuando uno parte el programa lo primero que se ejecuta es el setup. Y después tenemos esta función loop que se repite infinitamente. Entonces, como su nombre lo dice, setup se usa para configuraciones iniciales. Se ejecuta una sola vez. Y después viene este loop que se ejecuta una vez, llega hasta el final y vuelve a empezar. Por lo tanto todo lo que tengamos acá adentro se va a ejecutar infinitamente. Y acá es donde está, en general, el hilo principal del programa. Ahora, ¿qué es exactamente lo que está haciendo este programa? Vemos que primero se llama a esta línea que dice pin mode. No sabemos en realidad que hace todavía. Y después están estas otras líneas digital write, delay digital write, delay. ¿Qué son estás líneas? Estas son funciones. Y las funciones son una de las principales utilidades de la plataforma Arduino porque, como decía antes, nos permiten hacer muchas cosas sin saber en realidad que está pasando de fondo. Y sin tener que encargarnos mucho de la programación en C. Entonces, vamos a ver un poco qué son las funciones. Por ahora, son simplemente cajas negras. Es decir, vamos a aprender cómo usar una función. Necesitamos saber su nombre, necesitamos saber sus parámetros. Vamos a aprender qué hace. Pero no nos vamos a preocupar de cómo lo hace ni de qué hay dentro de esta caja negra sino que vamos a ver la caja negra como está acá. Yo tengo una función que tiene algún nombre. Debo conocerlo. Recibe algunos parámetros y, de alguna forma, hace algo. Yo no sé que hace. O sea, sé que hace, por eso la estoy llamando, pero no se cómo lo hace internamente. Por ejemplo, yo puedo cambiar una salida de microcontrolador, puedo transmitir datos, etc. Y las funciones que necesitamos aprender para entender el código de la tarea son estas. Primero tenemos pin mode, que cambia el número pin, que yo lo entrego. Esto es un número. Por ejemplo, yo le digo cambia el pin uno o el pin tres a un cierto modo que puede ser, por ahora, input o output. O sea, yo puedo usar ese pin, que es un puerto digital para recibir información o enviar información. Después está la función digital write, que cambia una salida digital, o sea necesito haber hecho esta función output para establecer un puerto como salida. Y luego uso la función digital write para cambiar ese mismo pin, supongamos el pin uno a valor. Valor puede ser high o low, equivalente a uno o cero. Y la función delay, que lo único que hace es esperar durante una cierta cantidad de milisegundos dada por este valor. Entonces ahora veamos si podemos entender qué está pasando en el programa. Lo primero que hacemos es decir que el pin 13 lo declaramos como salida. ¿Por qué el pin 13? Porque la tarjeta de desarrollo Arduino uno, que es la que estamos usando, y en general casi todas las tarjetas de desarrollo Arduino en el pin 13 tienen conectado un led. Por lo tanto no necesitamos hacer ningún circuito para usar un led para ejemplos básicos. Y después entramos a un loop que se repite infinitamente donde le digo escribe un uno en la salida. Por lo tanto, cuando escribo un uno, acá voy a tener cinco volt. Después espera 1.000 milisegundos, o sea un segundo. Después escribe un cero, y después espera aquí dice 100, en el código original tenemos 1.000 milisegundos. También es un segundo. Por lo tanto, ¿qué vamos a ver? Vamos a ver que el led se enciende durante un segundo y se apaga durante otro. Y eso se repite indefinidamente. Este ejemplo es bastante sencillo. Veamos si podemos modificar el programa. Primero vamos a tratar de cambiar los tiempos de delay y después veremos si podemos modificar el código para que se prenda y apague solamente dos veces. Entonces acá tenemos el programa. Por supuesto que, en su tarea, ustedes tienen que haber revisado que la placa que están usando está debidamente seleccionada, y el puerto que están usando también esté seleccionado correctamente. Porque de otra manera no van a poder cargar el programa en su microcontrolador. Y si usan una placa diferente como mencionaba antes, que hay varios archivos llamados header que tienen información sobre el microcontrolador que están usando, esa información va a estar errónea y su programa seguramente no va a funcionar. Entonces, acá tenemos nuestro programa. Nos quedamos solamente con lo que está aquí abajo. Y si queremos cambiar los tiempos de delay simplemente podemos modificar estos valores que tenemos aquí. Entonces si yo quiero en vez de hacerlo durante un segundo quiero que esto ocurra 10 veces por segundo, esto es todo lo que tengo que cambiar. Estos 1.000 los cambio por 100 y veamos cómo se comporta esto. Entonces, como pueden ver, ahora el led está parpadeando mucho más rápido que antes. Y así de sencillo es cambiar los tiempos de delay. Para modificar el programa, si queremos que esto solo se prenda y apague dos veces, ¿qué tenemos que hacer? Bueno, en vez de poner esto en loop lo podemos poner en setup. Eso pueden hacerlo ustedes después en sus casas. Por supuesto no es la mejor forma de hacerlo, y cuando aprendamos más sobre programación veremos mejores formas de controlar la cantidad de veces que se prende el led. Pero por ahora es un ejemplo sencillo. Prueben con mover el código a setup y vean que se va a ejecutar solamente una vez.