Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int dataPin = A1;
- int clockPin = A2;
- int latchPin = A3;
- // Zpoždění mezi změnami stavu pinu
- #define diagDelayMicros 27
- // Pole se zapisovanými hodnotami
- int diagnostika1[24] = {1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0};
- int diagnostika2[24] = {0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1};
- // Inicializace programu
- void setup() {
- // Nastavení komunikačních pinů jako výstupní
- pinMode(dataPin, OUTPUT);
- pinMode(clockPin, OUTPUT);
- pinMode(latchPin, OUTPUT);
- // Nastavení základního stavu latch pinu na log. 1
- digitalWrite(latchPin,HIGH);
- }
- // Nekonečná smyčka programu
- void loop() {
- // Pro možnost zápisu do posuvných registrů je nutné nastavit latch na log. 0 a navrácení latch pinu na log. 1
- digitalWrite(latchPin,LOW);
- // Zápis pole hodnot na každou jednotku diagnostiky zvlášť
- zapisNaVystupPosuv(diagnostika1, 24);
- zapisNaVystupPosuv(diagnostika2, 24);
- digitalWrite(latchPin,HIGH);
- // Zpoždění před dalším zápisem hodnot
- delay(1000);
- }
- // Funkce pro zápis pole hodnot na posuvné registry
- void zapisNaVystupPosuv(int vstupniPole[], int pocetCisel) {
- for(int i=0; i<pocetCisel; i++){
- digitalWrite(dataPin, vstupniPole[i]);
- delayMicroseconds(diagDelayMicros);
- digitalWrite(clockPin, HIGH);
- delayMicroseconds(diagDelayMicros);
- digitalWrite(clockPin, LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment