Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_GenericDevice.h>
- #include <Adafruit_I2CDevice.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #include <Wire.h>
- #include<math.h>
- #define ANCHO 128 // Ancho de la pantalla OLED (píxeles)
- #define ALTO 64 // Alto de la pantalla OLED (píxeles)
- // Declaración del objeto OLED (usando I2C)
- Adafruit_SSD1306 display(ANCHO, ALTO, &Wire, -1);
- const int L = 40;
- const int K = 2;
- void setup() {
- Serial.begin(9600);
- Wire.begin();
- // Inicializar pantalla OLED con dirección I2C 0x3C (común en estas pantallas)
- if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
- Serial.println("¡Error al iniciar la pantalla OLED!");
- while (true); // Detener ejecución si falla
- }
- // Limpiar buffer y mostrar mensaje inicial
- display.clearDisplay();
- display.setTextColor(SSD1306_WHITE); // Color (solo monocromo)
- display.setCursor(0, 0); // Posición inicial (x, y)
- display.println("Espera...");
- display.display(); // Mostrar en pantalla
- delay(2000);
- }
- void loop() {
- // Limpiar pantalla y mostrar un contador
- int Xo = 64;
- int Yo = 64-K;
- float Xf_f, Yf_f;
- int Xf, Yf;
- for(int i=180 ; i>=0 ; i--)
- {
- display.clearDisplay();
- display.setTextSize(2);
- display.setCursor(K, K);
- display.print(i);
- Xf_f = Xo + L*cos((i*PI)/180.0); // Lo parametros de las funciones trigonometricas deben estar en radianes.
- Yf_f = Yo - L*sin((i*PI)/180.0);
- Xf = int(Xf_f);
- Yf = int(Yf_f);
- // Recuadro (Usando lineas)
- display.drawLine(K,K,ANCHO-K,K,WHITE);
- display.drawLine(ANCHO-K,K,ANCHO-K,ALTO-K,WHITE);
- display.drawLine(ANCHO-K,ALTO-K,K,ALTO-K,WHITE);
- display.drawLine(K,K,K,ALTO-K,WHITE);
- display.display();
- display.drawLine(Xo,Yo,Xf,Yf,WHITE);
- display.display();
- delay(80);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement