const int stepPin = 13;
const int dirPin = 12;
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
int pasos;
int radio;
int distancia;
float r;
float d;
float p;
bool pulsador;
bool pulsador2;
void setup() {
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.setTextSize(2);
display.setTextColor(WHITE);
pinMode(8, INPUT);
pinMode(7, INPUT);
Serial.begin(9600);
}
void loop() {
radio = map(analogRead(A3),0,1023,1,5);
distancia = map(analogRead(A2),0,1023,5,100);
Serial.println(radio);
display.clearDisplay();
display.setCursor(0, 0);
display.print("r");
display.print(radio);
display.print(" cm");
display.setCursor(0, 24);
display.print("d ");
display.print(distancia);
display.print(" cm");
r = radio;
d = distancia;
p = d/((2*PI*r)/200);
pasos = p;
display.setCursor(0, 48);
display.print(pasos);
display.print(" pasos");
display.display();
pulsador = digitalRead(7);
pulsador2 = digitalRead(8);
if(pulsador){
display.clearDisplay();
display.setCursor(0, 0);
digitalWrite(dirPin, HIGH);
for(int x = 0; x < pasos; x++) {
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
delay(1);
}
delay(1000);
}
if(pulsador2)
{
display.clearDisplay();
display.setCursor(0, 0);
digitalWrite(dirPin, LOW);
for(int x = 0; x < pasos; x++) {
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
delay(1);
}
delay(1000);
}
}