Servo-Programmierung mit dem Potentiometer

#include <Servo.h>

#include <EEPROM.h>//used to store recorded values


Servo myServo;


float resolution = 1000;//MUST be less than EEPROM.length() (check serial monitor)

float recordTime = 5; //delay time

bool recording = false;


void setup() {

  pinMode(13, OUTPUT); //status led

  pinMode(2, OUTPUT);

  myServo.attach(3);


  Serial.begin(9600);

  digitalWrite(2, HIGH);

  //Serial.println(EEPROM.length());

}


void loop() {

  if (recording == true) {//record

    for (int i = 1; i <= resolution; i++) {

      digitalWrite(13, HIGH); //light status led

      int val = map(analogRead(A0), 0, 1023, 0, 180);


      EEPROM.write(i, val);

      //Serial.println(EEPROM.read(i));

      myServo.write(val);

      delay(recordTime);

    }


    digitalWrite(13, LOW); //turn off status led

    delay(1000);//give time for person

    recording = false;

  }

  else {

    for (int i = 1; i <= resolution; i++) {//playback

      if (digitalRead(2) == 0) {//stop playback and record new values

        recording = true;

        break;

      }

      //int val = map(analogRead(A0), 0, 1023, 0, 180);

      int readval = EEPROM.read(i);

      myServo.write(readval);

      //Serial.println(readval);

      delay(recordTime);

    }


    digitalWrite(13, HIGH); //show a new repeat

    delay(50);

    digitalWrite(13, LOW);

  }

}

#include <Servo.h>

#include <EEPROM.h>//verwendet, um aufgezeichnete Werte zu speichern


Servo myServo;


float resolution = 1000;//MUSS kleiner als EEPROM.length() sein (überprüfen Sie den seriellen Monitor)

float recordTime = 5; //Verzögerungszeit

bool recording = false;


void setup() {

  pinMode(13, OUTPUT); //Status-LED

  pinMode(2, OUTPUT);

  myServo.attach(3);


  Serial.begin(9600);

  digitalWrite(2, HIGH);

//Serial.println (EEPROM.länge());

}


void loop() {

  if (recording == true) {//record

    for (int i = 1; i <= resolution; i++) {

      digitalWrite(13, HIGH); //light status led

      int val = map(analogRead(A0), 0, 1023, 0, 180);


      EEPROM.write(i, val);

      //Serial.println(EEPROM.read(i));

      myServo.write(val);

      delay(recordTime);

    }


    digitalWrite(13, LOW); //turn off status led

    delay(1000);//give time for person

    recording = false;

  }

  else {

    for (int i = 1; i <= resolution; i++) {//playback

      if (digitalRead(2) == 0) {//stop playback and record new values

        recording = true;

        break;

      }

      //int val = map(analogRead(A0), 0, 1023, 0, 180);

      int readval = EEPROM.read(i);

      myServo.write(readval);

      //Serial.println(readval);

      delay(recordTime);

    }


    digitalWrite(13, HIGH); //zeige eine neue Wiederholung

    delay(50);

    digitalWrite(13, LOW);

  }

}