home
alle Unterrichtseinheiten auf einen Blick

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);

  }

}

Diese Website verwendet Cookies. 


Bei Zustimmung klicken Sie auf 

OK

Bitte lesen Sie unsere Datenschutzerklärung für Details.

Verweigern

Setzt ein technisches Cookie, das aufzeichnet, dass Sie die Zustimmung verweigern. Es wird nicht nochmals nachgefragt werden.

Entfernen

Entfernt das Zustimmungscookie aus Ihrem Browser.