Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int latchPin = 8; // Пин подключен к ST_CP входу 74HC595
- const int clockPin = 12; // Пин подключен к SH_CP входу 74HC595
- const int dataPin = 11; // Пин подключен к DS входу 74HC595
- int LayerPin[] = {4,5,6,7}; // указываем пины, к которым подключены слои
- unsigned int DATA = 0;
- int i = 0;
- void setup() {
- pinMode(latchPin, OUTPUT);
- pinMode(dataPin, OUTPUT);
- pinMode(clockPin, OUTPUT);
- // гасим все слои на всякий случай
- for(int layer = 0; layer < 4; layer++){
- pinMode(LayerPin[layer], OUTPUT);
- digitalWrite(LayerPin[layer], LOW);
- }
- }
- // функция передачи данных в сдвиговый регистр для зажигания светодиодов
- void doMagicWithRegisters(int whatToPush) {
- digitalWrite(latchPin, LOW);
- shiftOut(dataPin, clockPin, MSBFIRST, (whatToPush>> 8));
- shiftOut(dataPin, clockPin, MSBFIRST, whatToPush);
- // "защелкиваем" регистр, чтобы биты появились на выходах регистра
- digitalWrite(latchPin, HIGH);
- }
- void LayersOff() { // функция для выключения всех слоёв
- for(int layer = 0; layer < 4; layer++){
- digitalWrite(LayerPin[layer], LOW);
- }
- }
- void LayersOn() { // функция для включения всех слоёв
- for(int layer = 0; layer < 4; layer++){
- digitalWrite(LayerPin[layer], HIGH);
- }
- }
- void loop() {
- // зажигаем слои
- LayersOn();
- for (int n = 0; n < 16; n++) {
- DATA ^= (1 << n);
- doMagicWithRegisters(DATA);
- }
- delay(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement