... y ahora el programa: en su conjunto sería:

- luces_obras_0 -0.png (78.19 KiB) Visto 1697 veces
Por partes: lo primero es declarar lo que vamos a emplear del arduino: sus cinco terminales. En el sistema se definen con un número, pero para nuestro lenguaje humano se supone que es más cómodo darles un nombre. Ese nombre se incluye, en este caso, en variables:

- luces_obras_0 -1.png (11.61 KiB) Visto 1697 veces
y a las variables se les da un nombre clave para identificar su tipo (vamos como los palos de una baraja, o el uniforme de un equipo de fútbol); en este caso son de tipo int y sus nombres led... porque parece oportuno ya que cada una corresponde a uno de los LED que hemos instalado en la protoboard. El resto es asignarle el número del terminal que el sistema arduino tiene definido para cada terminal. El 'led0' es el número 2.
Lo siguiente, impuesto por el sistema es escribir la función que obligatoriamente se llama setup (void porque no devuelve nada y los paréntesis que acompañan al nombre son el distintivo de que es una función):

- luces_obras_0 -2.png (5.41 KiB) Visto 1697 veces
aquí especificamos la forma de trabajo de cada terminal que vamos a emplear. Es imprescindible porque estos microcontroladores tienen varios bloques funcionales internos y los terminales son su conexión con el exterior; de esta forma especificamos qué prestación queremos de entre las que cada terminal puede tener (en el arduino vienen nombrados los terminales conforme a sus posibles funciones: las entradas analógicas A0...A5, los terminales digitales númerados de 0 en adelante y los que tienen la capacidad de generar señales pwm marcados con el símbolo '~'). Nosotros elegiremos el modo salida (OUTPUT) para cada pin definido.
Y así se llega ya al bucle principal 'loop()' donde se escribe el programa que se repetirá indefinidamente. Lo que queremos es que se encienda el primer LED durante un segundo, luego se apague y se encienda el siguiente..., y así sucesivamente. Las instrucciones básicas serán:

- luces_obras_0 -3.png (6.61 KiB) Visto 1697 veces
digitalWrite (led0,HIGH); (¡ojo a la sintaxis! en lenguaje c las mayúsculas y minúsculas son distintas; montones de errores muy frustrantes al principio) pone a nivel alto (+5V) el terminal led0; es decir, según nuestra conexión el LED se enciende.
delay(1000); pone a la CPU a esperar que pasen 1000 milisegundos (1 segundo)
digitalWrite (led0,LOW); pone a nivel bajo (0V) el terminal led0
y eso se repite para los cinco LEDs que hemos utilizado, de manera continua.
Si todo está conectado correctamente, ya podemos cargar el programa a la placa (que habremos asignado a la de cada cual en el menú Herramientas) y comprobar el funcionamiento. Ajustamos valores, hacemos los cambios que prefiramos y una vez que está a nuestro gusto ya podemos trasladar este código a un sistema concreto como el que empleo al principio de este hilo, porque sería un derroche dedicar la placa arduino a esta función solamente.
Al compilar el programa (generar el código máquina o código interno del microcontrolador) para ver si hemos cometido algún error, nos informa de que el tamaño es de 4990 bytes; me parece desmesurado, es lo que encuentro más problemático de arduino porque es mucho código para operaciones simples. Por ejemplo no se podría cargar en un chip que tuviera 4 KBytes de memoria de programa.

- luces_obras_0 -4.png (7.07 KiB) Visto 1697 veces
...