Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // potřebné knihovny
- #include <Servo.h>
- #include <EEPROM.h>
- const int Servo1Pin = 9; // Cisla pinu pouzitych pro pripojeni jednotlivych serv
- const int Servo2Pin = 10; // Cisla pinu pouzitych pro pripojeni jednotlivych serv
- const int Button1Pin = 3; //Analogovy input jako digitalni vstup
- int led1 = 12;
- int led2 = 6;
- //Promenne pro tlacitka
- int Button1State = 0;
- //Promenne pro serva
- int Servo1Position = EEPROM.read(1); //Poloha serva 1 je ulozena na adrese 1
- int Servo2Position = EEPROM.read(2); //Poloha serva 2 je ulozena na adrese 2
- //Inicializace serv
- Servo Servo1;
- Servo Servo2;
- void setup()
- {
- // Aktivace pinu pro tlacitka
- pinMode(Button1Pin, INPUT_PULLUP);
- pinMode(led1, OUTPUT);
- pinMode(led2, OUTPUT);
- //Pripojeni a nastaveni serv po restartu
- Servo1.attach(Servo1Pin); //Aktivace serva
- Servo1.write(Servo1Position); //Nastaveni polohy serva (ve stupnich)
- delay(200); //Rychlost prestaveni serva vyjadrena v dobe potrebne ke zmene polohy v ms
- Servo1.detach(); //Deaktivace serva
- Servo2.attach(Servo2Pin);
- Servo2.write(Servo2Position);
- delay(200);
- Servo2.detach();
- }
- void loop() { //Hlavni smycka
- Button1State = digitalRead(Button1Pin);
- if (Servo1Position == 40) {
- digitalWrite(led1, LOW); //zapnutí led
- digitalWrite(led2, HIGH); //zapnutí led
- }
- if (Servo1Position == 20) {
- digitalWrite(led1, HIGH); //zapnutí led
- digitalWrite(led2, LOW); //zapnutí led
- }
- if (Button1State == HIGH) { //Pri stisku tlacitka 1...
- Servo1.attach(Servo1Pin); //...pripoj servo 1...
- Servo2.attach(Servo2Pin); //...a servo 2...
- switch (Servo1Position) { //...v zavislosti na poloze prvniho serva zmen polohu obou serv...
- case 20:
- Servo1.write(40);
- delay(300); //...pozadovanou rychlosti (cim vyssi hodnota, tim nizsi rychlost prestaveni)
- Servo2.write(45);
- delay(300);
- Servo1Position = 40;
- EEPROM.update (1, 40); //...zapis nove polohy do EEPROM...
- EEPROM.update (2, 45);
- break;
- case 40:
- Servo1.write(20);
- delay(300);
- Servo2.write(30);
- delay(300);
- Servo1Position = 20;
- EEPROM.update (1, 20);
- EEPROM.update (2, 30);
- break;
- }
- Servo1.detach(); //... a deaktivuj serva
- Servo2.detach();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement