Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Пин подключен к ST_CP входу 74HC595
- const int latchPin = 8;
- // Пин подключен к SH_CP входу 74HC595
- const int clockPin = 12;
- // Пин подключен к DS входу 74HC595
- const int dataPin = 11;
- // указываем пины, к которым подключены слои
- int LayerPin[] = {4,5,6,7};
- void setup() {
- Serial.begin(9600);
- // устанавливаем режим OUTPUT
- 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();
- unsigned int DATA1 = 32769;
- unsigned int DATA2 = 36873;
- doMagicWithRegisters(DATA1);
- doMagicWithRegisters(DATA2);
- delay(1000);
- DATA1 = 0;
- DATA2 = 0;
- doMagicWithRegisters(DATA1);
- doMagicWithRegisters(DATA2);
- delay(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement