Advertisement
zdenekpetrzd

Zápis pultu na Serial - Komplet

Feb 3rd, 2018
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 10.41 KB | None | 0 0
  1. /* Kolik posuvných registrů je spojeno? */
  2. #define POCET_SHIFT_REGISTRU   1
  3.                                                                        //                       _______
  4. /* Kolik vstupů má každý shift registr? */                             //     Paralel load ->  |  |_|  | <- VCC
  5. #define POCET_VSTUPU   POCET_SHIFT_REGISTRU * 8                        //            Clock ->  |   7   | <- Clock enable
  6.                                                                        //         switch 4 ->  |   4   | <- switch 5
  7. /* Kolik microsekund má trvat puls pro zachycení stavů tlačítek? */    //         switch 3 ->  |   HC  | <- switch 6
  8. #define DELKA_PULSU_USEC   1                                           //         switch 2 ->  |   6   | <- switch 7
  9.                                                                        //         switch 1 ->  |   5   | <- switch 8
  10. /* Celkový pošer tlačítek připojených k Arduino */                     //          Nothing ->  |   1   | <- From next
  11. #define CELKEM_VSTUPU 8                                                //           GROUND ->  |_______| <- Q7 (To next)
  12.  
  13. //═══════════════════════════════════════════════════════════════════════════════════════════//
  14. int ploadPin        = 8;  // Připojení k Parallel load pinu posuvného registru (1)
  15. int clockEnablePin  = 9;  // Připojení k Clock Enable pinu posuvného registru (15)
  16. int dataPin         = 11; // Připojení k Q7 pinu posuvného registru (9)
  17. int clockPin        = 12; // Připojení k Clock pinu posuvného registru (2)
  18.  
  19. int pozmeneno[POCET_VSTUPU] = {};
  20. int tlacitkoOLD[POCET_VSTUPU] = {};
  21. int tlacitko[POCET_VSTUPU] = {};
  22. 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,
  23.                         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,
  24.                         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,
  25.                         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,
  26.                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  27.                         };
  28.  
  29.  
  30. /* Knifovny a proměnné potřebné pro knihovnu zpoždění */
  31. #include <Arduino.h>                //Přibal knihovnu Arduina
  32. #include "avdweb_VirtualDelay.h"    //github.com/avandalen/VirtualDelay
  33. VirtualDelay bpDelay;
  34. VirtualDelay twoDelay;
  35.  
  36. //═══════════════════════════════════════════════════════════════════════════════════════════//
  37. void setup() {
  38.   Serial.begin(115200);                  //Začni sériovou komunikaci ve zvolené rychlosti
  39. //  SerialUSB.begin(115200);              //Začni sériovou komunikaci pro port USB
  40.  
  41.   pinMode(ploadPin, OUTPUT);             //Nahrávací (shiftregister 1 na 8 pin Arduina)
  42.   pinMode(clockEnablePin, OUTPUT);       //Sepnutí časovače (shiftregister 15 na 9 pin Arduina)
  43.   pinMode(clockPin, OUTPUT);             //Časovač (shiftregister 2 to na 12 pin Arduina)
  44.   pinMode(dataPin, INPUT);               //Data z 74HC165 (shiftregister 9 to 11 pin Arduina)
  45.  
  46.   pinMode(A0,INPUT);
  47.  
  48.   digitalWrite(clockPin, LOW);           //Ujisti se, že clock pin je LOW
  49.   digitalWrite(ploadPin, HIGH);          //Nastav nahrávací pin na HIGH
  50.  
  51.   bpDelay.start(100);
  52. }
  53. //══════════════════════════════════════════════════════════════════════════════════════════//
  54. void loop() {
  55. //  int cas1 = micros();
  56.   kontrolaZmen();                          // Zkontroluj, zda na nějakém tlačítku nedošlo ke změně
  57.   Kontroler(0, "ktl");                     // Zkontroluj a zapiš lokomotivní kontrolér
  58.   Smer(10,"ksm");                          // Zkontroluj a zapiš stav směrového válce  
  59.   EDB(4,"ked");                            // Zkontroluj a zapiš stav EDB
  60.   BrzdicBP(A0,"bbp");                      // Zkontroluj a zapiš stav potenciometru lokomotivní brzdy Dako BP
  61.   BrzdicBSE(0,"bse");                      // Zkontroluj a zapiš stav ovladače brzdiče Dako OBE1
  62.   /*                   Tlačítka na pultu                           */
  63.   Tlacitko(6,"tbl");                       // Tlačítko bdělosti levé
  64.   Tlacitko(0,"tbp");                       // Tlačitko bdělosti pravé
  65.   Tlacitko(7,"thk");                       // Tlačítko lokomotivní houkačky
  66.   Tlacitko(0,"thv");                       // Tlačítko vypínání HV
  67.   Tlacitko(0,"tpa");                       // Tlačítko píšťaly
  68.   Tlacitko(0,"tpj");                       // Tlačítko pomalé jízdy
  69.   Tlacitko(0,"tro");                       // Tlačítko rušení ochran
  70.   Tlacitko(0,"tpi");                       // Tlačítko pískování
  71.   Tlacitko(0,"tps");                       // Tlačítko "plus"
  72.   Tlacitko(0,"tms");                       // Tlačítko "minus"
  73.   /*                     Klávesnice ARR                           */
  74.   Tlacitko(0,"taa");                       // Tlačítko ARR 0
  75.   Tlacitko(0,"tab");                       // Tlačítko ARR 10
  76.   Tlacitko(0,"tac");                       // Tlačítko ARR 20
  77.   Tlacitko(0,"tad");                       // Tlačítko ARR 30
  78.   Tlacitko(0,"tae");                       // Tlačítko ARR 40
  79.   Tlacitko(0,"taf");                       // Tlačítko ARR 50
  80.   Tlacitko(0,"tag");                       // Tlačítko ARR 60
  81.   Tlacitko(0,"tah");                       // Tlačítko ARR 70
  82.   Tlacitko(0,"tai");                       // Tlačítko ARR 80
  83.   Tlacitko(0,"taj");                       // Tlačítko ARR 90
  84.   Tlacitko(0,"tak");                       // Tlačítko ARR 100
  85.   Tlacitko(0,"tal");                       // Tlačítko ARR 120
  86.   Tlacitko(0,"tam");                       // Tlačítko ARR 140
  87.   Tlacitko(0,"tao");                       // Tlačítko ARR "+"
  88.   Tlacitko(0,"tap");                       // Tlačítko ARR "-"
  89.   /*                   Přepínače na pultu                           */
  90.   PomernyTah(0,"pth");                     // Přepínač poměrného tahu
  91.   SpinacVackovy(0,"prj",4,-1);             // Přepínač Režimu jízdy (ARR)
  92.   SpinacVackovy(0,"prr",0,0);              // Přepínač Režimu řízení
  93.   SpinacVackovy(0,"prz",0,0);              // Přepínač Řízení
  94.   SpinacVackovy(0,"pkt",0,0);              // Přepínač Kličky topení
  95.   SpinacVackovy(0,"pnj",0,0);              // Přepínač Nouzové jízdy
  96.   SpinacVackovy(0,"phv",0,0);              // Přepínač Systému
  97.   SpinacVackovy(0,"pvt",0,0);              // Přepínač Ventilátorů
  98.   SpinacVackovy(0,"pkb",0,0);              // Přepínač Kompresoru č.2
  99.   SpinacVackovy(0,"pka",0,0);              // Přepínač Kompresoru č.1
  100.   SpinacVackovy(0,"psb",0,0);              // Přepínač Sběračů
  101.   SpinacVackovy(0,"pre",0,0);              // Přepínač Reflektorů
  102.   SpinacVackovy(0,"pvv",0,0);              // Přepínač Volby vlaku
  103.  /*                 Přepínače pod pultem                            */  
  104.   SpinacVackovy(0,"pst",0,0);              // Přepínač Stěračů
  105.   SpinacVackovy(0,"ppm",0,0);              // Přepínač Poruchy motorové skupiny
  106.   SpinacVackovy(0,"pdj",0,0);              // Přepínač DJ
  107.   SpinacVackovy(0,"pov",0,0);              // Přepínač Odvodnění
  108.   SpinacVackovy(0,"pvk",0,0);              // Přepínač Ventilátoru v kabině
  109.  /*              Přepínače v horní části pultu                      */  
  110.   SpinacVackovy(0,"pls",0,0);              // Přepínač zabezpečovače LS90
  111.   SpinacVackovy(0,"pna",0,0);              // Přepínač Počítadlo náprav 0XX
  112.   SpinacVackovy(0,"pnb",0,0);              // Přepínač Počítadlo náprav X0X
  113.   SpinacVackovy(0,"pnc",0,0);              // Přepínač Počítadlo náprav XX0
  114. /*               Přepínače v zadní části kabiny                     */  
  115.   SpinacVackovy(0,"pbt",0,0);              // Přepínač Baterie
  116.   SpinacVackovy(0,"pcz",0,0);              // Přepínač Centrálního zdroje
  117.   SpinacVackovy(0,"pop",0,0);              // Přepínač Osvětlení podvozků
  118. /*                         Přepínače světel                         */  
  119.   SpinacVackovy(0,"szl",0,0);              // Přepínač Pozička zadní levá
  120.   SpinacVackovy(0,"szp",0,0);              // Přepínač Pozička zadní pravá
  121.   SpinacVackovy(0,"spl",0,0);              // Přepínač Pozička přední levá
  122.   SpinacVackovy(0,"spp",0,0);              // Přepínač Pozička přední pravá
  123.   SpinacVackovy(0,"spr",0,0);              // Přepínač Osvětlení přístrojů
  124.   SpinacVackovy(0,"ska",0,0);              // Přepínač Osvětlení kabiny
  125. /*                             Diagnostika                          */  
  126.   Diagnostika(0,"dca");                    // Přepínač diagnostika Čerpadloo č.1
  127.   Diagnostika(0,"dcb");                    // Přepínač diagnostika Čerpadloo č.2
  128.   Diagnostika(0,"dpp");                    // Přepínač diagnostika Polovodič. prvek
  129.   Diagnostika(0,"dbr");                    // Přepínač diagnostika Bucholzovo relé
  130.   Diagnostika(0,"dot");                    // Přepínač diagnostika Olej TR
  131.   Diagnostika(0,"dso");                    // Přepínač diagnostika Skříň ochran
  132.   Diagnostika(0,"dva");                    // Přepínač diagnostika Ventilace č.1
  133.   Diagnostika(0,"dvb");                    // Přepínač diagnostika Ventilace č.2
  134.   Diagnostika(0,"dsk");                    // Přepínač diagnostika Skluz
  135.   Diagnostika(0,"dcz");                    // Přepínač diagnostika Centrální zdroj
  136.   Diagnostika(0,"dkm");                    // Přepínač diagnostika Kompresory
  137.   Diagnostika(0,"dna");                    // Přepínač diagnostika Nabíjení
  138.  
  139. //  int cas2 = micros();
  140. //  int cas = cas2-cas1;
  141. //  Serial.println(cas);
  142. }
  143. //══════════════════════════════════════════════════════════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement