View difference between Paste ID: GTtZGuVz and 3DDuchaw
SHOW: | | - or go back to the newest paste.
1-
#include <SoftwareSerial.h>                   // knihovna pro seriovou linku 
1+
2-
#include <Wire.h>                             // knihovna pro WIRE komunikaci
2+
#include <Wire.h>
3-
#include <Adafruit_SSD1306.h>                 // knihovna pro OLED
3+
#include <SPI.h>
4-
#include <MPU6050_tockn.h>                    // knihovna pro GYRO
4+
#include <Adafruit_GFX.h>      //Libraries for the OLED and BMP280
5-
#include <Adafruit_BMP280.h>                  // knihovna pro BMP280
5+
#include <Adafruit_SSD1306.h>
6-
#define BMP280_ADRESA (0x76)                  // nastavení adresy senzoru tlaku
6+
#include <Adafruit_Sensor.h>
7-
#include "HCPCA9685.h"                        // knihovna pro 
7+
#include <Adafruit_BMP280.h>
8-
#define I2CAdd 0x40                           // nastaveni adresy SERVO SHIELDU PCA9685 
8+
#include <DS1307RTC.h>
9-
HCPCA9685 HCPCA9685(I2CAdd);                  // nastaveni adresy pca9685
9+
#include <TimeLib.h>
10-
#define SERVO_TRIM_MIN 10
10+
11-
#define SERVO_TRIM_MAX 330
11+
12-
#define MPU6050_ADRESA (0x68)                 // nastavení adresy GYRA
12+
#define SCREEN_WIDTH 128 // OLED display width, in pixels
13-
MPU6050 mpu6050(Wire);
13+
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
14-
#define SCREEN_WIDTH 128                      // OLED display delka, v pixelech
14+
#define OLED_RESET    -1 // Reset pin # (or -1 if sharing Arduino reset pin)
15-
#define SCREEN_HEIGHT 32                      // OLED display vyska, v pixelech
15+
16-
#define OLED_RESET    -1                      // Reset pin # (or -1 if sharing Arduino reset pin)
16+
17
#define BMP280_ADRESA (0x76)  // nastavení adresy senzoru
18-
int servo;                                   // promenna pro servo
18+
Adafruit_BMP280 bmp;     // inicializace senzoru BME z knihovny
19-
int uhel;                                    // promenna pro uhel
19+
20-
int leduv2 = A2;
20+
const int MPU_addr = 0x68;  // inicializace proměnné pro určení adresy senzoru
21-
int ledoci = A3;
21+
int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;  // inicializace proměnných, do kterých se uloží data
22-
int leduv1 = A1;
22+
23-
int laser = 4;
23+
const int button1 = A0;
24-
int ledpasek = 3;
24+
const int button2 = A1;
25-
int svetlo1 = 5;
25+
const int button3 = A2;
26-
int svetlo2 = 6;
26+
const int button4 = A3;
27-
int pTrig = 7;                              // pin pro připojení Trig z modulu HC-SR04
27+
//const int button5 = A7;
28-
int pEcho = 8;                              // pin pro připojení Echo z modulu HC-SR04
28+
29-
int svetlo = 9;
29+
const int led1 =  2;
30-
int led = 13;
30+
const int led2 =  3;
31-
long odezva, vzdalenost;                    // inicializace proměnných, do kterých se uloží data
31+
const int led3 =  4;
32
const int led4 =  13;
33-
void kroky() {               //  Q
33+
const int led5 =  5;
34-
  HCPCA9685.Servo(10, 150);         delay(500);
34+
const int led6 =  6;
35-
  HCPCA9685.Servo(1, 300);          delay(500);
35+
36-
  HCPCA9685.Servo(8, 190);          delay(500);
36+
int  x = 0;
37-
  HCPCA9685.Servo(4, 180);          delay(500);
37+
38-
  HCPCA9685.Servo(8, 170);          delay(500);
38+
39-
  HCPCA9685.Servo(10, 180);         delay(500);
39+
  pinMode(button1, INPUT_PULLUP);  // nastaví pin kde je tlačítko jako vstup
40-
  HCPCA9685.Servo(1, 20);           delay(500);
40+
  pinMode(button2, INPUT_PULLUP);
41-
  HCPCA9685.Servo(9, 200);          delay(500);
41+
  pinMode(button3, INPUT_PULLUP);
42-
  HCPCA9685.Servo(10, 150);         delay(500);
42+
  pinMode(button4, INPUT_PULLUP);
43-
  HCPCA9685.Servo(6, 140);          delay(500);
43+
//  pinMode(button5, INPUT_PULLUP);
44-
  HCPCA9685.Servo(10, 190);         delay(500);
44+
45-
  HCPCA9685.Servo(8, 110);          delay(500);
45+
  pinMode(led1, OUTPUT); // nastaví vystup u Led1 na výstup
46-
  HCPCA9685.Servo(11, 170);         delay(500);
46+
  pinMode(led2, OUTPUT); // nastaví vystup u Led2 na výstup
47-
  HCPCA9685.Servo(9, 140);          delay(500);
47+
  pinMode(led3, OUTPUT); // nastaví vystup u Led3 na výstup
48-
  HCPCA9685.Servo(5, 130);          delay(500);
48+
  pinMode(led4, OUTPUT); // nastaví vystup u Led4 na výstup
49-
  HCPCA9685.Servo(9, 220);          delay(500);
49+
  pinMode(led5, OUTPUT); // nastaví vystup u Led5 na výstup
50-
  HCPCA9685.Servo(10, 170);         delay(500);
50+
  pinMode(led6, OUTPUT); // nastaví vystup u Led6 na výstup
51-
  HCPCA9685.Servo(11, 120);         delay(500);
51+
52-
  HCPCA9685.Servo(10, 210);         delay(500);
52+
  Serial.begin(9600);  // komunikace po sériové lince rychlostí 115200 baud
53-
  HCPCA9685.Servo(9, 170);          delay(500);
53+
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Start the OLED,adress 0x3C 128x32
54-
  HCPCA9685.Servo(7, 210);          delay(500);
54+
55-
  HCPCA9685.Servo(1, 340);          delay(500);
55+
56-
  HCPCA9685.Servo(11, 110);         delay(500);
56+
  display.clearDisplay();
57-
  HCPCA9685.Servo(9, 150);          delay(500);
57+
  display.setTextColor(WHITE);
58-
  HCPCA9685.Servo(11, 190);         delay(500);
58+
59-
  HCPCA9685.Servo(7, 200);          delay(500);
59+
  display.print("Kenny-Tech");     //Show the name, you can remove it or replace it
60-
  HCPCA9685.Servo(11, 140);         delay(500);
60+
  display.setCursor(32, 12);
61-
  HCPCA9685.Servo(9, 200);          delay(500);
61+
  display.setTextSize(2);
62-
  HCPCA9685.Servo(6, 90);           delay(500);
62+
  display.println("NATEPNIK");
63-
  HCPCA9685.Servo(4, 250);          delay(500);
63+
64-
  HCPCA9685.Servo(7, 270);          delay(500);
64+
  delay(2000);
65-
  HCPCA9685.Servo(5, 80);           delay(500);
65+
66-
  HCPCA9685.Servo(6, 90);           delay(500);
66+
67-
  HCPCA9685.Servo(10, 170);          delay(500);
67+
68
uint8_t button = 0;
69-
  HCPCA9685.Servo(4, 240);
69+
70-
  HCPCA9685.Servo(5, 80);           delay(500);
70+
void loop()
71-
  HCPCA9685.Servo(6, 90);
71+
{
72-
  HCPCA9685.Servo(7, 250);          delay(500);
72+
  // tady si vyctes stavy tlacitek a nastavis promennou
73-
  HCPCA9685.Servo(8, 140);
73+
  if (digitalRead(button1) == false)
74-
  HCPCA9685.Servo(9, 180);          delay(500);
74+
    button = 1;
75-
  HCPCA9685.Servo(10, 170);
75+
  else if (digitalRead(button2) == false)
76-
  HCPCA9685.Servo(11, 170);         delay(500);
76+
    button = 2;
77-
  HCPCA9685.Servo(1, 340);          delay(100);
77+
  else if (digitalRead(button3) == false)
78
    button = 3;
79-
void krok() {                //  K
79+
  else if (digitalRead(button4) == false)
80-
  HCPCA9685.Servo(8, 200);
80+
    button = 4;
81-
  HCPCA9685.Servo(10, 110);    delay(250);
81+
//  else if (digitalRead(button5) == false)
82-
  HCPCA9685.Servo(4, 200);
82+
//    button = 5;
83-
  HCPCA9685.Servo(6, 120);     delay(300);
83+
84-
  HCPCA9685.Servo(8, 150);
84+
  switch (button)
85-
  HCPCA9685.Servo(10, 170);    delay(300);
85+
86-
  HCPCA9685.Servo(9, 130);
86+
    case 1:
87-
  HCPCA9685.Servo(11, 210);    delay(250);
87+
      {                        // provede se ukol pro prvni tlacitko
88-
  HCPCA9685.Servo(5, 130);
88+
        digitalWrite(led1, HIGH);
89-
  HCPCA9685.Servo(7, 200);     delay(300);
89+
        digitalWrite(led2, LOW);
90-
  HCPCA9685.Servo(9, 150);
90+
        digitalWrite(led3, LOW);
91-
  HCPCA9685.Servo(11, 160);    delay(200);
91+
        digitalWrite(led4, LOW);
92-
  HCPCA9685.Servo(10, 170);
92+
        digitalWrite(led5, LOW);
93-
  HCPCA9685.Servo(11, 160);    delay(300);
93+
        digitalWrite(led6, LOW);
94-
  HCPCA9685.Servo(8, 140);
94+
                
95-
  HCPCA9685.Servo(9, 180);     delay(300);
95+
tmElements_t tm;
96-
  HCPCA9685.Servo(6, 90);
96+
        display.clearDisplay();
97-
  HCPCA9685.Servo(7, 250);     delay(300);
97+
        RTC.read(tm);
98-
  HCPCA9685.Servo(4, 240);
98+
        display.setTextSize(2);
99-
  HCPCA9685.Servo(5, 80);      delay(300);
99+
        display.setTextColor(WHITE);
100-
  HCPCA9685.Servo(1, 200);     delay(100);
100+
        display.setCursor(0, 0);
101
        display.print(tm.Hour);
102-
void postoj() {              //  P
102+
        display.print(":");
103-
  HCPCA9685.Servo(10, 170);
103+
        display.print(tm.Minute);
104-
  HCPCA9685.Servo(11, 160);         delay(500);
104+
        display.print(":");
105-
  HCPCA9685.Servo(8, 140);
105+
        display.print(tm.Second);
106-
  HCPCA9685.Servo(9, 180);          delay(500);
106+
        display.setCursor(0,17);
107-
  HCPCA9685.Servo(6, 90);
107+
        display.setTextSize(2);
108-
  HCPCA9685.Servo(7, 250);          delay(500);
108+
        display.print(tm.Day);
109-
  HCPCA9685.Servo(4, 240);
109+
        display.print(':');
110-
  HCPCA9685.Servo(5, 80);           delay(500);
110+
        display.print(tm.Month);
111-
  HCPCA9685.Servo(1, 200);          delay(100);
111+
        display.print(':');
112
        display.print(tmYearToCalendar(tm.Year));
113-
void postoj2() {             //  O
113+
        display.display();
114-
  HCPCA9685.Servo(1, 200);        //  delay(200);
114+
        digitalWrite(led1, LOW);
115-
  HCPCA9685.Servo(4, 240);
115+
        delay(500);
116-
  HCPCA9685.Servo(5, 80);           delay(200);
116+
117-
  HCPCA9685.Servo(6, 90);
117+
      }
118-
  HCPCA9685.Servo(7, 250);          delay(200);
118+
    case 2:
119-
  HCPCA9685.Servo(8, 140);
119+
      {                        // provede se ukol pro druhe tlacitko
120-
  HCPCA9685.Servo(9, 180);          delay(200);
120+
        digitalWrite(led1, LOW);
121-
  HCPCA9685.Servo(10, 170);
121+
        digitalWrite(led2, HIGH);
122-
  HCPCA9685.Servo(11, 160);         delay(200);
122+
        digitalWrite(led3, LOW);
123-
  HCPCA9685.Servo(1, 350);          delay(100);
123+
        digitalWrite(led4, LOW);
124-
  HCPCA9685.Servo(4, 200);
124+
        digitalWrite(led5, LOW);
125-
  HCPCA9685.Servo(5, 120);          delay(200);
125+
        digitalWrite(led6, LOW);
126-
  HCPCA9685.Servo(6, 120);
126+
        
127-
  HCPCA9685.Servo(7, 210);          delay(200);
127+
        bmp.begin(0x76);            //Start the bmp
128-
  HCPCA9685.Servo(8, 60);
128+
        display.clearDisplay();
129-
  HCPCA9685.Servo(9, 270);          delay(200);
129+
                 
130-
  HCPCA9685.Servo(10, 240);
130+
        float T = bmp.readTemperature();           //Read temperature in °C
131-
  HCPCA9685.Servo(11, 80);          delay(200);
131+
        float P = bmp.readPressure() / 100;      //Read Pressure in Pa and conversion to hPa
132
        float A = bmp.readAltitude(1019.25);      //Calthe Altitude, the "1019.66"  in (hPa)level at day in your region
133-
void vyskok()  {             //  E
133+
        
134-
  HCPCA9685.Servo(4, 200);
134+
        display.setCursor(0,0);                  //Oled display, 
135-
  HCPCA9685.Servo(5, 120);          delay(200);
135+
        display.setTextColor(WHITE);
136-
  HCPCA9685.Servo(6, 120);
136+
        display.setTextSize(2);        
137-
  HCPCA9685.Servo(7, 210);          delay(200);
137+
        display.print("Temp");
138-
  HCPCA9685.Servo(8, 60);
138+
        
139-
  HCPCA9685.Servo(9, 270);          delay(200);
139+
        display.setCursor(0,18);
140-
  HCPCA9685.Servo(10, 240);
140+
        display.print(T,1);
141-
  HCPCA9685.Servo(11, 90);          delay(200);
141+
        display.setCursor(50,17);
142-
  HCPCA9685.Servo(11, 80);
142+
        display.setTextSize(1);
143
        display.print("C");
144
        
145-
void lehni() {              //  L
145+
        display.setTextSize(1);
146-
  HCPCA9685.Servo(1, 340);           delay(100);
146+
        display.setCursor(65,0);
147-
  HCPCA9685.Servo(10, 130);
147+
        display.print("Tlak");
148-
  HCPCA9685.Servo(11, 200);         delay(500);
148+
        display.setCursor(65,10);
149-
  HCPCA9685.Servo(9, 80);
149+
        display.print(P);
150-
  HCPCA9685.Servo(8, 250);          delay(500);
150+
        display.setCursor(110,10);
151-
  HCPCA9685.Servo(10, 80);
151+
        display.print("hPa");
152-
  HCPCA9685.Servo(11, 250);         delay(500);
152+
153-
  HCPCA9685.Servo(10, 40);
153+
        display.setCursor(65,25);
154-
  HCPCA9685.Servo(11, 290);         delay(500);
154+
        display.print("Alt");
155-
  HCPCA9685.Servo(6, 50);
155+
        display.setCursor(90,25);
156-
  HCPCA9685.Servo(7, 290);          delay(500);
156+
        display.print(A,0);
157-
  HCPCA9685.Servo(9, 60);
157+
        display.setCursor(110,25);
158-
  HCPCA9685.Servo(8, 270);          delay(500);
158+
        display.print("m");
159-
  HCPCA9685.Servo(4, 290);
159+
        
160-
  HCPCA9685.Servo(5, 50);           delay(500);
160+
        display.display();
161
        digitalWrite(led2, LOW);
162-
void sedni() {               //  S
162+
        delay (200);
163-
  HCPCA9685.Servo(1, 340);           delay(100);
163+
164-
  HCPCA9685.Servo(10, 20);
164+
      }
165-
  HCPCA9685.Servo(11, 300);         delay(500);
165+
166-
  HCPCA9685.Servo(6, 10);
166+
    case 3:
167-
  HCPCA9685.Servo(7, 330);          delay(500);
167+
      {                       // provede se ukol pro teti tlacitko
168-
  HCPCA9685.Servo(4, 170);
168+
        digitalWrite(led1, LOW);
169-
  HCPCA9685.Servo(5, 140);          delay(500);
169+
        digitalWrite(led2, LOW);
170-
  HCPCA9685.Servo(8, 130);
170+
        digitalWrite(led3, HIGH);
171-
  HCPCA9685.Servo(9, 190);          delay(500);
171+
        digitalWrite(led4, LOW);
172
        digitalWrite(led5, LOW);
173-
void cupnout() {            //  R
173+
        digitalWrite(led6, LOW);
174-
  HCPCA9685.Servo(1, 340);           delay(100);
174+
        
175-
  HCPCA9685.Servo(8, 160);
175+
        
176-
  HCPCA9685.Servo(9, 180);          delay(500);
176+
        display.clearDisplay();
177-
  HCPCA9685.Servo(10, 160);
177+
178-
  HCPCA9685.Servo(11, 170);         delay(500);
178+
        const int MPU_addr = 0x68;  // inicializace proměnné pro určení adresy senzoru
179-
  HCPCA9685.Servo(4, 160);
179+
        int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;  // inicializace proměnných, do kterých se uloží data
180-
  HCPCA9685.Servo(5, 160);          delay(500);
180+
181-
  HCPCA9685.Servo(6, 160);
181+
        Wire.beginTransmission(MPU_addr);      // zapnutí přenosu
182-
  HCPCA9685.Servo(7, 160);          delay(500);
182+
        Wire.write(0x3B);                   // zápis do registru ACCEL_XOUT_H
183
        Wire.endTransmission(false);
184-
void vrteni() {             //  V
184+
        Wire.requestFrom(MPU_addr, 14, true);        // vyzvednutí dat z 14 registrů
185-
  HCPCA9685.Servo(1, 80);           delay(100);
185+
        AcX = Wire.read() << 8 | Wire.read();
186-
  HCPCA9685.Servo(1, 280);          delay(100);
186+
        AcY = Wire.read() << 8 | Wire.read();
187-
  HCPCA9685.Servo(1, 80);           delay(100);
187+
        AcZ = Wire.read() << 8 | Wire.read();
188-
  HCPCA9685.Servo(1, 280);          delay(100);
188+
        Tmp = Wire.read() << 8 | Wire.read();
189-
  HCPCA9685.Servo(1, 80);           delay(100);
189+
        GyX = Wire.read() << 8 | Wire.read();
190-
  HCPCA9685.Servo(1, 280);          delay(100);
190+
        GyY = Wire.read() << 8 | Wire.read();
191-
  HCPCA9685.Servo(1, 80);           delay(100);
191+
        GyZ = Wire.read() << 8 | Wire.read();
192-
  HCPCA9685.Servo(1, 280);          delay(100);
192+
193-
  HCPCA9685.Servo(1, 340);           delay(100);
193+
        display.setCursor(0, 0);                  //Oled display, just playing with text size and cursor to get the display you want
194
        display.setTextColor(WHITE);
195-
void mavani() {             //  M
195+
        display.setTextSize(1);
196-
  HCPCA9685.Servo(10, 150);         delay(200);
196+
        display.print(AcX);
197-
  HCPCA9685.Servo(8, 200);          delay(200);
197+
        display.print(":");
198-
  HCPCA9685.Servo(4, 160);          delay(200);
198+
        display.print(AcY);
199-
  HCPCA9685.Servo(8, 160);          delay(200);
199+
        display.print(":");
200-
  HCPCA9685.Servo(8, 200);          delay(200);
200+
        display.print(AcZ);
201-
  HCPCA9685.Servo(8, 160);          delay(200);
201+
        display.print(":");
202-
  HCPCA9685.Servo(8, 200);          delay(200);
202+
        display.setTextSize(1);
203-
  HCPCA9685.Servo(4, 240);          delay(200);
203+
        display.setCursor(0, 18);
204-
  HCPCA9685.Servo(8, 140);          delay(200);
204+
        display.print(Tmp);
205-
  HCPCA9685.Servo(10, 170);         delay(200);
205+
        display.print(":");
206
        display.print(GyX);
207-
void blikani() {            //  B
207+
        display.print(":");
208-
  digitalWrite(led, HIGH);          delay (70);
208+
        display.print(GyY);
209-
  digitalWrite(led, LOW);           delay (70);
209+
        display.print(":");
210-
  digitalWrite(led, HIGH);          delay (70);
210+
        display.print(GyZ);
211-
  digitalWrite(led, LOW);           delay (70);
211+
        display.print(":");
212-
  digitalWrite(led, HIGH);          delay (70);
212+
213-
  digitalWrite(led, LOW);           delay (70);
213+
        display.display();
214-
  digitalWrite(led, HIGH);          delay (70);
214+
        digitalWrite(led3, LOW);
215-
  digitalWrite(led, LOW);           delay (70);
215+
        delay(500);
216-
  digitalWrite(led, HIGH);          delay (70);
216+
217-
  digitalWrite(led, LOW);           delay (70);
217+
      }
218
      
219-
void cas() {                //  A
219+
    case 4:
220-
  Serial.print("Cas od spusteni Rasse: ");
220+
      {                        // provede se ukol pro ctvrte tlacitko
221-
  Serial.print(millis() / 1000);
221+
        digitalWrite(led1, LOW);
222-
  Serial.println(" vterin.");
222+
        digitalWrite(led2, LOW);
223
        digitalWrite(led3, LOW);
224
        digitalWrite(led4, HIGH);
225
        digitalWrite(led5, HIGH);
226
        digitalWrite(led6, LOW);
227
        
228-
  Serial.begin(115200);
228+
        
229-
  Serial.println(" sestavuji projekt ");
229+
        display.clearDisplay();
230-
  HCPCA9685.Init(SERVO_MODE);              // prepnuti pca9685 do modu-SERVO
230+
        
231-
  HCPCA9685.Sleep(false);                  // vypnout spanek PCA9685
231+
        display.setCursor(0,0);                  //Oled display, 
232-
  Serial.println(" nastavuji Servo shield ");
232+
        display.setTextColor(WHITE);
233-
  lehni();
233+
        display.setTextSize(3);        
234-
  display.begin();
234+
        display.print("Svetlo");
235-
  Serial.println(" nastavuji Oled ");
235+
 /*       
236-
  pinMode(laser, OUTPUT);
236+
        display.setCursor(0,18);
237-
  digitalWrite(laser, HIGH);
237+
        display.print(T,1);
238-
  display.clearDisplay();                   // vycisteni displeje
238+
        display.setCursor(50,17);
239-
  Serial.println(" nastavuji vystupni piny");
239+
        display.setTextSize(1);
240-
  pinMode(led, OUTPUT);
240+
        display.print("C");
241-
  pinMode(leduv2, OUTPUT);
241+
        
242-
  pinMode(ledoci, OUTPUT);
242+
        display.setTextSize(1);
243-
  pinMode(leduv1, OUTPUT);
243+
        display.setCursor(65,0);
244-
  pinMode(pTrig, OUTPUT);                   // nastaveni Trig-pinu jako vystup
244+
        display.print("Tlak");
245-
  pinMode(pEcho, INPUT);                    // nastaveni Echo-pinu jako vstup
245+
        display.setCursor(65,10);
246-
  pinMode(ledpasek, OUTPUT);                // nastaveni pinu pro ledpasek jako vystup
246+
        display.print(P);
247-
  pinMode(svetlo, OUTPUT);                  // nastaveni LED-pinu jako vystup
247+
        display.setCursor(110,10);
248-
  pinMode(svetlo1, OUTPUT);
248+
        display.print("hPa");
249-
  pinMode(svetlo2, OUTPUT);
249+
250-
  digitalWrite(leduv2, HIGH); delay(300);
250+
        display.setCursor(65,25);
251-
  digitalWrite(ledoci, HIGH); delay(300);
251+
        display.print("Alt");
252-
  digitalWrite(leduv1, HIGH); delay(400);
252+
        display.setCursor(90,25);
253-
  digitalWrite(ledoci, LOW);
253+
        display.print(A,0);
254-
  digitalWrite(leduv2, LOW);
254+
        display.setCursor(110,25);
255-
  digitalWrite(leduv1, LOW);
255+
        display.print("m");
256-
  Serial.println(" nastavuji vstupni piny");
256+
   */     
257-
  mpu6050.begin();                         // zapnuti komunikace s GYROSKOPEM
257+
        display.display();
258-
  mpu6050.calcGyroOffsets(true);           // kalibrace GYRA
258+
        digitalWrite(led4, LOW);
259
        delay (200);
260-
  Serial.println(" vse nastaveno. .. ");
260+
261-
  Serial.println(" Pripraven : ");
261+
      }
262-
  digitalWrite(laser, LOW);
262+
      
263-
  Serial.println(" Zadej povel ");
263+
   case 5:
264
      {                        // provede se ukol pro 5-te tlacitko
265
        digitalWrite(led1, LOW);
266
        digitalWrite(led2, LOW);
267-
void loop() {
267+
        digitalWrite(led3, LOW);
268-
  if (Serial.available() > 3)   {                 // pokud je na seriove lince buffer
268+
        digitalWrite(led4, LOW);
269-
    servo =  Serial.readStringUntil('.').toInt(); // nacteni dat pred teckou do promenne
269+
        digitalWrite(led5, LOW);
270-
    uhel =  Serial.readStringUntil('\n').toInt(); // nacteni dat za teckou s ukoncenim do promenne
270+
        digitalWrite(led6, HIGH);
271-
    Serial.print(servo);
271+
                
272-
    Serial.print(" . ");
272+
        display.clearDisplay();
273-
    Serial.println(uhel);
273+
        
274-
    HCPCA9685.Servo(servo, uhel);                 // provede nastaveni podle promennych
274+
        display.setCursor(0,0);                  //Oled display, 
275-
  }                                               //   konec cteni
275+
        display.setTextColor(WHITE);
276-
  int x = Serial.available();
276+
        display.setTextSize(3);        
277-
  if ( x == 2 )
277+
        display.print("Svetlo");
278
        display.setCursor(0,25);
279-
    char pismeno = Serial.read();
279+
        display.setTextSize(1); 
280-
    Serial.println(pismeno);
280+
        display.print("UV");
281-
    switch (pismeno)
281+
        
282-
    {
282+
        display.display();
283-
      case 'z':
283+
        //digitalWrite(led6, LOW);
284-
        digitalWrite(leduv2, HIGH);
284+
        delay (200);
285-
        digitalWrite(leduv1, HIGH);
285+
286
      }      
287-
      case 'x':
287+
      
288-
        digitalWrite(leduv2, LOW);
288+
    default:
289-
        digitalWrite(leduv1, LOW);
289+
      {
290
        // provede ukol pro ostatni stavy (napr. StisknuteTlacitko == 0)
291-
      case 'c':
291+
        digitalWrite(led1, HIGH);
292-
        digitalWrite(ledoci, HIGH);
292+
        digitalWrite(led2, HIGH);
293
        digitalWrite(led3, HIGH);
294-
      case 'd':
294+
        digitalWrite(led4, HIGH);
295-
        digitalWrite(ledoci, LOW);
295+
        digitalWrite(led5, LOW);
296
        delay(100);
297-
      case 'f':
297+
        digitalWrite(led1, LOW);
298-
        digitalWrite(leduv1, HIGH);
298+
        digitalWrite(led2, LOW);
299
        digitalWrite(led3, LOW);
300-
      case 'g':
300+
        digitalWrite(led4, LOW);
301-
        digitalWrite(leduv1, LOW);
301+
        digitalWrite(led5, LOW);        
302
        delay(100);
303-
      case 'j':
303+
304-
        digitalWrite(laser, HIGH);      // zapne laser
304+
      }
305
  }
306-
      case 'n':
306+