Advertisement
Abelsor

OLED_Proyecto_1

Apr 24th, 2025
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <Adafruit_GenericDevice.h>
  3. #include <Adafruit_I2CDevice.h>
  4. #include <Adafruit_GFX.h>
  5. #include <Adafruit_SSD1306.h>
  6. #include <Wire.h>
  7. #include<math.h>
  8.  
  9.  
  10. #define ANCHO 128  // Ancho de la pantalla OLED (píxeles)
  11. #define ALTO 64  // Alto de la pantalla OLED (píxeles)
  12.  
  13. // Declaración del objeto OLED (usando I2C)
  14. Adafruit_SSD1306 display(ANCHO, ALTO, &Wire, -1);
  15.  
  16. const int L = 40;
  17. const int K = 2;
  18.  
  19. void setup() {
  20.   Serial.begin(9600);
  21.   Wire.begin();
  22.  
  23.   // Inicializar pantalla OLED con dirección I2C 0x3C (común en estas pantallas)
  24.   if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
  25.     Serial.println("¡Error al iniciar la pantalla OLED!");
  26.     while (true);  // Detener ejecución si falla
  27.   }
  28.  
  29.   // Limpiar buffer y mostrar mensaje inicial
  30.   display.clearDisplay();
  31.   display.setTextColor(SSD1306_WHITE); // Color (solo monocromo)
  32.   display.setCursor(0, 0);            // Posición inicial (x, y)
  33.   display.println("Espera...");
  34.   display.display();  // Mostrar en pantalla
  35.   delay(2000);
  36.  
  37.  
  38. }
  39.  
  40. void loop() {
  41.   // Limpiar pantalla y mostrar un contador
  42.  
  43.   int Xo = 64;
  44.   int Yo = 64-K;
  45.   float Xf_f, Yf_f;
  46.   int Xf, Yf;
  47.  
  48.  
  49.  
  50.   for(int i=180 ; i>=0 ; i--)
  51.   {
  52.  
  53.     display.clearDisplay();
  54.     display.setTextSize(2);
  55.     display.setCursor(K, K);
  56.     display.print(i);
  57.  
  58.     Xf_f = Xo + L*cos((i*PI)/180.0); // Lo parametros de las funciones trigonometricas deben estar en radianes.
  59.     Yf_f = Yo - L*sin((i*PI)/180.0);
  60.  
  61.     Xf = int(Xf_f);
  62.     Yf = int(Yf_f);
  63.    
  64.     // Recuadro (Usando lineas)
  65.     display.drawLine(K,K,ANCHO-K,K,WHITE);
  66.     display.drawLine(ANCHO-K,K,ANCHO-K,ALTO-K,WHITE);
  67.     display.drawLine(ANCHO-K,ALTO-K,K,ALTO-K,WHITE);
  68.     display.drawLine(K,K,K,ALTO-K,WHITE);
  69.     display.display();
  70.    
  71.     display.drawLine(Xo,Yo,Xf,Yf,WHITE);
  72.     display.display();
  73.  
  74.     delay(80);
  75.   }
  76. }    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement