Guest User

Untitled

a guest
May 16th, 2018
181
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // potřebné knihovny
  2. #include <Servo.h>
  3. #include <EEPROM.h>
  4.  
  5. const int Servo1Pin = 9; // Cisla pinu pouzitych pro pripojeni jednotlivych serv
  6. const int Servo2Pin = 10; // Cisla pinu pouzitych pro pripojeni jednotlivych serv
  7.  
  8. const int Button1Pin = 3; //Analogovy input jako digitalni vstup
  9.  
  10. int led1 = 12;
  11. int led2 = 6;
  12.  
  13. //Promenne pro tlacitka
  14.  
  15. int Button1State = 0;
  16.  
  17. //Promenne pro serva
  18.  
  19. int Servo1Position = EEPROM.read(1); //Poloha serva 1 je ulozena na adrese 1
  20. int Servo2Position = EEPROM.read(2); //Poloha serva 2 je ulozena na adrese 2
  21.  
  22. //Inicializace serv
  23.  
  24. Servo Servo1;
  25. Servo Servo2;
  26.  
  27. void setup()
  28. {
  29. // Aktivace pinu pro tlacitka
  30.  
  31. pinMode(Button1Pin, INPUT_PULLUP);
  32.  
  33. pinMode(led1, OUTPUT);
  34. pinMode(led2, OUTPUT);
  35.  
  36. //Pripojeni a nastaveni serv po restartu
  37.  
  38. Servo1.attach(Servo1Pin); //Aktivace serva
  39. Servo1.write(Servo1Position); //Nastaveni polohy serva (ve stupnich)
  40. delay(200); //Rychlost prestaveni serva vyjadrena v dobe potrebne ke zmene polohy v ms
  41. Servo1.detach(); //Deaktivace serva
  42.  
  43. Servo2.attach(Servo2Pin);
  44. Servo2.write(Servo2Position);
  45. delay(200);
  46. Servo2.detach();
  47.  
  48. }
  49.  
  50. void loop() { //Hlavni smycka
  51.  
  52. Button1State = digitalRead(Button1Pin);
  53.  
  54. if (Servo1Position == 40) {
  55. digitalWrite(led1, LOW); //zapnutí led
  56. digitalWrite(led2, HIGH); //zapnutí led
  57. }
  58.  
  59. if (Servo1Position == 20) {
  60. digitalWrite(led1, HIGH); //zapnutí led
  61. digitalWrite(led2, LOW); //zapnutí led
  62. }
  63.  
  64. if (Button1State == HIGH) { //Pri stisku tlacitka 1...
  65.  
  66. Servo1.attach(Servo1Pin); //...pripoj servo 1...
  67. Servo2.attach(Servo2Pin); //...a servo 2...
  68.  
  69. switch (Servo1Position) { //...v zavislosti na poloze prvniho serva zmen polohu obou serv...
  70. case 20:
  71. Servo1.write(40);
  72. delay(300); //...pozadovanou rychlosti (cim vyssi hodnota, tim nizsi rychlost prestaveni)
  73. Servo2.write(45);
  74. delay(300);
  75. Servo1Position = 40;
  76. EEPROM.update (1, 40); //...zapis nove polohy do EEPROM...
  77. EEPROM.update (2, 45);
  78. break;
  79.  
  80. case 40:
  81. Servo1.write(20);
  82. delay(300);
  83. Servo2.write(30);
  84. delay(300);
  85. Servo1Position = 20;
  86. EEPROM.update (1, 20);
  87. EEPROM.update (2, 30);
  88. break;
  89. }
  90.  
  91. Servo1.detach(); //... a deaktivuj serva
  92. Servo2.detach();
  93.  
  94. }
  95. }
RAW Paste Data