Hola a todos
Estoy armando los circuitos del tiempo del DeLorean de volver al futuro
Tengo el display rojo y el verde (los leds amarillos aun no los consegui)
Mi problema es que creo el objeto verde y el objeto rojo y tengo funciones para dibujar cada letra y numero, pero si bien el codigo se repite, tengo que declarar el objeto verde o el rojo segun cual quiero escribir
Mi idea es pasar una variable a una funcion que tenga todos las funciones de los numeros y con pasarle 0 o 1 sepa si tiene que escribir la matriz roja o verde. Espero haber transmitido la idea
Sigue el codigo
#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"
Adafruit_8x16matrix rojo = Adafruit_8x16matrix();
Adafruit_8x16matrix verde = Adafruit_8x16matrix();
void setup()
{
rojo.begin(0x70); // pass in the address
verde.begin(0x71); // pass in the address
rojo.clear();
verde.clear();
}
void loop()
{
verde.drawPixel(7, 15, LED_ON);//G
verde.drawPixel(6, 15, LED_ON);//G
rojo.drawPixel(7, 15, LED_ON);//G
rojo.drawPixel(6, 15, LED_ON);//G
verde.writeDisplay();
rojo.writeDisplay();
delay(500);
verde.drawPixel(7, 15, LED_OFF);//G
verde.drawPixel(6, 15, LED_OFF);//G
rojo.drawPixel(7, 15, LED_OFF);//G
rojo.drawPixel(6, 15, LED_OFF);//G
rojo.writeDisplay();
verde.writeDisplay();
delay(500);
}
Como ven repito el mismo código para el display rojo y el verde
Mi idea es crear una función asi
void blink(string VARIABLE) //String como ejemplo, la idea es pasarle "amarillo" por ejemplo y que la función substituya en la linea
{
VARIABLE.drawPixel(7, 15, LED_ON);//G
VARIABLE.drawPixel(6, 15, LED_ON);//G
VARIABLE.writeDisplay();
}
Ejemplo llamo a la función blink (amarillo) y que me devuelva
{
amarillo.drawPixel(7, 15, LED_ON);//G
amarillo.drawPixel(6, 15, LED_ON);//G
amarillo.writeDisplay();
}
Y si llamo a blink(rojo)
{
rojo.drawPixel(7, 15, LED_ON);//G
rojo.drawPixel(6, 15, LED_ON);//G
rojo.writeDisplay();
}
Sino tengo que repetir las mismas 5 lineas creando funciones para cada modulo HT16K33 iniciado (rojo, amarillo, verde)
Existe posibilidad de manipular los objetos de esta manera o tengo que apegarme a llamar a cada modulo por separado repitiendo gran parte del código para cada color en el proceso?
Desde ya muchas gracias