Servo mit EEprom
Verfasst: Di 23. Mär 2021, 09:56
Hallo Franz,
jetzt gibt es den vom MicoBahner überprüften Sketch:

jetzt gibt es den vom MicoBahner überprüften Sketch:
Code: Alles auswählen
/* https://stummiforum.de/viewtopic.php?f=21&t=178411
*/
#include <MobaTools.h>
#include <EEPROM.h>
// Die Taster müssen so angeschlossen sein, dass der Eingang bei gedrücktem
// Taster auf LOW (=0) geht. Ansonsten muss im loop auf HIGH abgefragt werden
const int tasterPin1 = 2; // Taster1 Pin 2
const int tasterPin2 = 3; // Taster2 Pin 3
const int servoPin = 9; // Anschluß für den Servo, möglich sind 9 oder 10
// bei Werten, die sich im Programm nie verändern, sollte immer 'const' vorangestellt
// werden
//gegen Sevozucken Widerst.5K von Servosteuerung zu Vcc geschaltet
int tasterStatus1, tasterStatus2;
MoToServo meinServo;
void setup() {
pinMode(tasterPin1, INPUT_PULLUP); //tasterPin1 (Pin 2)
pinMode(tasterPin2, INPUT_PULLUP); //tasterPin2 (Pin 3)
meinServo.attach(servoPin, true ); //Servo an Pin 9
meinServo.setSpeed(5); //Das ist ein neuer Aufruf, mit dem die Geschwindigkeit
//eingestellt wird. Je größer die Zahl, umso größer
//die Geschwindigkeit. Bei 0 (defaultwert) verhält es
//sich wie bei der Standard Bibliothek
meinServo.write(EEPROM.read(0)); //"bewege" Servo zur letzten im EEPROM gespeicherten Position
}
void loop() {
tasterStatus1 = digitalRead(tasterPin1);
tasterStatus2 = digitalRead(tasterPin2);
if (tasterStatus2 == HIGH ) {
meinServo.write(50); //wird langsam drehen
EEPROM.update(0, 50); //schreibe Zielposition ins EEPROM
delay(100);
}
if (tasterStatus1 == HIGH) {
meinServo.write(120); //wird langsam drehen
EEPROM.update(0, 120 ); //schreibe Zielposition ins EEPROM
delay(100);
}
delay(20);
}
