Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #include <Wire.h>
- #include "HCPCA9685.h"
- #define I2CAdd 0x40
- HCPCA9685 HCPCA9685(I2CAdd);
- #define SERVO_TRIM_MIN 10
- #define SERVO_TRIM_MAX 330
- // #include <Adafruit_GFX.h> // knihovna pro grafiku
- #include <Adafruit_SSD1306.h> // knihovna pro OLED
- #define SCREEN_WIDTH 128 // OLED display delka, v pixelech
- #define SCREEN_HEIGHT 32 // OLED display vyska, v pixelech
- #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
- Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
- int servo;
- int uhel;
- int led1 = A2;
- int led2 = A3;
- int led3 = A4;
- int led = 13;
- void setup() {
- Wire.begin();
- Serial.begin(115200);
- display.begin();
- //display.display();
- display.clearDisplay(); // vycisteni displeje
- display.print(" nacitam ");
- display.setTextColor(WHITE); // nastavi OLED na bilou barvu
- display.setCursor(5, 0); // OLED display nastaveni pozice
- display.setTextSize(1); // OLED display nastaveni velikosti pisma
- delay(1000);
- display.clearDisplay();
- display.print(" nacitam setup ");
- Serial.println(" nacitam setup ");
- pinMode(led, OUTPUT);
- HCPCA9685.Init(SERVO_MODE);
- HCPCA9685.Sleep(false);
- delay(1000);
- display.clearDisplay();
- display.setCursor(5, 10);
- display.setTextSize(2);
- Serial.println(" nastaveno ");
- display.print(" nastaveno ");
- display.display();
- }
- void loop()
- {
- if (Serial.available() > 3) { // zacatek cteni ( servo . uhel )
- servo = Serial.readStringUntil('.').toInt();
- uhel = Serial.readStringUntil('\n').toInt();
- Serial.print(servo);
- Serial.print(" . ");
- Serial.println(uhel);
- display.clearDisplay();
- display.print(servo, uhel);
- HCPCA9685.Servo(servo, uhel); // nastaveni serva na uhel
- } // konec cteni
- int x = Serial.available();
- if ( x == 2 )
- {
- char pismeno = Serial.read();
- Serial.println(pismeno);
- display.clearDisplay();
- display.print(pismeno);
- switch (pismeno) // LED13 BLIKANI
- {
- case 'b':
- digitalWrite(led, HIGH);
- delay (200);
- digitalWrite(led, LOW);
- delay (200);
- digitalWrite(led, HIGH);
- delay (200);
- digitalWrite(led, LOW);
- delay (200);
- digitalWrite(led, HIGH);
- delay (200);
- digitalWrite(led, LOW);
- delay (200);
- digitalWrite(led, HIGH);
- delay (200);
- digitalWrite(led, LOW);
- delay (200);
- digitalWrite(led, HIGH);
- delay (200);
- digitalWrite(led, LOW);
- delay (200);
- break;
- case 'v': // vrteni ocasem
- {
- HCPCA9685.Servo(1, 100);
- delay(100);
- HCPCA9685.Servo(1, 280);
- delay(100);
- HCPCA9685.Servo(1, 100);
- delay(100);
- HCPCA9685.Servo(1, 280);
- delay(100);
- HCPCA9685.Servo(1, 100);
- delay(100);
- HCPCA9685.Servo(1, 280);
- delay(100);
- HCPCA9685.Servo(1, 100);
- delay(100);
- HCPCA9685.Servo(1, 280);
- delay(100);
- HCPCA9685.Servo(1, 170);
- }
- break;
- case 'k': // jeden krok
- {
- HCPCA9685.Servo(8, 200);
- HCPCA9685.Servo(10, 110);
- delay(400);
- HCPCA9685.Servo(4, 180);
- HCPCA9685.Servo(6, 150);
- delay(200);
- HCPCA9685.Servo(8, 120);
- HCPCA9685.Servo(10, 200);
- delay(400);
- HCPCA9685.Servo(4, 250);
- HCPCA9685.Servo(6, 70);
- delay(200);
- HCPCA9685.Servo(8, 170);
- HCPCA9685.Servo(10, 150);
- }
- break;
- case 's': // sedni
- {
- HCPCA9685.Servo(4, 160);
- HCPCA9685.Servo(5, 150);
- delay(500);
- HCPCA9685.Servo(8, 10);
- HCPCA9685.Servo(9, 320);
- delay(500);
- HCPCA9685.Servo(6, 40);
- HCPCA9685.Servo(7, 300);
- delay(500);
- HCPCA9685.Servo(10, 60);
- HCPCA9685.Servo(11, 250);
- delay(500);
- }
- break;
- case 'p': // postoj
- {
- HCPCA9685.Servo(8, 150);
- HCPCA9685.Servo(9, 180);
- delay(500);
- HCPCA9685.Servo(10, 170);
- HCPCA9685.Servo(11, 160);
- delay(500);
- HCPCA9685.Servo(4, 240);
- HCPCA9685.Servo(5, 80);
- delay(500);
- HCPCA9685.Servo(6, 90);
- HCPCA9685.Servo(7, 250);
- }
- break;
- case 'l': // povel LEHNI
- {
- HCPCA9685.Servo(8, 160);
- HCPCA9685.Servo(9, 170);
- delay(500);
- HCPCA9685.Servo(4, 150);
- HCPCA9685.Servo(5, 160);
- delay(500);
- HCPCA9685.Servo(10, 160);
- HCPCA9685.Servo(11, 170);
- delay(500);
- HCPCA9685.Servo(6, 170);
- HCPCA9685.Servo(7, 170);
- delay(500);
- HCPCA9685.Servo(4, 300);
- HCPCA9685.Servo(5, 40);
- delay(500);
- HCPCA9685.Servo(6, 70);
- HCPCA9685.Servo(7, 290);
- delay(500);
- HCPCA9685.Servo(8, 290);
- HCPCA9685.Servo(9, 60);
- delay(500);
- HCPCA9685.Servo(10, 50);
- HCPCA9685.Servo(11, 290);
- }
- break;
- case 'm': // Mavani levou predni packou
- {
- HCPCA9685.Servo(8, 200);
- delay(200);
- HCPCA9685.Servo(4, 160);
- delay(200);
- HCPCA9685.Servo(8, 160);
- delay(200);
- HCPCA9685.Servo(8, 200);
- delay(200);
- HCPCA9685.Servo(8, 160);
- delay(200);
- HCPCA9685.Servo(8, 200);
- delay(200);
- HCPCA9685.Servo(4, 240);
- delay(200);
- HCPCA9685.Servo(8, 160);
- delay(200);
- }
- break;
- case 10:
- // New line
- break;
- case 13:
- // Enter
- break;
- default:
- Serial.println(" Neznam prikaz ");
- }
- }
- display.display();
- }
Advertisement
Add Comment
Please, Sign In to add comment