Actividad 8


Ahora vamos a hacer que múltiples LEDs puedan comunicarse con Arduino.

Screenshot_32.png

Una vez definidas los valores que se asignan en las funciones comprobamos que al menos una de las dos exista, ya que como se pasan de dos en dos, si existe una existe la otra. Si existe guardo cada valor de cada una que he pasado en valor1 y valor2. Sino serán 0 y ahora les paso al arduino cada valor uno tras de otro.

Screenshot_33.png

En cada función comprobamos el valor pasado. Depende de si es el 1 o el 2 asignamos un valor a valorLumen1 y ponemos en valorLumen2 el default que definimos arriba o ponemos en valorLumen1 el default que definimos arriba y asignamos un valor a valorLumen2.

Screenshot_34.png

Esta vez hemos creado dos “ruedas” para medir valores en dos LEDs distintos. Y esta vez dependiendo de cual modifiquemos irá a parar a una función diferente.


Esta vez explicaremos como asignar un valor analógico para cada LED.

Screenshot_24.png

Como le hemos pasado los dos valores, el primero el del LED1 y el segundo el del LED2, que corresponden al pin 10 y al pin 11 en Arduino, leemos los datos como un char y lo guardamos en la variable dato. Luego le restamos el carácter 0 y lo guardamos para que quede el valor se correspondería con un entero (los char a fin de cuentas son bytes así que restamos bytes y guardamos bytes realmente), luego mapeamos el valor del carácter que hemos guardado. Ahora ya tenemos el valor real analógico pero ¿a que LED pasárselo? Simple. Con un contador que definimos antes y lo inicializamos a 0 comprobamos que, si está a 0 entre en el primer if y escriba en el primer LED, sumamos 1 al contador, y si es distinto de 0 entra en el segundo if y lo escribe en el segundo LED. Luego el contador vuelve a 0. Así que al pasarle siempre los valores de 2 en 2 entrará la primera vez en el 1 por el contador ser igual a 0 y luego en el 2 por ser más de 0, en este caso 1, y nunca lo superará ya que luego lo reiniciamos a 0.

Así quedaría el circuito:

Screenshot_40.png

Anuncios

Actividad 7

 


Vamos a explicar el código PHP de como hacer un LED regulable

Screenshot_30.png

Aquí comprobamos la variable que le hemos pasado abajo ValorLumen que contiene el valor escogido y si existe lo guardamos en otra llamada valor, luego se lo pasamos al arduino. Sino existe le pasamos 0 para que se apague.

Screenshot_31.png

Con este código creamos una “rueda” con un rango de valores y hacemos que, con la función ChangeLumen(this), si lo modificamos mande al propio PHP en la barra del navegador el valor que hemos marcado y lo guarde en una variable llamada ValorLumen. Además abajo mostramos el valor escogido.


En esta práctica hemos configurado arduino para regular la luminosidad de un led mediante un formulario:

Screenshot_27.png

En el código ponemos 12.75 porque hemos dividido la barra de control entre 20 por lo cual 255/20=12.75.

Screenshot_28.png

Este es el formulario donde podemos controlar la luminosidad, abajo nos indica el valor exacto que le estamos enviando.

Ahora hemos modificado el código mapeando la división de la barra regulable de esta manera:

Screenshot_29.png

De esta forma conseguimos que funcione de manera analógica y convertimos valores que van del 0 al 19 en valores de 0 a 255, que son los valores que puede tomar en arduino máximo. Tras mapear el número después de leerlo y guardarlo en la misma variable, al escribirlo justo después ya toma el valor correcto y sube o baja la luminosidad en la misma medida.

Actividad 6


Leds automático en cadena

En esta práctica vamos a aplicar lo aprendido en la práctica del led automático pero añadiendo 2 leds más que irán con efecto en cascada.

Para ejecutar esta práctica tenemos que crear un for por cada estado de los leds que irán diferenciadas por un retardo o un delay , todos estos van dentro de otro for que se va incrementando infinitamente.

Cuando el primer led complete el bucle incremental hasta el valor 255 se cerrará el for y pasaremos al siguiente donde el primer led disminuye su valor de 255 a 0 , en cambio el segundo led irá incrementando su valor de 0 a 255, restando la inversa del decremento.

El siguiente for tiene la función inversa, incrementará el tercer led hasta 255 y el segundo led irá decreciendo hasta 0. Finalizamos con un último for para disminuir el valor del tercer led hasta 0.

Screenshot_38.png

A partir de aquí los for tienen la función de realizar lo ya explicado en los 4 anteriores bucles pero en el sentido opuesto:

Screenshot_39.png

Actividad 5

 


Led automático

En esta práctica vamos a programar arduino para que controle un led de forma automática, es decir, esta vez nosotros no vamos a necesitar un php para que cambie los valores.

En este caso le hemos puesto un loop para que vaya creciendo el valor i que es igual al voltaje del led, cuando acabe entra en el otro loop decreciendo.

Podemos variar la velocidad en el delay.

Screenshot_23.png

Hemos hecho un for donde la variable i se va incrementando cada vez que se realiza una vuelta, cuando llega al valor 255 el primer bucle se termina y comienza el segundo que tiene la finalidad opuesta del primer for , es decir, va decreciendo el valor por cada vuelta que da.

Así quedaría el circuito:

Screenshot_41.png

Actividad 4

Practica arduino-php encender/apagar leds

En esta práctica hemos creado un código en arduino para encender 3 leds desde un formulario php con botones para el encendido y apagado de dichos leds.

1

2

Hemos creado un formulario con dos botones para cada LED: encendido y apagado. En action recogemos que el php se ejecute en el mismo archivo.

Ahora comprobamos que exista información enviada y dependiendo del nombre del botón que hemos enviado información pasaremos un número por el puerto indicado para que Arduino lo recoja.

Este es el código que hemos insertado en arduino:

a

Dependiendo del nº enviado encenderemos o apagaremos el LED indicado.