#include <Wire.h> //librería de protocolo i2c para microcontrolador
#include <Adafruit_GFX.h> //Librería básica de dibujo para OLED
#include <Adafruit_SSD1306.h> //Drivers para oled 1306 microcontrolador
const int num = 10; //declaración de variable constante, su valor no cambia
int posX[num] ; //declaración de arreglo para pantalla en AXIS x
int posY[num]; //declaración de arreglo para pantalla en AXIS y
Adafruit_SSD1306 display(4); //inicia la clase para objetos y contiene todas las funciones
void setup() {
randomSeed(A0);
display.begin(SSD1306_SWITCHCAPVCC, 0x3c); // inicializa el OLED
display.clearDisplay(); // limpia el buffer
for (int i = 0; i < num; i++) { //ciclo for, genera valores para los arreglos y empieza mitad de pantalla
posX[i] = 64;
posY[i] = 32;
}
}
void loop() {
display.clearDisplay(); //limpia buffer
for (int i = 0; i < num; i++) { //ciclo FOR para cambiar los valores de posX y posY
posX[i] = constrain(posX[i] + random(-3, 3),1,127); //limitamos valores para el ancho de pixelex con constrain
posY[i] = constrain(posY[i] + random(-3, 3),1,63); //limitamos valores para el ancho de pixelex con constrain
display.fillCircle(posX[i], posY[i], 1, WHITE); //dibuja un circulo
display.display(); //actuaiza la pantalla
}
delay(100); //espera entre ciclo y ciclo LOOP
}