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
- for (int i = 4; i < CELKEM_VSTUPU; i++) {
- if (tlacitko[i] >> ZakladniVstupy[i]) {
- pozmeneno[i] = 1;
- }
- tlacitkoOLD[i] = tlacitko[i];
- }
- 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
- Tlacitko(6,"tbl"); // Tlačítko bdělosti levé
- Tlacitko(7,"thk"); // Tlačítko lokomotivní houkačky
- SpinacVackovy(3,"prj",4,-1); // Přepínač Režimu jízdy (ARR)
- PomernyTah(0,"pth"); // Přepínač poměrného tahu
- // int cas2 = micros();
- // int cas = cas2-cas1;
- // Serial.println(cas);
- }
- //══════════════════════════════════════════════════════════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment