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 | + |