В ARDUINO имаме 20 I / O щифта, така че можем да програмираме 20 щифта UNO, които да се използват като вход или изход. Въпреки че на контролера ATMEGA328P има повече щифтове, отколкото на UNO, това е така, защото при проектирането на платката някои щифтове са по подразбиране.
Сега за някои приложения ни трябват повече от 30 пина, да кажем, ако искаме да проектираме 5x5x5 LED CUBE, така че за това ни трябват 5x5 + 5 = 30 пина. За такива случаи използваме чипове от сериен към паралелен преобразувател или регистър за смяна. Чип на регистър за смяна взема данни от борда на UNO последователно и дава изход в 8-битова паралелна конфигурация.
Необходими компоненти
Хардуер: Arduino uno платка, свързващи щифтове, 220Ω резистор, LED (осем парчета), 74HC595 IC, дъска за хляб.
Софтуер: Arduino всяка вечер
Електрическа схема и работно обяснение
Тук ще изпратим данни в размер на осем бита през един канал, за да сменим регистъра. Регистърът за смяна взема данните последователно и ги съхранява в паметта си. След като данните бъдат изпратени от контролера, ние ще изпратим команда за смяна на регистър, за да се покажат данните на изхода, с тази команда регистърът за смяна извежда данните паралелно.
Този изход се показва от осем светодиода, свързани на изхода.
За свързване на регистъра за смяна към Arduino UNO трябва да направим две неща:
|
Първо трябва да зададем три извода на UNO като изход. След това трябва да свържем цифров щифт, щифт за часовник и щифт за заключване към тези три изходни щифта. След това трябва да кажем на UNO кой щифт чип е свързан към щифтовете на борда на UNO. Това става чрез просто писане в команда “
shiftOut(dataPin, clockPin, data);
”. Данните тук могат да бъдат в двоични или десетични или шестнадесетични. Осембитовата информация, която трябва да бъде изпратена, се записва вместо „данни“.
Изпратените данни се извършват като:
Деактивирайте ключалката, това казва на чипа да не показва изхода за сега.
В продължение на осем пъти ще изпращаме данни с часовник последователно, така че часовникът с високо ниво на данни с ниско ниво на данни и т.н.
Активиране на ключалката, това казва на чипа да показва осем битови данни.
Работата на ARDUINO с SHIFT REGISTER е обяснена стъпка по стъпка в C кода, даден по-долу: