У ARDUINO у нас є 20 висновків вводу-виводу, тому ми можемо запрограмувати 20 висновків UNO, які будуть використовуватися як вхідні, так і вихідні. Незважаючи на те, що на контролері ATMEGA328P є більше контактів, ніж на UNO, це тому, що під час проектування плати деякі висновки є за замовчуванням.
Тепер для деяких додатків нам потрібно більше 30 висновків, скажімо, якщо ми хочемо розробити світлодіодний куб 5x5x5, тож для цього нам потрібні 5x5 + 5 = 30pins. У таких випадках ми використовуємо послідовні чи паралельні мікросхеми перетворювача або регістр зсуву. Мікросхема регістру зсуву послідовно приймає дані з плати UNO і дає вихід у 8-бітовій паралельній конфігурації.
Потрібні компоненти
Апаратне забезпечення: плата Arduino uno, з'єднувальні штирі, резистор 220 Ом, світлодіод (вісім штук), IC 74HC595, плата для хліба.
Програмне забезпечення: Arduino щоночі
Принципова схема та робоче пояснення
Тут ми збираємося надсилати дані у восьмирозрядний розмір через один канал для зсуву регістру. Регістр зсуву приймає дані послідовно і зберігає ці дані у своїй пам'яті. Як тільки дані будуть надіслані контролером, ми надішлемо команду на регістр зсуву, щоб показати дані на виході, за допомогою цієї команди регістр зсуву виводить дані паралельно.
Цей вихід відображається вісьмома світлодіодами, підключеними на виході.
Для підключення регістру зсуву до Arduino UNO нам потрібно зробити дві речі:
|
Спочатку нам потрібно встановити будь-які три штифти UNO як вихід. Потім нам потрібно підключити цифровий штифт, годинниковий штифт та штифт засувки до цих трьох вихідних штифтів. Після цього нам потрібно сказати UNO, який штифт мікросхеми підключений до штифтів плати UNO. Це робиться простим написанням команди “
shiftOut(dataPin, clockPin, data);
”. Дані тут можуть бути в двійковому або десятковому чи шістнадцятковому форматі. Вісімцифрова інформація, яку потрібно надіслати, записується замість "даних".
Відправлені дані виконуються як:
Вимкніть фіксатор, це повідомляє мікросхемі, що наразі не відображатиме вихід.
Вісім разів ми будемо надсилати дані з годинником послідовно, так що годинник високий низький, годинник низький та ін.
Увімкніть засувку, це повідомляє мікросхемі відображати вісім бітових даних.
Робота ARDUINO з SHIFT REGISTER пояснюється поетапно в коді С, наведеному нижче: