Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <OneButton.h>
- #include <Servo.h>
- #include <Encoder.h>
- #include <EEPROM.h>
- int save = 0;
- int addrA = 0;
- int addrB = 1;
- int addrC = 2;
- int newPosition = 0;
- int oldPosition = 0;
- int APosition = 0;
- int BPosition = 0;
- int Enc = 0;
- Encoder myEnc(5, 6);
- Servo myservo;
- OneButton button1 = OneButton(1, false);
- OneButton button2 = OneButton(2, false);
- void setup() {
- int APosition = EEPROM.read(addrA);
- int BPosition = EEPROM.read(addrB);
- myservo.attach(12);
- Serial.begin(9600);
- while (!Serial);
- Serial.println("Programm start");
- button1.attachClick(ClickA);
- button1.attachPress(SaveA);
- button1.setPressTicks(2000);
- button2.attachClick(ClickB);
- button2.attachPress(SaveB);
- button2.setPressTicks(2000);
- }
- void loop() {
- save = EEPROM.read(addrC);
- // Serial.println(save);
- button1.tick();
- button2.tick();
- newPosition = myEnc.read();
- if(save > 0)
- {
- if (newPosition != oldPosition) {
- oldPosition = newPosition;
- newPosition = map(newPosition, 0, 180, 0, 180);
- newPosition = constrain(newPosition, 0, 180);
- myservo.write(newPosition);
- }
- //kleiner 0
- else if(save < 0)
- {
- Serial.println(save);
- EEPROM.write(addrC, 0);
- }
- }
- Serial.print("Position : ");
- Serial.print(newPosition);
- Serial.print(" APosition : ");
- Serial.print(APosition);
- Serial.print(" BPosition : ");
- Serial.print(BPosition);
- Serial.print(" Save : ");
- Serial.println(save);
- delay(10);
- }
- void ClickA(long A)
- {
- Serial.println("Ein Klick - Bewegen nach Punkt A");
- myservo.write(APosition);
- myEnc.write(APosition);
- }
- void SaveA()
- {
- Serial.println("Halten - Save A");
- EEPROM.write(addrA, newPosition);
- APosition = EEPROM.read(addrA);
- Serial.println(APosition);
- EEPROM.write(addrC, 1);
- }
- void ClickB()
- {
- Serial.println("Ein Klick - Bewegen nach Punkt B");
- myservo.write(BPosition);
- myEnc.write(BPosition);
- }
- void SaveB()
- {
- Serial.println("Halten - Save B");
- EEPROM.write(addrB, newPosition);
- BPosition = EEPROM.read(addrB);
- Serial.println(BPosition);
- EEPROM.write(addrC, 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement