kennyho-rass

rass_serva

Apr 15th, 2020
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SoftwareSerial.h>
  2. #include <Wire.h>
  3. #include "HCPCA9685.h"
  4. #define I2CAdd 0x40
  5. HCPCA9685 HCPCA9685(I2CAdd);
  6. #define SERVO_TRIM_MIN 10
  7. #define SERVO_TRIM_MAX 330
  8. // #include <Adafruit_GFX.h>                  // knihovna pro grafiku
  9. #include <Adafruit_SSD1306.h>              // knihovna pro OLED
  10. #define SCREEN_WIDTH 128                   // OLED display delka, v pixelech
  11. #define SCREEN_HEIGHT 32                   // OLED display vyska, v pixelech
  12. #define OLED_RESET    -1                   // Reset pin # (or -1 if sharing Arduino reset pin)
  13. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
  14.  
  15. int servo;
  16. int uhel;
  17. int led1 = A2;
  18. int led2 = A3;
  19. int led3 = A4;
  20. int led = 13;
  21.  
  22. void setup() {
  23.   Wire.begin();
  24.   Serial.begin(115200);
  25.   display.begin();
  26.   //display.display();
  27.   display.clearDisplay();           // vycisteni displeje
  28.   display.print(" nacitam ");
  29.   display.setTextColor(WHITE);             // nastavi OLED na bilou barvu
  30.   display.setCursor(5, 0);                 // OLED display nastaveni pozice
  31.   display.setTextSize(1);                  // OLED display nastaveni velikosti pisma
  32.   delay(1000);
  33.   display.clearDisplay();
  34.   display.print(" nacitam setup ");
  35.   Serial.println(" nacitam setup ");
  36.   pinMode(led, OUTPUT);
  37.   HCPCA9685.Init(SERVO_MODE);
  38.   HCPCA9685.Sleep(false);
  39.   delay(1000);
  40.   display.clearDisplay();
  41.   display.setCursor(5, 10);
  42.   display.setTextSize(2);
  43.   Serial.println(" nastaveno ");
  44.   display.print(" nastaveno ");
  45.   display.display();
  46. }
  47.  
  48. void loop()
  49. {
  50.    if (Serial.available() > 3)   {             //   zacatek cteni ( servo . uhel )
  51.     servo =  Serial.readStringUntil('.').toInt();
  52.     uhel =  Serial.readStringUntil('\n').toInt();
  53.     Serial.print(servo);
  54.     Serial.print(" . ");
  55.     Serial.println(uhel);
  56.     display.clearDisplay();
  57.     display.print(servo, uhel);
  58.     HCPCA9685.Servo(servo, uhel);             //   nastaveni serva na uhel
  59.   }                                           //   konec cteni
  60.  
  61.   int x = Serial.available();
  62.   if ( x == 2 )
  63.   {
  64.     char pismeno = Serial.read();
  65.     Serial.println(pismeno);
  66.     display.clearDisplay();
  67.     display.print(pismeno);
  68.     switch (pismeno)                             // LED13  BLIKANI
  69.     {
  70.       case 'b':
  71.         digitalWrite(led, HIGH);
  72.         delay (200);
  73.         digitalWrite(led, LOW);
  74.         delay (200);
  75.         digitalWrite(led, HIGH);
  76.         delay (200);
  77.         digitalWrite(led, LOW);
  78.         delay (200);
  79.         digitalWrite(led, HIGH);
  80.         delay (200);
  81.         digitalWrite(led, LOW);
  82.         delay (200);
  83.         digitalWrite(led, HIGH);
  84.         delay (200);
  85.         digitalWrite(led, LOW);
  86.         delay (200);
  87.         digitalWrite(led, HIGH);
  88.         delay (200);
  89.         digitalWrite(led, LOW);
  90.         delay (200);
  91.         break;
  92.       case 'v':                              // vrteni ocasem
  93.         {
  94.           HCPCA9685.Servo(1, 100);
  95.           delay(100);
  96.           HCPCA9685.Servo(1, 280);
  97.           delay(100);
  98.           HCPCA9685.Servo(1, 100);
  99.           delay(100);
  100.           HCPCA9685.Servo(1, 280);
  101.           delay(100);
  102.           HCPCA9685.Servo(1, 100);
  103.           delay(100);
  104.           HCPCA9685.Servo(1, 280);
  105.           delay(100);
  106.           HCPCA9685.Servo(1, 100);
  107.           delay(100);
  108.           HCPCA9685.Servo(1, 280);
  109.           delay(100);
  110.           HCPCA9685.Servo(1, 170);
  111.         }
  112.         break;
  113.       case 'k':                                  // jeden krok
  114.         {
  115.           HCPCA9685.Servo(8, 200);
  116.           HCPCA9685.Servo(10, 110);
  117.           delay(400);
  118.           HCPCA9685.Servo(4, 180);
  119.           HCPCA9685.Servo(6, 150);
  120.           delay(200);
  121.           HCPCA9685.Servo(8, 120);
  122.           HCPCA9685.Servo(10, 200);
  123.           delay(400);
  124.           HCPCA9685.Servo(4, 250);
  125.           HCPCA9685.Servo(6, 70);
  126.           delay(200);
  127.           HCPCA9685.Servo(8, 170);
  128.           HCPCA9685.Servo(10, 150);
  129.         }
  130.         break;
  131.       case 's':                                 // sedni
  132.         {
  133.           HCPCA9685.Servo(4, 160);
  134.           HCPCA9685.Servo(5, 150);
  135.           delay(500);
  136.           HCPCA9685.Servo(8, 10);
  137.           HCPCA9685.Servo(9, 320);
  138.           delay(500);
  139.           HCPCA9685.Servo(6, 40);
  140.           HCPCA9685.Servo(7, 300);
  141.           delay(500);
  142.           HCPCA9685.Servo(10, 60);
  143.           HCPCA9685.Servo(11, 250);
  144.           delay(500);
  145.         }
  146.         break;
  147.       case 'p':                                    // postoj
  148.         {
  149.           HCPCA9685.Servo(8, 150);
  150.           HCPCA9685.Servo(9, 180);
  151.           delay(500);
  152.           HCPCA9685.Servo(10, 170);
  153.           HCPCA9685.Servo(11, 160);
  154.           delay(500);
  155.           HCPCA9685.Servo(4, 240);
  156.           HCPCA9685.Servo(5, 80);
  157.           delay(500);
  158.           HCPCA9685.Servo(6, 90);
  159.           HCPCA9685.Servo(7, 250);
  160.         }
  161.         break;
  162.       case 'l':                                // povel LEHNI
  163.         {
  164.           HCPCA9685.Servo(8, 160);
  165.           HCPCA9685.Servo(9, 170);
  166.           delay(500);
  167.           HCPCA9685.Servo(4, 150);
  168.           HCPCA9685.Servo(5, 160);
  169.           delay(500);
  170.           HCPCA9685.Servo(10, 160);
  171.           HCPCA9685.Servo(11, 170);
  172.           delay(500);
  173.           HCPCA9685.Servo(6, 170);
  174.           HCPCA9685.Servo(7, 170);
  175.           delay(500);
  176.           HCPCA9685.Servo(4, 300);
  177.           HCPCA9685.Servo(5, 40);
  178.           delay(500);
  179.           HCPCA9685.Servo(6, 70);
  180.           HCPCA9685.Servo(7, 290);
  181.           delay(500);
  182.           HCPCA9685.Servo(8, 290);
  183.           HCPCA9685.Servo(9, 60);
  184.           delay(500);
  185.           HCPCA9685.Servo(10, 50);
  186.           HCPCA9685.Servo(11, 290);
  187.         }
  188.         break;
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.       case 'm':                                 // Mavani levou predni packou
  196.         {
  197.           HCPCA9685.Servo(8, 200);
  198.           delay(200);
  199.           HCPCA9685.Servo(4, 160);
  200.           delay(200);
  201.           HCPCA9685.Servo(8, 160);
  202.           delay(200);
  203.           HCPCA9685.Servo(8, 200);
  204.           delay(200);
  205.           HCPCA9685.Servo(8, 160);
  206.           delay(200);
  207.           HCPCA9685.Servo(8, 200);
  208.           delay(200);
  209.           HCPCA9685.Servo(4, 240);
  210.           delay(200);
  211.           HCPCA9685.Servo(8, 160);
  212.           delay(200);
  213.         }
  214.         break;
  215.  
  216.       case 10:
  217.         // New line
  218.         break;
  219.  
  220.       case 13:
  221.         // Enter
  222.         break;
  223.  
  224.       default:
  225.         Serial.println(" Neznam prikaz ");
  226.     }
  227.   }
  228.   display.display();
  229. }
Advertisement
Add Comment
Please, Sign In to add comment