#include <TinyWireM.h>
#include <Tiny4kOLED.h>
#include <Adafruit_SoftServo.h> // Librería para controlar el servo
Adafruit_SoftServo myServo; // Crear un objeto servo
//sda>pb0
//scl>pb2
//señal servo>pb3
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 1 (PB1) del ATtiny85
// Configuración inicial de la pantalla
oled.setCursor(0, 0);
oled.print(F("Angulo Servo:"));
}
void loop() {Funca ATtiny85 Oled ssd1306 servo Copy
Docs
35
29
30
31
32
33
34
27
28
24
25
26
22
23
19
20
21
16
17
18
36
37
38
39
40
41
42
43
44
45
46
47
12
13141516
void setup() { // Inicializar la pantalla OLED oled.begin(); oled.clear(); oled.on();
Funca ATtiny85 Oled ssd1306 servo Copy - Wokwi ESP32, STM32, Arduino Simulator
// Mover el servo a 0 grados
moverServo(0);
delay(1000); // Espera 1 segundo
// Mover el servo a 180 grados
moverServo(180);
delay(1000); // Espera 1 segundo
}
void moverServo(int angulo) {
myServo.write(angulo);
actualizarPantalla(angulo);
// Refrescar el servo para asegurar que alcance el ángulo deseado
for (int i = 0; i < 200; i++) {
myServo.refresh();
delay(5); // 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);
oled.print(F(" grados"));
}