// Incluimos las librerías necesarias
#include <Arduino.h>
// Definimos los pines de los LEDs
const int ledPin1 = 2;
const int ledPin2 = 4;
const int ledPin3 = 16;
const int ledPin4 = 17;
// Definimos el número máximo de la serie de Fibonacci que queremos calcular
const int maxFibonacci = 89; // El 90º número de Fibonacci excede el rango de los números enteros
void setup() {
// Inicializamos los pines de los LEDs como salidas
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
// Apagamos todos los LEDs al inicio
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
// Inicializamos el puerto serial
Serial.begin(9600);
}
void loop() {
// Calculamos y mostramos la serie de Fibonacci
int a = 0;
int b = 1;
int c = 0;
for (int i = 0; i < maxFibonacci; i++) {
c = a + b;
a = b;
b = c;
// Mostramos el número de Fibonacci por el puerto serial
Serial.print(c);
Serial.print(" ");
// Encendemos los LEDs según el último dígito del número de Fibonacci
int lastDigit = c % 10;
showNumber(lastDigit);
delay(500); // Esperamos medio segundo antes de calcular el siguiente número
}
}
// Función para mostrar el número en los LEDs
void showNumber(int num) {
digitalWrite(ledPin1, num & 1);
digitalWrite(ledPin2, (num >> 1) & 1);
digitalWrite(ledPin3, (num >> 2) & 1);
digitalWrite(ledPin4, (num >> 3) & 1);
}