kz ru
Каталог

Проект 16: Микросхема 74HC595

Необходимое Оборудование

Плата Arduino UNO * 1
Микросхема 74HC595 * 1
Красный светодиод 5мм * 4
Зеленый светодиод 5мм * 4
Резистор 220 Ом * 8
Макетная плата * 1
Провода -перемычки
USB - кабель * 1

thumb

Описание Выводов :

thumb

thumb

VCC и GND используются для питания микросхемы, рабочее напряжение 5В.
Q0~Q7 : Эти восемь выводов являются выходными.
DS - последовательный входной вывод, мы должны записывать данные в этот вывод по битам.
STCP - вывод защелки. Данные могут быть скопированы в защелку и выведены параллельно после передачи всех 8 - разрядных данных защелки.
SHCP - часовой вывод. Данные могут быть записаны в регистр хранения.
OE - вывод разрешения на вывод, который используется для определения, вводятся ли данные защелки в выводы Q0 - Q7. При низком уровне выходной сигнал высокого уровня не выводится. В этом эксперименте мы напрямую подключаем к GND, чтобы сохранить данные низкого уровня на выходе.
MR - вывод инициализации регистра хранения. Инициализирует внутренний регистр хранения при низком уровне. В этом эксперименте мы подключаем к VCC, чтобы сохранить высокий уровень.
Q7S - последовательный вывод, который специально используется для каскадного соединения микросхем.

Подключение Схемы

Схема может показаться сложной, но как только вы подключите ее по порядку, вы обнаружите, что это проще!

Можете меньше использовать черных проводов если резисторы соединить сразу к GND(-) Брэдборда. 

Пример Кода №1

//////////////////////////////////////////////////////////////////
//74hc595


int dataPin = 2; // устанавливаем контакт 14 74HC595 как контакт ввода данных SI(SD)
int clockPin = 5; // устанавливаем контакт 11 74hc595 как часовой контакт SCK (SH_CP)
int latchPin = 4; // устанавливаем контакт 12 74hc595 как выводной защелки RCK (ST_CP)

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  digitalWrite(latchPin, LOW);
}

void loop() {
  digitalWrite(latchPin, LOW); // начинаем передачу данных
  shiftOut(dataPin, clockPin, LSBFIRST, 0b10000000);
  digitalWrite(latchPin, HIGH); // прекращаем передачу данных
}

//////////////////////////////////////////////////////////////////

Результат Теста №1

После загрузки программы вы можете увидеть, как горит первый светодиод. По 8 - битной двоичной системе можно прописать какие светодиоды хотите включить, например:

0b11111111 - включить все
0b00000000 - выключить все
0b10000001 - включить первую и последнюю
.

 

 

Пример Кода №2

//////////////////////////////////////////////////////////////////

//74hc595-Serial.read()

const int latchPin = 4;
const int clockPin = 5;
const int dataPin = 2;
void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("Write number between 0-7 for turning ON led");
}
void loop() {
  if (Serial.available() > 0) {
    int bitToSet = Serial.read() - 48; //отнимаем 48 потому что по ASCII table 0 начинается с 48, а 9 это 57
    registerWrite(bitToSet, HIGH);
  }
}
void registerWrite(int whichPin, int whichState) {
  byte bitsToSend = 0;
  digitalWrite(latchPin, LOW);
  bitWrite(bitsToSend, whichPin, whichState); //записываем в бит какой led включить
  shiftOut(dataPin, clockPin, MSBFIRST, bitsToSend); //отправляем бит начиная слева
  digitalWrite(latchPin, HIGH);
}

//////////////////////////////////////////////////////////////////

Результат Теста №2

После загрузки программы откройте Монитор порта и введите число от 0-7 и вы увидите что светодиод под этим номером будет гореть 

Аргумент MSBFIRST (Most Significant Bit First) — слева или LSBFIRST (Least Significant Bit First) — справа указать начало светодиодов

Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
Нет в наличии
Предзаказ
арт.
74HC595N – восьмиразрядный сдвиговый регистр с последовательным вводом, последовательным или...
100 тг
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином