Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Kolik posuvných registrů je spojeno? */
- #define POCET_SHIFT_REGISTRU 1
- // _______
- /* Kolik vstupů má každý shift registr? */ // Paralel load -> | |_| | <- VCC
- #define POCET_VSTUPU POCET_SHIFT_REGISTRU * 8 // Clock -> | 7 | <- Clock enable
- // switch 4 -> | 4 | <- switch 5
- /* Kolik microsekund má trvat puls pro zachycení stavů tlačítek? */ // switch 3 -> | HC | <- switch 6
- #define DELKA_PULSU_USEC 1 // switch 2 -> | 6 | <- switch 7
- // switch 1 -> | 5 | <- switch 8
- /* Celkový pošer tlačítek připojených k Arduino */ // Nothing -> | 1 | <- From next
- #define CELKEM_VSTUPU 8 // GROUND -> |_______| <- Q7 (To next)
- //═══════════════════════════════════════════════════════════════════════════════════════════//
- int ploadPin = 8; // Připojení k Parallel load pinu posuvného registru (1)
- int clockEnablePin = 9; // Připojení k Clock Enable pinu posuvného registru (15)
- int dataPin = 11; // Připojení k Q7 pinu posuvného registru (9)
- int clockPin = 12; // Připojení k Clock pinu posuvného registru (2)
- int pozmeneno[POCET_VSTUPU] = {};
- int tlacitkoOLD[POCET_VSTUPU] = {};
- int tlacitko[POCET_VSTUPU] = {};
- int ZakladniVstupy[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- };
- /* Knifovny a proměnné potřebné pro knihovnu zpoždění */
- #include <Arduino.h> //Přibal knihovnu Arduina
- #include "avdweb_VirtualDelay.h" //github.com/avandalen/VirtualDelay
- VirtualDelay bpDelay;
- VirtualDelay twoDelay;
- //═══════════════════════════════════════════════════════════════════════════════════════════//
- void setup() {
- Serial.begin(115200); //Začni sériovou komunikaci ve zvolené rychlosti
- // SerialUSB.begin(115200); //Začni sériovou komunikaci pro port USB
- pinMode(ploadPin, OUTPUT); //Nahrávací (shiftregister 1 na 8 pin Arduina)
- pinMode(clockEnablePin, OUTPUT); //Sepnutí časovače (shiftregister 15 na 9 pin Arduina)
- pinMode(clockPin, OUTPUT); //Časovač (shiftregister 2 to na 12 pin Arduina)
- pinMode(dataPin, INPUT); //Data z 74HC165 (shiftregister 9 to 11 pin Arduina)
- pinMode(A0,INPUT);
- digitalWrite(clockPin, LOW); //Ujisti se, že clock pin je LOW
- digitalWrite(ploadPin, HIGH); //Nastav nahrávací pin na HIGH
- bpDelay.start(100);
- }
- //══════════════════════════════════════════════════════════════════════════════════════════//
- void loop() {
- // int cas1 = micros();
- kontrolaZmen(); // Zkontroluj, zda na nějakém tlačítku nedošlo ke změně
- Kontroler(0, "ktl"); // Zkontroluj a zapiš lokomotivní kontrolér
- Smer(10,"ksm"); // Zkontroluj a zapiš stav směrového válce
- EDB(4,"ked"); // Zkontroluj a zapiš stav EDB
- BrzdicBP(A0,"bbp"); // Zkontroluj a zapiš stav potenciometru lokomotivní brzdy Dako BP
- BrzdicBSE(0,"bse"); // Zkontroluj a zapiš stav ovladače brzdiče Dako OBE1
- /* Tlačítka na pultu */
- Tlacitko(6,"tbl"); // Tlačítko bdělosti levé
- Tlacitko(0,"tbp"); // Tlačitko bdělosti pravé
- Tlacitko(7,"thk"); // Tlačítko lokomotivní houkačky
- Tlacitko(0,"thv"); // Tlačítko vypínání HV
- Tlacitko(0,"tpa"); // Tlačítko píšťaly
- Tlacitko(0,"tpj"); // Tlačítko pomalé jízdy
- Tlacitko(0,"tro"); // Tlačítko rušení ochran
- Tlacitko(0,"tpi"); // Tlačítko pískování
- Tlacitko(0,"tps"); // Tlačítko "plus"
- Tlacitko(0,"tms"); // Tlačítko "minus"
- /* Klávesnice ARR */
- Tlacitko(0,"taa"); // Tlačítko ARR 0
- Tlacitko(0,"tab"); // Tlačítko ARR 10
- Tlacitko(0,"tac"); // Tlačítko ARR 20
- Tlacitko(0,"tad"); // Tlačítko ARR 30
- Tlacitko(0,"tae"); // Tlačítko ARR 40
- Tlacitko(0,"taf"); // Tlačítko ARR 50
- Tlacitko(0,"tag"); // Tlačítko ARR 60
- Tlacitko(0,"tah"); // Tlačítko ARR 70
- Tlacitko(0,"tai"); // Tlačítko ARR 80
- Tlacitko(0,"taj"); // Tlačítko ARR 90
- Tlacitko(0,"tak"); // Tlačítko ARR 100
- Tlacitko(0,"tal"); // Tlačítko ARR 120
- Tlacitko(0,"tam"); // Tlačítko ARR 140
- Tlacitko(0,"tao"); // Tlačítko ARR "+"
- Tlacitko(0,"tap"); // Tlačítko ARR "-"
- /* Přepínače na pultu */
- PomernyTah(0,"pth"); // Přepínač poměrného tahu
- SpinacVackovy(0,"prj",4,-1); // Přepínač Režimu jízdy (ARR)
- SpinacVackovy(0,"prr",0,0); // Přepínač Režimu řízení
- SpinacVackovy(0,"prz",0,0); // Přepínač Řízení
- SpinacVackovy(0,"pkt",0,0); // Přepínač Kličky topení
- SpinacVackovy(0,"pnj",0,0); // Přepínač Nouzové jízdy
- SpinacVackovy(0,"phv",0,0); // Přepínač Systému
- SpinacVackovy(0,"pvt",0,0); // Přepínač Ventilátorů
- SpinacVackovy(0,"pkb",0,0); // Přepínač Kompresoru č.2
- SpinacVackovy(0,"pka",0,0); // Přepínač Kompresoru č.1
- SpinacVackovy(0,"psb",0,0); // Přepínač Sběračů
- SpinacVackovy(0,"pre",0,0); // Přepínač Reflektorů
- SpinacVackovy(0,"pvv",0,0); // Přepínač Volby vlaku
- /* Přepínače pod pultem */
- SpinacVackovy(0,"pst",0,0); // Přepínač Stěračů
- SpinacVackovy(0,"ppm",0,0); // Přepínač Poruchy motorové skupiny
- SpinacVackovy(0,"pdj",0,0); // Přepínač DJ
- SpinacVackovy(0,"pov",0,0); // Přepínač Odvodnění
- SpinacVackovy(0,"pvk",0,0); // Přepínač Ventilátoru v kabině
- /* Přepínače v horní části pultu */
- SpinacVackovy(0,"pls",0,0); // Přepínač zabezpečovače LS90
- SpinacVackovy(0,"pna",0,0); // Přepínač Počítadlo náprav 0XX
- SpinacVackovy(0,"pnb",0,0); // Přepínač Počítadlo náprav X0X
- SpinacVackovy(0,"pnc",0,0); // Přepínač Počítadlo náprav XX0
- /* Přepínače v zadní části kabiny */
- SpinacVackovy(0,"pbt",0,0); // Přepínač Baterie
- SpinacVackovy(0,"pcz",0,0); // Přepínač Centrálního zdroje
- SpinacVackovy(0,"pop",0,0); // Přepínač Osvětlení podvozků
- /* Přepínače světel */
- SpinacVackovy(0,"szl",0,0); // Přepínač Pozička zadní levá
- SpinacVackovy(0,"szp",0,0); // Přepínač Pozička zadní pravá
- SpinacVackovy(0,"spl",0,0); // Přepínač Pozička přední levá
- SpinacVackovy(0,"spp",0,0); // Přepínač Pozička přední pravá
- SpinacVackovy(0,"spr",0,0); // Přepínač Osvětlení přístrojů
- SpinacVackovy(0,"ska",0,0); // Přepínač Osvětlení kabiny
- /* Diagnostika */
- Diagnostika(0,"dca"); // Přepínač diagnostika Čerpadloo č.1
- Diagnostika(0,"dcb"); // Přepínač diagnostika Čerpadloo č.2
- Diagnostika(0,"dpp"); // Přepínač diagnostika Polovodič. prvek
- Diagnostika(0,"dbr"); // Přepínač diagnostika Bucholzovo relé
- Diagnostika(0,"dot"); // Přepínač diagnostika Olej TR
- Diagnostika(0,"dso"); // Přepínač diagnostika Skříň ochran
- Diagnostika(0,"dva"); // Přepínač diagnostika Ventilace č.1
- Diagnostika(0,"dvb"); // Přepínač diagnostika Ventilace č.2
- Diagnostika(0,"dsk"); // Přepínač diagnostika Skluz
- Diagnostika(0,"dcz"); // Přepínač diagnostika Centrální zdroj
- Diagnostika(0,"dkm"); // Přepínač diagnostika Kompresory
- Diagnostika(0,"dna"); // Přepínač diagnostika Nabíjení
- // int cas2 = micros();
- // int cas = cas2-cas1;
- // Serial.println(cas);
- }
- //══════════════════════════════════════════════════════════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement