hola amigos tengo un problema tengo que hacer un brazo que repita los movimientos, con un potenciometro le digo a que posiciones ir y con un swich gravo el movimiento, con otro reproduzco el movimiento y con otro borro la memoria eeprom encontre un codigo funte que si funciona y me deja guardar los movimientos el problema esque es solo para 1 servo motor y yo nesecito 4 mas y no se como programarlo ya lo intente de varias maneras y no me funciona siempre me sale error o si no en mi arduino no funciona porfavor ayudenme aqui le dejo el codigo
#include <Servo.h>
#include <EEPROM.h>
#define Max 487
#define Min 135
int grabaBotPin = 2;
int ejecBotPin = 5;
int servoPin = 9;
int resetPin = 6;
int feedbackPin = A0;
int ledPin = 13;
int addr;
Servo myServo;
void setup() {
Serial.begin(9600);
pinMode(grabaBotPin, INPUT); digitalWrite(grabaBotPin, HIGH);
pinMode(ejecBotPin, INPUT); digitalWrite(ejecBotPin, HIGH);
pinMode(resetPin, INPUT); digitalWrite(resetPin, HIGH);
pinMode(ledPin, OUTPUT);
pinMode(feedbackPin, INPUT);
}
void loop() {
if(digitalRead(resetPin) == LOW){ //pone a 255 toda la memoria EEPROM
for(addr=0; addr<=512; addr++){ EEPROM.write(addr, 255); }
addr = 0;
}
if (digitalRead(grabaBotPin)==LOW) { //Graba posiciones del servo
delay(100);
grabaServo(servoPin, feedbackPin);
}
if (digitalRead(ejecBotPin)==LOW) { //Ejecuta en el servo lo grabado en la EEPROM
delay(400);
ejecutaServo(servoPin, ejecBotPin);
}
}
void ejecutaServo(int servoPin, int botonPin) {
addr = 0;
myServo.attach(servoPin);
while (digitalRead(botonPin)) {
int dato = EEPROM.read(addr);
if (dato == 255) break; //Detecta final de datos y termina
dato = map(dato, 0, 254, 0, 180); //Ajusta a valores posibles en servo
myServo.write(dato);
delay(1500);
addr++;
if (addr == 512) break;
}
myServo.detach();
delay(300);
}
void grabaServo(int servoPin, int analogPin) {
digitalWrite(ledPin, HIGH);
int dato = analogRead(feedbackPin);
if (dato < Min) dato = Min; if (dato > Max) dato = Max; //Limita valores
dato = map(dato, Min, Max, 0, 254); //Ajusta a valores posibles en EEPROM
EEPROM.write(addr, dato);
addr++;
digitalWrite(ledPin, LOW);
delay(300);
}
este codigo funciona para 1 solo motor y yo nesecito que funcione para 4 motores mas y cada uno con su potenciometro para diferentes movimientos y pueda grabarlos