Qué vas a ver
Según desplazamos el potenciómetro de un extremo a otro, regularemos el brillo del led rojo
de forma similar a como se hizo en la Lección 7. En esta ocasión el display visualizará un valor
entre 0 y 255 que representa la señal PWM aplicada al led.
Descripción del programa
Importar librería: #include "TM1650.h" #include <inttypes.h>
"TM1650.h" contiene funciones muy completas para controlar el display de 4 dígitos.
Necesitamos instalarla en la carpeta Library de Arduino si queremos hacer uso de esas
funciones. La librería "Inttypes.h" nos permite definir tipo de enteros que contienen información
sobre el tamaño de ese tipo
Función matemática de Arduino map(): int gapValue = map (valor, valor mínimo inicial,
valor máximo inicial, valor mínimo final, valor máximo final)
Pasa números de un rango a otro de forma proporcional. Un valor inicial comprendido entre un
mínimo y un máximo es convertido a otro valor final también comprendido entre un mínimo y
un máximo. En este ejemplo el valor de pmeterValue comprendido entre 0 y 1023 se convierte
en otro proporcional comprendido entre 0 y 255 y se almacena en la variable gapValue.
Divisor y resto: h = gapValue/100; t = moistureValue/10%10; d = moistureValue%10;
"h", "t" y "d" representan los dígitos de las centenas, decenas y las unidades de un valor de
tres dígitos. Si a ese valor lo divides entre 100 obtienes las centenas (p.e. 521 / 100 = 5). Si a
ese valor lo divides entre 10 y luego calculas el resto, obtienes las decenas (p.e. 521 / 10%10
= 2). Por último, si calculas el resto de ese valor dividido entre 10, obtienes las unidades (p.e.
521 % 10 = 1). Así pues tenemos los dígitos 5, 2 y 1 para visualizar en el display. ¡¡Ya puedes
visualizar cualquier valor de hasta 4 dígitos sobre ese display!!
Bucle loop() {código a ejecutar}
En el bucle principal se lee el valor del potenciómetro (0 – 1023) y se redondea o "mapea" a
otro equivalente comprendido entre 0 y 255. Se genera la señal PWM para regular el brillo del
led, y se calculan las centenas, decenas y unidades para visualizar sobre el display.
45