Advertisement
Al_Ninyo

data

Jan 9th, 2015
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.88 KB | None | 0 0
  1. // Пин подключен к ST_CP входу 74HC595
  2. const int latchPin = 8;
  3. // Пин подключен к SH_CP входу 74HC595
  4. const int clockPin = 12;
  5. // Пин подключен к DS входу 74HC595
  6. const int dataPin = 11;
  7.  
  8. // указываем пины, к которым подключены слои
  9. int LayerPin[] = {4,5,6,7};
  10.  
  11. void setup() {
  12.   Serial.begin(9600);
  13.   // устанавливаем режим OUTPUT
  14.   pinMode(latchPin, OUTPUT);
  15.   pinMode(dataPin, OUTPUT);
  16.   pinMode(clockPin, OUTPUT);
  17.  
  18.   // гасим все слои на всякий случай
  19.   for(int layer = 0; layer < 4; layer++){
  20.     pinMode(LayerPin[layer], OUTPUT);
  21.     digitalWrite(LayerPin[layer], LOW);
  22.   }
  23. }
  24.  
  25. // функция передачи данных в сдвиговый регистр для зажигания светодиодов
  26. void doMagicWithRegisters(int whatToPush) {
  27.   digitalWrite(latchPin, LOW);
  28.  
  29.   shiftOut(dataPin, clockPin, MSBFIRST, (whatToPush>> 8));
  30.   shiftOut(dataPin, clockPin, MSBFIRST, whatToPush);
  31.  
  32.   // "защелкиваем" регистр, чтобы биты появились на выходах регистра
  33.   digitalWrite(latchPin, HIGH);
  34. }
  35.  
  36. // функция для выключения всех слоёв
  37. void LayersOff() {
  38.   for(int layer = 0; layer < 4; layer++){
  39.     digitalWrite(LayerPin[layer], LOW);
  40.   }
  41. }
  42.  
  43. // функция для включения всех слоёв
  44. void LayersOn() {
  45.   for(int layer = 0; layer < 4; layer++){
  46.     digitalWrite(LayerPin[layer], HIGH);
  47.   }
  48. }
  49.  
  50. void loop() {
  51.   // зажигаем слои
  52. LayersOn();
  53.  
  54.   unsigned int DATA1 = 32769;
  55.   unsigned int DATA2 = 36873;
  56.  
  57.   doMagicWithRegisters(DATA1);
  58.   doMagicWithRegisters(DATA2);
  59.  
  60.   delay(1000);
  61.  
  62.   DATA1 = 0;
  63.   DATA2 = 0;
  64.  
  65.   doMagicWithRegisters(DATA1);
  66.   doMagicWithRegisters(DATA2);
  67.  
  68.   delay(1000);
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement