Para comenzar vamso a https://www.tinkercad.com/ y entramos a circuito
En esta opción podemos ver las caracetristicas de acda componente
Comencemos arrastrando una resistencia y cambiandoe l valor a 220 ohms
En un diodo led el Catodo es negativo y anodo en negativo
La salida va desde el pin 13 a la entrada positiva que pasa por al resistencia entra pro el anodo, sale por catodo y se devuelve al GND
Para comenzar a programar vamso a código en modo texto y borramos los datos de setup y de loop.
En void setup se escriben los parámetros iniciales y en void loop se escribe el bucle de programa
Programación por texto
En el parámetro inicial de void setup vamos a definir que el pin 13 será una salida
En void loop vamos a definir que el led se va a encender y se va a apagar usando digitalWrite dos veces, uno con HIGH y el otro LOW
Cuando ejecutamos la simulación nos damos cuenta de que el led permanece encendido y esto se debe a que la transición es muy rápido por lo que debemos agregar un delay con un valor entre parentesis
Programación en bloque
Podemos desechar los codigos arrastrandolos al bote de basura
Luego podemos ir arrastrando bloques desde aquí
Luego tenemos la opción de descargar el código
También podemos ver la lista de componentes y tenemos la opción de descargar aquella lista
Variables
Si conectamos 3 led y salimos desde el catodo (negativo) de cada uno a la linea negativa del portoboard podemos salir de otro punto negativo al GND de Arduino. Con ello tendríamos todos los negativos conectados al mismo puerto Luego conectamos los positivo a cada puerto independiente que vendrían a ser salidas desde el pin de Arduino pasando por su resistencia devolviendose al GND
Yo podría definir en los parámetros inciales del código que cada pin es una salida pero los numeros no nos dicen nada acerca de los elementos que yo tengo conectado...
...por lo tanto vamos a hacer una definición de nombre con variables enteras (int)
Luego agregamos al programación de cada uno
También para ahorrarnos tiempo si queremos tener el mismo tiempo de delay en el encendido y apagdo de todos los led y no sea trabajoso cambiarle el tiempo uno por uno podemos usar una variable para eso
BucleFor
Comenzamos con este circuito conectando cada pin a los anodos, saliendo por los catodos y volviendo al GND
En la programación tenemos la variable Tiempo y la variable Pin. En los parámetros iniciales de void setup vamos a agregar el for. Primero colocamos pin=8 que vendría a ser la primera salida de leds, luego colocamos pin<=12 para considerar el ultimo numero del rango que tenemos y finalmente colocamos pin=++ para que vaya acrecentandose. Finalmente definimos entre llaves que los pines erán de salida colocando pinMode (pin,OUTPUT)
Ahora realizamos la programación para que se enciendan usando el mismo for. Lo que hacemos es que cada en cada led se aplique el programa de apagado, tiempo de espera, encendido, tiempo de espera. Eso se porgrama con digitalWrite y delay. El for nos ahorra el trabajo de tener que estar repitiendo tel mismo código para los 5 led
Subrutinas
Lo primero que hacemos es crear el código similar al que hicimos anteriormente incorporando for para generar una secuancia de encendido y apagado acendente
Ahora para crear una subrutina en la que pretendemos que el orden de encendido cambie de dirección lo que debemos hacer es cortar la programación y pegarla a bajo con un comentario de subrutina //.
Le agregamos como etiqueta de void secuencia_uno()
¿Como ejecutamos esa subrutina?
En void lopp tenemos el programa principal y dentro de el tenemos las dos subrutinas. Cuando se ejecuta la secuencia_uno() se produce el llamado de la subrutina 1 por lo tanto salat a ese nombre y ejecuta esa subrutina 1 (lo que está entre las llaves) y se devuleve a la siguiente linea de código para ejecutar la secuencua_dos() y hace el llamado a la subrutina 2