#include <Servo.h>
#include <Wire.h> // libreria para bus I2C
#include <Adafruit_GFX.h> // libreria para pantallas graficas
#include <Adafruit_SSD1306.h>
#define x A0
#define y A1
#define mas 4
#define menos 5
#define ANCHO 128 // reemplaza ocurrencia de ANCHO por 128
#define ALTO 64
int valorx;
int valory;
int angulo;
int valor;
int pulsomin = 550;
int pulsomax = 2400;
int servo = 3;
#define OLED_RESET 4 // necesario por la libreria pero no usado
Adafruit_SSD1306 oled(ANCHO, ALTO, &Wire, OLED_RESET); // crea objeto
Servo servo1;
void setup() {
servo1.attach (servo, pulsomin, pulsomax);
Serial.begin(9600);
Wire.begin(); // inicializa bus I2C
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.clearDisplay();
oled.setTextColor(WHITE);
oled.setCursor(0, 20);
oled.setTextSize(2);
oled.print("SATURNO V");
oled.display();
delay(2000);
pinMode(servo, OUTPUT);
//pinMode(mas, INPUT_PULLUP);
//pinMode(menos, INPUT_PULLUP);
}
void loop() {
/*
if (digitalRead(mas) == 0) {
delay(10);
valor++;
}
if (digitalRead(menos) == 0) {
delay(10);
valor--;
}
angulo = map(valor, 0, 36, 0, 180);
*/
valorx = analogRead(x) ;
delay(10);
angulo = map(valorx, 0, 1023, 180, 0);
//analogWrite(servo, angulo);
//valory = analogRead(y) ;
//delay(10);
//angulo = map(valory, 0, 1023, 0, 180);
//analogWrite(servo, angulo);
servo1.write(angulo);
if (angulo == 90) {
oled.clearDisplay();
oled.setTextColor(WHITE);
oled.setCursor(0, 20);
oled.setTextSize(2);
oled.print("RECTO");
oled.display();
}
if (angulo <= 87) {
oled.clearDisplay();
oled.setTextColor(WHITE);
oled.setCursor(0, 20);
oled.setTextSize(2);
oled.print("IZQUIERDA");
oled.display();
}
if (angulo >= 93) {
oled.clearDisplay();
oled.setTextColor(WHITE);
oled.setCursor(0, 20);
oled.setTextSize(2);
oled.print("DERECHA");
oled.display();
}
Serial.print(angulo);
Serial.println(valorx);
}