Реклама
Данас ћу покушати да вас научим мало о Схифт регистрима. Ово су прилично важан део Ардуино програмирања, у основи јер проширују број излаза које можете користити, у замену за само 3 контролна игле. Такође можете заједно да региструјете ланац деванских ланаца да бисте добили још више резултата.
Ово је значајан скок потешкоће у односу на претходне туторијале, а топло вам предлажем да имате стварно добро разумевање претходног материјала (линкови на крају овог чланка), као и разумевање тхе тхе основе бинарног стања Шта је бинарно? [Објашњена технологија]С обзиром на то да је бинарни систем тако апсолутно важан за постојање рачунара, чини се чудним да се никада раније нисмо бавили том темом - па бих данас мислио да ћу дати кратак преглед шта је бинарни ... Опширније о чему сам писао прошли пут.
Шта је регистар смене?
Регистар помака у излазу, технички гледано, прима податке серијски и шаље их паралелно. У практичном смислу, то значи да можемо брзо послати гомилу излазних команди на чип, рећи му да се активира, а излази ће бити послати одговарајућим иглицама. Уместо понављања кроз сваки пин, једноставно шаљемо потребан излаз свим пиновима одједном, као један бајт или више информација.
Ако вам помаже да схватите, регистар смена можете да замислите као 'низ' дигиталних излаза, али можемо прескочити уобичајене команде дигиталВрите и једноставно послати низ битова да бисмо их укључили или ван.
Како то функционише?
Регистар смена који ћемо користити - 74ХЦ595Н укључен у Оомлоут стартер сет - треба само 3 контролна игле. Први је сат - не треба се превише бринути због тога као што контролирају серијске библиотеке Ардуино То - али сат је у основи само електрични импулс који укључује / искључује тај темпо за сигнал података.
Клин за засун се користи за означавање регистра померања када треба да укључи и искључи своје излазе према битовима које смо му управо послали - тј. Да их закачи на своје место.
Коначно, дата пин је тамо где смо послали стварне серијске податке са битовима како бисмо одредили стање укључености / искључености излаза регистара померања.
Цео процес се може описати у 4 корака:
- Подесите пин за податке на високо или ниско за први излазни пин у регистар смена.
- Стисните сат да бисте "пребацили" податке у регистар.
- Наставите с подешавањем података и пулсирањем сата све док не поставите тражено стање за све излазне игле.
- Стисните резу да бисте активирали излазну секвенцу.
Имплементација
За овај пројекат су вам потребне следеће компоненте:
- 7ХЦ595Н чип регистра регистра смене
- 8 ЛЕД-ова и одговарајући отпорници или шта год желите да излазите
- Уобичајена плоча, конектори и основни Ардуино
Ако имате Оомлоут стартер кит, можете преузети распоред плоче одавде.
Ево видео записа о монтажи:
Изглед плоче:
И моја састављена верзија:
Изменио / ла сам оригинални код који је пружио Ооолмоут, али ако то желите испробати, овде га можете у потпуности преузети. Објашњење кода је укључено, па копирајте и залепите читаву ствар одоздо или пастебин да бисте прочитали објашњење кода.
/ * * | Водич за регистрацију смена, заснован на | * | Ардуино експериментални комплет ЦИРЦ-05 | * |.: 8 Још ЛЕД:. (74ХЦ595 Схифт Регистер) | * * | Изменио Јамес @ МакеУсеОф.цом | * * / // Пин Дефинитионс. // 7ХЦ595Н има три игле. инт података = 2; // где шаљемо битове за контролу излаза инт цлоцк = 3; // чува податке у синхронизацији. инт квака = 4; // говори регистар смена када да активира излазну секвенцу воид сетуп () {// подесите три контролна пина за излаз пинМоде (подаци, ОУТПУТ); пинМоде (сат, ИЗЛАЗ); пинМоде (засун, ОУТПУТ); Сериал.бегин (9600); // тако да можемо слати исправке порука на серијски монитор. } воид петља () {оутпутБитес (); // наш основни излаз који пише 8-битне да би показао како функционише регистар промене. //outputIntegers(); // шаље целокупну вредност као податке уместо бајтова, ефективно рачунајући у бинарним форматима. } воид оутпутИнтегерс () {фор (инт и = 0; и <256; и ++) {дигиталВрите (засун, ЛОВ); Сериал.принтлн (и); // Дебуг, слање излаза на серијски монитор схифтОут (подаци, сат, МСБФИРСТ, и); дигиталВрите (засун, ХИГХ); кашњење (100); }} воид оутпутБитес () {/ * бајтови, или 8-битни, представљени су с Б, а затим 8 0 или 1с. У овом случају, сматрајте да је то низ који ћемо користити за контролу 8 ЛЕД-ова. Овде сам започео вредност бајта као 00000001 * / бите датаВалуес = Б00000001; // промените ово да бисте подесили почетни образац / * У петљи фор фор, започињемо повлачењем засуна ниско, користећи схифтОут Ардуино функцију за разговарајте са регистаром смене, шаљући нам овај бајт податакаВриједности које представљају стање ЛЕД-ова, а затим повуците резу високо да их закључате место. На крају, битове преместимо на једно место улево, што значи да ће се наредна итерација упалити на следећем ЛЕД-у у низу. Да бисте видели тачну бинарну вредност која се шаље, проверите серијски монитор. * / фор (инт и = 0; и <8; и ++) {дигиталВрите (засун, ЛОВ); Сериал.принтлн (датаВалуес, БИН); // Отклањање погрешака, слање излаза на серијски монитор схифтОут (подаци, сат, МСБФИРСТ, датаВалуес); дигиталВрите (засун, ХИГХ); датаВалуес = датаВалуес << 1; // Помакните битове за једно мјесто улево - промените у >> да бисте прилагодили кашњење смера (100); } }
Бит-Схифтинг (ОутпутБитес функција)
У првом примеру петље - оутпутБитес () - код користи 8-битну секвенцу (бајт) коју затим помиче са сваке итерације за пету улијево. Важно је напоменути да ако померате даље него што је могуће, бит ће једноставно изгубљен.
Пребацивање бита врши се помоћу << или >>, а затим слиједи број битова на које желите пребацити.
Погледајте следећи пример и проверите да ли сте разумели шта се дешава:
бајт вал = Б00011010. вал = вал << 3 // Б11010000. вал = вал << 2 // Б01000000, изгубили смо те остале битове! вал = вал >> 5 // Б00000010.
Уместо слања целих бројева (ОутпутИнтегерс функција)
Ако пошаљете цео број у регистар смена уместо бајта, он ће једноставно претворити број у бинарни слијед бајтова. У овој функцији (коментирање у петљи и учитавање да бисте видели ефекат) имамо петљу која броји 0-255 (највећи цијели број који можемо представити једним бајтом) и шаље умјесто тога. У основи се рачуна у бинарном облику, тако да се низ може чинити мало случајним, осим ако се ЛЕД-ови не поставе у дуги ред.
На примјер, ако прочитате бинарно објашњени чланак, знат ћете да ће број 44 бити представљен као 00101100, па ће ЛЕД 3,5,6 упалити у том тренутку у низу.
Даиси веже више од једне смене
Значајна ствар код Схифт Регистра је да ако им се пружи више од 8-битних информација (или колико је њихов регистар велик), они ће поново пребацити остале додатне битове. То значи да можете повезати низ њих заједно, гурнути у један дугачки ланац битова и поделити их сваком регистру одвојено, а све без додатног кодирања са ваше стране.
Иако овде нећемо детаљно описати поступак или шеме, ако имате више од једног регистра смена, можете испробати пројекат са званичне странице Ардуино овде.
Остали чланци у низу:
- Шта је Ардуино и шта можете учинити са тим? Шта је Ардуино и шта можете учинити са тим?Ардуино је изузетан мали електронички уређај, али ако га никада раније нисте користили, шта су тачно и шта можете да урадите са њим? Опширније ?
- Шта је Ардуино стартер кит и шта садржи? Шта је укључено у Ардуино Стартер Кит? [МакеУсеОф објашњава]Претходно сам овде увео Ардуино хардвер отвореног кода на МакеУсеОф, али требат ће вам више од стварног Ардуино-а да бисте нешто направили од њега и заправо започели. Ардуино "стартер комплети" су ... Опширније
- Још цоол компоненти које можете купити заједно са својим Стартер Китом Још 8 компоненти за ваше Ардуино пројектеДакле, размишљате о набавци Ардуино стартног комплета, али питате се да ли ће неки основни ЛЕД и отпорници бити довољни да вас заузму за викенд? Вероватно не. Ево јос 8 ... Опширније
- Почетак рада с Ардуино стартер китом? Инсталирање управљачких програма и подешавање плоче и прикључка Први кораци са својим Ардуино Стартер Китом - Инсталирање драјвера и постављање плоче и прикључкаПа, купили сте себи Ардуино стартер сет и вероватно неке друге случајне цоол компоненте - шта сад? Како заправо започињете с програмирањем ове Ардуино ствари? Како то подесити ... Опширније
- Фритзинг, бесплатан алат за цртање шема дијаграма Фритзинг - Ултимативни алат за скицирање пројеката електронике [Цросс Платформ]Иако звучи као алкопоп, Фритзинг је заправо невероватан део бесплатног софтвера који можете користити за креирање дијаграми кола и компоненти за употребу са електронским плочама са брзим прототиповањем, попут фантастичног отвореног кода Ардуино ... Опширније
- Пажљивији поглед на структуру Ардуинове апликације и примера програма трептаја Први кораци са Ардуином: ближи поглед на склопну плочу и структуру програмаПрошли пут сам вас оставио да сте подесили свој Ардуино за рад са Мац или Виндовс и послао сам једноставну тестну апликацију која је трептала ЛЕД-ом на возилу. Данас ћу објаснити код ... Опширније
- Пројекат Ардуино Ксмас дрвећа Ардуино пројекат: Како направити блиставе украсе за божићне лампицеОво је следећи део наше Ардуино серије, а овог пута ћемо научити и користити Арраис за прављење малог украса за божићно дрвце са разноврсним бљештавим наставцима. Ово би био ... Опширније (АКА учи о низовима)
- Шта је Бинарни? Шта је бинарно? [Објашњена технологија]С обзиром на то да је бинарни систем тако апсолутно важан за постојање рачунара, чини се чудним да се никада раније нисмо бавили том темом - па бих данас мислио да ћу дати кратак преглед шта је бинарни ... Опширније
То је онолико колико ћемо данас ићи са регистарима смена, јер мислим да смо доста покривали. Као и увек, охрабривао бих вас да се играте и прилагођавате код, и слободно поставите било каква питања у коментарима или чак поделите везу до свог феноменалног пројекта смештеног у регистру смена.
Јамес има диплому о вештачкој интелигенцији и сертификат је ЦомпТИА А + и Нетворк +. Он је водећи програмер МакеУсеОф-а и своје слободно време проводи играјући ВР паинтбалл и таблегамес. Градио је рачунаре још од детета.