#include <TinyWireM.h>
#include <Tiny4kOLED.h>
#include <Adafruit_SoftServo.h> // Librería para controlar el servo
Adafruit_SoftServo myServo; // Crear un objeto servo
void setup() {
// Inicializar la pantalla OLED
oled.begin();
oled.clear();
oled.on();
oled.setFont(FONT6X8);
// Inicializar el servo
myServo.attach(3); // Conectar el servo al pin 3 (PB3) del ATtiny85
// Configuración inicial de la pantalla
oled.setCursor(0, 0);
oled.print(F("Angulo:"));
}
void loop() {
// Mover el servo a 0 grados
moverServo(90);
delay(10); // Espera 1 segundo
// Mover el servo a 30 grados
moverServo(0);
delay(10); // Espera 1 segundo
}
void moverServo(int angulo) {
myServo.write(angulo);
actualizarPantalla(90-angulo);
// Refrescar el servo para asegurar que alcance el ángulo deseado
for (int i = 0; i < 200; i++) {
myServo.refresh();
delay(20); // Intervalo más corto para mayor precisión
}
}
void actualizarPantalla(int angulo) {
// Sobrescribir la línea con espacios en blanco para limpiarla
oled.setCursor(0, 2); // Posicionar el cursor en la segunda línea
oled.print(F(" ")); // Imprimir espacios en blanco para limpiar la línea
// Volver al inicio de la segunda línea para escribir el nuevo valor
oled.setCursor(0, 2);
oled.print(angulo/3);// divido por 3 porque no mueve 90 grados sino 30
oled.print(F(" grados"));
}