Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum state {NONE, L, LT, LV, LP, M, MS};
- enum state aktualni_stav = NONE;
- char c = 0;
- unsigned int AmetrBuzeni = 0;
- unsigned int AmetrMS1 = 0;
- unsigned int AmetrMS2 = 0;
- unsigned int Rychlomer = 0;
- unsigned int UkazatelARR = 0;
- unsigned int TlakValce = 0;
- unsigned int TlakVzduchojem = 0;
- #include <Arduino.h> //Přibal knihovnu Arduina
- #include <avdweb_VirtualDelay.h>
- #include <Keyboard.h>
- int vstupy[] = {24,25,26,27};
- int stavArray[] = {0,0,0,0};
- int stav = 0000;
- int rychlosti[12] = {0,255,510,765,1020,1275,1530,1785,2040,2295,2550,2805};
- char uber = '-';
- char pridej = '=';
- boolean klavesaJeStisknuta;
- VirtualDelay singleDelay; //Deklarace proměnné potřebné pro délku stisknutí tlačítka
- VirtualDelay twoDelay;
- //═════════════════════════════════════════════════════════════════════════════════════════//
- void setup() {
- for(int i=0; i<4; i++) {
- pinMode(vstupy[i],INPUT);
- }
- for (int i = 24; i < 36; i++) {
- pinMode(i, OUTPUT);
- digitalWrite(i, LOW);
- }
- Serial.setTimeout(3);
- Serial.begin(115200);
- Serial.flush();
- Keyboard.begin();
- twoDelay.start(500);
- }
- //═════════════════════════════════════════════════════════════════════════════════════════//
- void prectiSerial() {
- if (Serial.available() > 0) {
- c = Serial.read();
- switch (aktualni_stav) {
- case L:
- if (c == 'l') aktualni_stav = L;
- else if (c == 't') aktualni_stav = LT;
- else if (c == 'v') aktualni_stav = LV;
- else if (c == 'p') aktualni_stav = LP;
- else if (c == 'm') aktualni_stav = M;
- else aktualni_stav = NONE;
- break;
- /////////////////////////////////////////////////
- case LT:
- if (c == 'b')
- {
- AmetrBuzeni = Serial.parseInt();
- aktualni_stav = NONE;
- }
- else if (c == 'l') aktualni_stav = L;
- else if (c == 'm') aktualni_stav = M;
- else aktualni_stav = NONE;
- break;
- /////////////////////////////////////////////////
- case LV:
- if (c == 'l') aktualni_stav = L;
- else if (c == 'm') aktualni_stav = M;
- else if (c == 'n')
- {
- // cas1= micros();
- // cas = cas1-cas2;
- // Serial.println(cas);
- Rychlomer = (Serial.parseInt()) / (10);
- aktualni_stav = NONE;
- // cas2=micros();
- }
- else if (c == 'p')
- {
- UkazatelARR = (Serial.parseInt()) / (10);
- aktualni_stav = NONE;
- }
- else aktualni_stav = NONE;
- break;
- /////////////////////////////////////////////////
- case LP:
- if (c == 'l') aktualni_stav = L;
- else if (c == 'v')
- {
- TlakValce = Serial.parseInt();
- aktualni_stav = NONE;
- }
- else if (c == 'm')
- {
- TlakVzduchojem = Serial.parseInt();
- aktualni_stav = NONE;
- }
- else aktualni_stav = NONE;
- break;
- /////////////////////////////////////////////////
- case M:
- if (c == 'l') aktualni_stav = L;
- else if (c == 's') aktualni_stav = MS;
- else aktualni_stav = NONE;
- break;
- /////////////////////////////////////////////////
- case MS:
- if (c == 'l') aktualni_stav = L;
- else if (c == 'm') aktualni_stav = M;
- else if (c == 'a')
- {
- AmetrMS1 = Serial.parseInt();
- aktualni_stav = NONE;
- }
- else if (c == 'b')
- {
- AmetrMS2 = Serial.parseInt();
- aktualni_stav = NONE;
- }
- else aktualni_stav = NONE;
- break;
- /////////////////////////////////////////////////
- default:
- if (c == 'l') aktualni_stav = L;
- else if (c == 'm') aktualni_stav = M;
- else aktualni_stav = NONE;
- break;
- }
- }
- }
- //═════════════════════════════════════════════════════════════════════════════════════════//
- /*void zapisRychlomer() {
- if (Rychlomer >= 0 && Rychlomer <= 255 ) {
- analogWrite(2, Rychlomer);
- for (int i = 3; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 255 && Rychlomer <= 510 ) {
- analogWrite(3, Rychlomer - 255);
- digitalWrite(2, HIGH);
- for (int i = 4; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 510 && Rychlomer <= 765 ) {
- analogWrite(4, Rychlomer - 510);
- for (int i = 1; i < 4 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 5; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 765 && Rychlomer <= 1020) {
- analogWrite(5, Rychlomer - 765);
- for (int i = 1; i < 5 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 6; i < 12; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 1020 && Rychlomer <= 1275 ) {
- analogWrite(6, Rychlomer - 1020);
- for (int i = 1; i < 6 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 7; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 1275 && Rychlomer <= 1530 ) {
- analogWrite(7, Rychlomer - 1275);
- for (int i = 1; i < 7 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 8; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 1530 && Rychlomer <= 1785 ) {
- analogWrite(8, Rychlomer - 1530);
- for (int i = 1; i < 8 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 9; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 1785 && Rychlomer <= 2040 ) {
- analogWrite(9, Rychlomer - 1785);
- for (int i = 1; i < 9 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 10; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 2040 && Rychlomer <= 2295 ) {
- analogWrite(10, Rychlomer - 2040);
- for (int i = 1; i < 10 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 11; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 2295 && Rychlomer <= 2550 ) {
- analogWrite(11, Rychlomer - 2295);
- for (int i = 1; i < 11 ; i++) {
- digitalWrite(i, HIGH);
- }
- for (int i = 12; i < 14; i++) {
- digitalWrite(i, LOW);
- }
- }
- if (Rychlomer > 2550 && Rychlomer <= 2805 ) {
- analogWrite(12, Rychlomer - 2550);
- for (int i = 1; i < 12 ; i++) {
- digitalWrite(i, HIGH);
- }
- digitalWrite(13, LOW);
- }
- if (Rychlomer > 2805 && Rychlomer <= 3060 ) {
- analogWrite(13, Rychlomer - 2805);
- for (int i = 1; i < 13 ; i++) {
- digitalWrite(i, HIGH);
- }
- }
- }*/
- //═════════════════════════════════════════════════════════════════════════════════════════//
- void zapisUkazatelARR() {
- if(UkazatelARR < 250 && klavesaJeStisknuta == false && twoDelay.elapsed()) {
- // Keyboard.press(KEY_LEFT_SHIFT);
- Keyboard.press(pridej);
- singleDelay.start(220);
- klavesaJeStisknuta = true;
- twoDelay.start(480);
- }
- else if(UkazatelARR > 260 && klavesaJeStisknuta == false && twoDelay.elapsed()) {
- // Keyboard.press(KEY_LEFT_SHIFT);
- Keyboard.press(uber);
- singleDelay.start(220);
- klavesaJeStisknuta = true;
- twoDelay.start(480);
- }
- }
- //═════════════════════════════════════════════════════════════════════════════════════════//
- void loop() {
- prectiSerial();
- for(int i=0; i<4; i++) {
- stavArray[i] = digitalRead(vstupy[i]);
- bitWrite(stav, i, stavArray[i]);
- }
- //´´ zapisRychlomer();
- zapisUkazatelARR();
- if(klavesaJeStisknuta == true && singleDelay.elapsed()) {
- Keyboard.releaseAll();
- klavesaJeStisknuta = false;
- }
- }
- //═════════════════════════════════════════════════════════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment