zdenekpetrzd

Zápis pultu na Serial

Feb 2nd, 2018
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.30 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.   for (int i = 4; i < CELKEM_VSTUPU; i++) {
  52.     if (tlacitko[i] >> ZakladniVstupy[i]) {
  53.       pozmeneno[i] = 1;
  54.     }
  55.     tlacitkoOLD[i] = tlacitko[i];
  56.   }
  57.   bpDelay.start(100);
  58. }
  59. //══════════════════════════════════════════════════════════════════════════════════════════//
  60. void loop() {
  61. //  int cas1 = micros();
  62.   kontrolaZmen();                          // Zkontroluj, zda na nějakém tlačítku nedošlo ke změně
  63.   Kontroler(0, "ktl");                     // Zkontroluj a zapiš lokomotivní kontrolér
  64.   Smer(10,"ksm");                          // Zkontroluj a zapiš stav směrového válce  
  65.   EDB(4,"ked");                            // Zkontroluj a zapiš stav EDB
  66.   BrzdicBP(A0,"bbp");                      // Zkontroluj a zapiš stav potenciometru lokomotivní brzdy Dako BP
  67.   BrzdicBSE(0,"bse");                      // Zkontroluj a zapiš stav ovladače brzdiče Dako OBE1
  68.   Tlacitko(6,"tbl");                       // Tlačítko bdělosti levé
  69.   Tlacitko(7,"thk");                       // Tlačítko lokomotivní houkačky
  70.   SpinacVackovy(3,"prj",4,-1);             // Přepínač Režimu jízdy (ARR)
  71.   PomernyTah(0,"pth");                     // Přepínač poměrného tahu
  72. //  int cas2 = micros();
  73. //  int cas = cas2-cas1;
  74. //  Serial.println(cas);
  75. }
  76. //══════════════════════════════════════════════════════════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment