Fecha de publicación: 04.09.2024
Dado que el LED se ilumina con bastante intensidad, la cámara no transmite bien este efecto. En realidad todo parece estar bien.
Bosquejo de Arduino:
const byte PinLeds [] = { A0, A1, A2, A3, A4, A5 };
int Nleds = sizeof(PinLeds);
int idxLed;
const char *CharList [] = { "|", "/", "-", "\\"};
int Nchar = sizeof(CharList)/sizeof(char*);
int idxChar;
void fLeds ()
{
for (int n = 0; n < Nleds; n++)
digitalWrite (PinLeds [n], HIGH);
digitalWrite (PinLeds [idxLed], LOW);
if (Nleds <= ++idxLed)
idxLed = 0;
}
void fChars ()
{
Serial.print (CharList [idxChar]);
Serial.print ('\r');
if (Nchar <= ++idxChar)
idxChar = 0;
}
struct Job {
const unsigned long MsecPeriod;
void (*func) (void);
const char *desc;
unsigned long msec;
};
Job jobs [] = {
{ 500, fLeds, "leds" },
{ 200, fChars, "chars" },
};
const int Njobs = sizeof(jobs)/sizeof(Job);
void loop ()
{
unsigned long msec = millis ();
for (int j = 0; j < Njobs; j++) {
if (msec - jobs [j].msec >= jobs [j].MsecPeriod) {
jobs [j].msec += jobs [j].MsecPeriod;
jobs [j].func ();
}
}
}
void setup()
{
Serial.begin(9600);
for (int n = 0; n < Nleds; n++)
pinMode (PinLeds [n], OUTPUT);
}
Este código enciende todos los LED y apaga cada uno de ellos a una velocidad ajustable, y también muestra los caracteres en el monitor serie que se pueden mostrar.
El ejemplo muestra claramente el estado del dispositivo y los LED de conmutación simbolizan que no está congelado.
Sin comentarios aún