Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Управление 32 светодиодами с Arduino Nano и 4 сдвиговыми регистрами 74HC595 — Руководство для начинающих

Компоненты и материалы

КомпонентКоличествоПримечание
Arduino Nano R31
Сдвиговый регистр 74HC595 (Texas Instruments SN74HC595N)4Последовательно-параллельный, 8 бит
Беспаяльная макетная плата (полноразмерная)1
Светодиоды (любые по желанию)32
Резисторы 100 Ом (под светодиоды)32Зависят от типа светодиодов
Перемычки (много)1 набор

Программное обеспечение

О проекте

Пошаговое руководство для начинающих по управлению 32 светодиодами с помощью четырех каскадно подключенных сдвиговых регистров 74HC595. Рассматриваются базовые принципы работы регистра, последовательное соединение (daisy chain) и использование библиотеки HC595.

Автор столкнулся с проблемой нестабильной работы некоторых регистров (возможно, из-за нехватки питания).

Полезные ссылки

Схема подключения

Светодиоды подключены к выходам Q0-Q7 каждого регистра через резисторы 100 Ом. Регистры соединяются каскадом: выход Q7' (pin 9) предыдущего регистра подключается к входу DS (pin 14) следующего. Общие линии: SH_CP (pin 11) — тактирование, ST_CP (pin 12) — защелка, OE (pin 13) — на GND (всегда включены), MR (pin 10) — на VCC (сброс отключен). Arduino Nano: Data → D2, Clock → D3, Latch → D4.

Код (пример из библиотеки HC595)

#include <HC595.h>

const int chipCount = 4;        // Количество каскадированных 74HC595 (макс. 8)
const int latchPin = 4;         // ST_CP (pin 12)
const int clockPin = 3;         // SH_CP (pin 11)
const int dataPin = 2;          // DS (pin 14)

HC595 ledArray(chipCount, latchPin, clockPin, dataPin);
int delayMs = 30;
int lastPin = ledArray.lastPin();

void setup() {
  ledArray.reset();
}

void loop() {
  // Прямой бег
  for (int i = 0; i <= lastPin; i++) {
    ledArray.setPin(i, ON);
    delay(delayMs);
  }
  // Обратный бег
  for (int i = lastPin; i >= 0; i--) {
    ledArray.setPin(i, OFF);
    delay(delayMs);
  }
  // Переключение в обратном порядке
  for (int i = lastPin; i >= 0; i--) {
    ledArray.setPin(i, TOGGLE);
    delay(delayMs);
  }
  // Переключение в прямом порядке
  for (int i = 0; i <= lastPin; i++) {
    ledArray.setPin(i, TOGGLE);
    delay(delayMs);
  }
}

Библиотека HC595

Автор: J. Bellavance. Доступна на GitHub: https://github.com/j-bellavance/HC595. Библиотека упрощает управление множеством регистров, предоставляя методы setPin(), reset(), lastPin().

Схема (Fritzing)

Схема подключения показана на изображении. Обратите внимание на правильное питание: все регистры и светодиоды лучше запитывать от отдельного источника 5V, если суммарный ток превышает возможности Arduino.

Производственный процесс

  1. Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
  2. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  3. Управление светодиодами через Alexa с помощью Raspberry Pi – простое пошаговое руководство
  4. Строим Iron Man на Arduino: компоненты, сенсоры и пошаговый гайд
  5. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  6. Сборка функционального 3D-печатного манипулятора на Arduino: пошаговое руководство
  7. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  8. NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
  9. Своё рулевое управление (джойстик) для игр на Arduino
  10. FM-радиоприемник на Arduino и модуле TEA5767