Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h> //Přibal knihovnu Arduina
- #include "avdweb_VirtualDelay.h" //github.com/avandalen/VirtualDelay
- VirtualDelay singleDelay; //Deklarace proměnné potřebné pro délku stisknutí tlačítka
- VirtualDelay twoDelay;
- char klavesaPT[] = {"_abcdefghijkl"};
- int pomernyTahVstupy[4];
- int aktualniStavPT;
- int staryStavPT;
- int zapisovatelnyStavPT;
- int staryZapisovatelnyStavPT;
- int tlacitkoPin[] = {2,3,4,5};
- void setup() {
- Serial.begin(2400);
- for(int i=0; i<4; i++){pinMode(tlacitkoPin[i], OUTPUT);}
- pomernyTah();
- }
- void pomernyTah() { //Funkce pro čtení ovladače poměrného tahu
- for(int i=0; i<4; i++){ pomernyTahVstupy[i] = digitalRead(tlacitkoPin[i]); } //PomernyTahVstupy je roven stavu napětí na pinu
- for(int i=0; i<4; i++){ bitWrite(aktualniStavPT, i, pomernyTahVstupy[i]); } //Jednotlivé bity jsou rovny poli hodnot PomernyTahVstupy
- if(aktualniStavPT != staryStavPT){twoDelay.start(125);} //Pokud došlo ke změně napětí, začni počítat zpoždění
- if(aktualniStavPT != staryStavPT && twoDelay.elapsed()){ //Pokud došlo ke změně napětí a zároveň skončila doba zpoždění
- staryStavPT = aktualniStavPT; //Nahraď starý stav novým
- zapisovatelnyStavPT = aktualniStavPT; } //ZapisovatelnyStavPT je roven aktuálnímu
- for(int i=1; i<13; i++) { //Počítej od 1 do 13
- if(zapisovatelnyStavPT == i && staryZapisovatelnyStavPT != zapisovatelnyStavPT) { //
- Serial.print("Stisknuta klavesa PT "); //Stiskni klávesu
- Serial.println(klavesaPT[i]); //Klávesa z pole
- staryZapisovatelnyStavPT = zapisovatelnyStavPT; //Nahrazení StaréhoZapisovatelnéhoStavu novým
- } } }
- void loop() {
- pomernyTah();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement