Мазмуну:
- 1 -кадам: талаптар жана тетиктердин тизмеси
- 2 -кадам: Дисплей
- 3 -кадам: Arduino Mega'ни кошуу:
- 4 -кадам: Arduino UNO менен туташуу:
- 5 -кадам: Бул кантип иштейт
- 6 -кадам: Баары бүттү
Video: NRF24L01 жана 4 цифралуу 7 сегменттин дисплейи бар Arduino Wireless Combination Lock: 6 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:43
Бул долбоор өз өмүрүн 4 орундуу 7 сегменттүү дисплей менен бир нерсе кылуу үчүн көнүгүү катары баштады.
Мен ойлоп тапканым 4 цифралуу комбинация номерин киргизүү жөндөмү болчу, бирок ал бүткөндөн кийин абдан кызыксыз болуп калды. Мен аны Arduino UNOнун жардамы менен кургам. Бул иштеди, бирок башка эч нерсе кылган жок.
Андан кийин менде тандалган номерди кабыл алуу баскычы болушу керек деген ой пайда болду, балким, айкалышты өзгөртүү үчүн дагы бир баскыч, балким, каалаган убакта болгон абалын көрсөтүү үчүн LED. Бул план сыяктуу сезилгени менен, бул менин БУУдагы казыгым түгөнөрүн билдирет. Бул бирдикти мультиплекстөөнүн бир жолу болушу мүмкүн, бирок мен эмнеден баштаарымды билбейм, ошондуктан мен Arduino Megaга жеттим.
Эми мен чоңураак тактаны колдонуп, ойногонго көбүрөөк казыктарым болгондо, мен дагы Wi-Fi мүмкүнчүлүктөрүн кошууну чечтим, ал кандайдыр бир которууну башкара турган башка Arduino менен байланышуу үчүн.
1 -кадам: талаптар жана тетиктердин тизмеси
Мунун баары жөнүндө ойлонгондон кийин, менде азыр талаптардын тизмеси бар:
- 4 цифралуу айкалышты киргизе алуу үчүн.
- Демейки катуу коддуу комбинациядан баштоо үчүн.
- Айкалышты өзгөртүү жана жаңы комбинацияны Arduino EEPROMдо сактоо үчүн.
- Кулпунун статусун кулпуланган үчүн кызыл жана ачык үчүн жашыл LED менен көрсөтүңүз.
- Айкалышы көк LED менен өзгөртүлгөндө статусун көрсөтүңүз.
- Штаттын кулпусу ачылганда, бир аз убакытка туруп, анан кулпуланган абалына кайтыңыз.
- Кулпуланган/кулпуланбаган абалды башка Arduinoго өткөрүп бериңиз.
- Ошол эле абалды кабыл алуучу Arduinoдо кызыл жана жашыл диоддор менен көрсөтүңүз.
- Көрсөтүү максатында, алынган абалга негизделген кулпу механизми катары иштөө үчүн сервону колдонуңуз.
Талаптардан мен азыр бөлүктөрдүн тизмесин түзө алам:
Бергич:
- Arduino Mega.
- Breadboard.
- 4 орундуу 7 сегменттүү дисплей.
- 2 X учурдагы которгучтар, капкактары бар.
- 1 X RGB LED.
- 9 X 220 Ом резисторлор. Дисплей үчүн 8 жана RGB LED үчүн 1.
- 2 X 10 кох резисторлор. 2 баскыч үчүн резисторлорду түшүрүү. (Мен чындыгында 9.1 кохм колдондум, анткени менде болгон нерсе)
- 1 X 10к потенциометр.
- 1 X NRF24L01
- [милдеттүү эмес] NRF24L01 үчүн 1 X YL-105 үзүлүү тактасы. Бул 5V туташуусун жана зымдарды оңой өткөрүүгө мүмкүндүк берет. Өткөргүч зымдар
Алуучу:
- Arduino UNO.
- Breadboard.
- 1 X RGB LED.
- 1 X 220 Ом резистор. LED үчүн.
- 1 X servo. Мен SG90ду демонстрация максатында гана колдондум.
- 1 X NRF24L01
- кошумча] NRF24L01 үчүн 1 X YL-105 үзүлүү тактасы. Бул 5V туташуусун жана зымдарды оңой өткөрүүгө мүмкүндүк берет.
- Өткөргүч зымдар
2 -кадам: Дисплей
Мен 4 орундуу 7 сегменттүү дисплейди колдондум
SMA420564 жана SM420562K менен сыналган (казыктары бирдей)
1 жана 12 -казыктар белгиленген.
12ден 11ге, 10, 9, 8, 7 1, 2, 3, 4, 5, 6
12, 9, 8, 6 -пиндер солдон оңго карай 1ден 4кө чейинки цифраны күйгүзүп же өчүрөт
3 -кадам: Arduino Mega'ни кошуу:
Arduino пин түзүмүнө көрсөтүү
- 1 үчүн 6 Ом 220 Ом резистору аркылуу (E)
- 2 үчүн 5 Ом 220 Ом резистору аркылуу (D)
- Бул жерде колдонулбаган 220ohm резистору (DP) аркылуу 9ду кадап коюңуз
- 4 үчүн 4 Ом 220 Ом резистору аркылуу (C)
- 5 үчүн 8 Ом 220 Ом резистору аркылуу (G)
- 6дан 33кө чейин (4 -цифра)
- 7 үчүн 3 Ом 220 Ом резистору аркылуу (B)
- 8ден 32ге чейин (3 -цифра)
- 9дан 31ге чейин (2 -цифра)
- 10 үчүн 7 кнопкасына 220 ом каршылык (F) аркылуу
- 11 2 кнопкасына 220 ом каршылык (A) аркылуу
- 12ден 30 га чейин (1 -цифра)
Көрсөтүлгөн цифранын санын өзгөртүү үчүн 10 кох потенциометр
- Тышкы пин 5v
- A0 үчүн борбордук пин
- Башка тышкы пин GNDге
Санды кабыл алуу баскычы
- 36га бекитүү үчүн.
- Жана GNDге 10kohm түшүрүлүүчү каршылыгы аркылуу 36
Комбинацияланган сан баскычын өзгөртүү
- 37ге бекитүү үчүн.
- Жана 37 кнопкасын GND үчүн 10kohm түшүүчү каршылыгы аркылуу
RGB LED (Жалпы катод)
- 220 ohm резистору аркылуу GNDге катод
- Кызыл 40ка чейин
- Жашыл 41 пинге
- 42 -пин үчүн көк
NRF24L01 үзүлүү тактасы менен:
- MISO 50 пинге (атайын пин аркылуу милдеттүү)
- MOSI 51 -пинге (атайын пин аркылуу милдеттүү)
- SCK 52 -пинге (арналган пин аркылуу милдеттүү)
- CE 44кө чейин (кошумча пин номери, бирок эскизде аныкталган)
- CSN 45 пин үчүн (Кошумча пин номери, бирок эскизде аныкталган)
- Vcc Arduino 5v (же 3.3v сынык тактасын колдонбосо)
- GNDден Arduino GNDге
4 -кадам: Arduino UNO менен туташуу:
RGB LED (Жалпы катод)
- 220 ohm резистору аркылуу GNDге катод
- Кызылдан 2ге жашылдан 3кө чейин
- Көк (бул жерде колдонулган эмес)
Серво:
- Red Arduino 5v же колдонулса өзүнчө камсыздоо
- Браун Arduino GNDге жана колдонулса өзүнчө жабдуу
- Апельсин 6 -пинге
NRF24L01 үзүлүү тактасы менен:
MISO 12 -пинге (атайын пин аркылуу милдеттүү)
MOSI 11 -пинге (атайын пин аркылуу милдеттүү)
SCK 13 -пинге (атайын пин аркылуу милдеттүү)
CE 7 пинге чейин (Кошумча пин номери, бирок эскизде аныкталган)
CSN 8 -ге кадалат (Кошумча пин номери, бирок эскизде аныкталган)
Vcc Arduino 5v (же 3.3v сынык тактасын колдонбосо)
GNDден Arduino GNDге
5 -кадам: Бул кантип иштейт
Экөөнүн тең текчелери бүтүп, тиешелүү эскиз аларга жүктөлгөндөн кийин, биз азыр аны сынап көрө алабыз.
Эки тактаны тең күйгүзүү менен.
Кызыл LEDлар эки тактада тең көрсөтүлүшү керек.
Дисплей биринчи цифрада бир санды көрсөтөт. Бул сан потенциометр кайсы жерде орнотулганына жараша болот.
Каалаган санды алуу үчүн потенциометрди буруңуз.
Номер табылгандан кийин, кабыл алуу баскычын басыңыз. Менин учурда бул потенциометрдин сол жагында.
Башка үч сан үчүн да ушундай кылыңыз.
Эгерде киргизилген комбинация туура болсо, анда OPEn деген сөз көрсөтүлөт, жашыл LED эки тактада тең күйөт жана серво 180 градуска бурулат.
Дисплей бош калат жана жашыл LED болжол менен 5 секундга чейин жарык бойдон калат.
Кулпуну ачуу убактысы бүткөндөн кийин, эки светодиод тең кызыл түскө ээ болот жана серво 180 градуска артка бурулат.
Эгерде киргизилген комбинация туура эмес болсо, анда OOPS сөзү көрсөтүлөт жана кызыл диоддор күйүп турат.
1 1 1 1 эскизинде катуу коддуу демейки комбинация бар.
Айкалышты өзгөртүү үчүн, адегенде туура айкалышты киргизүү керек.
OPEn деген сөз жок болгондон кийин, башка баскычты басууга 5 секунддай убактыңыз бар.
Сиз өзгөртүү айкалышынын ырааттуулугун киргизгенден кийин, башкы тактанын диоду көк түскө ээ болот, экинчиси жашыл бойдон калат жана ачык болот.
Мурдагыдай эле жаңы айкалышты киргизиңиз.
Жаңы айкалыш кабыл алынгандан кийин (акыркы баскычты басканда) ал EEPROMда сакталат.
Эми эки Arduino тең кулпуланган режимге өтүшөт.
Жаңы комбинацияңызды киргизиңиз, ал кулпуну күтүлгөндөй ачат.
Комбинация өзгөртүлүп, EEPROMда сакталгандан кийин, 1 1 1 1 катуу коддолгон демейки маани берилбейт.
6 -кадам: Баары бүттү
Мен муну базалык NRF24L01дин жардамы менен курдум, аны абада орнотуп, бир дубал аркылуу болжол менен 15 фут жакшы байланышты башкардым.
Arduino Mega нан тактасы бир аз зым менен алек болуп калгандыктан, кээ бир жерлерде түз секиргичтерди колдондум. Бул, бир нан тактасында көп нерсе бар экендиги менен, сүрөттөрдү ээрчүүнү кыйындатат.
Бирок, мен пин үчүн бардык нерсени түшүндүрдүм деп ойлойм жана сиз башталгыч болсоңуз дагы, сиз бул кичинекей долбоорду бир эле учурда бир зым же төөнөгүч алуу менен кура алышыңыз керек.
Окуу оңой болушу үчүн эки эскиз толугу менен комментарийленген жана бул жерден жүктөп алуу үчүн жеткиликтүү.
Arduino Megaнын эскизи абдан чоң, болжол менен 400 саптан турат, бирок башкарылуучу бөлүктөргө бөлүнгөн, ошондуктан оңой эле аткарылышы керек.
Сунушталууда:
4 цифралык 7 сегменттин дисплейи 14 казык Arduino менен: 3 кадам
4 цифралык 7 сегменттин дисплейи 14 казык Arduino менен: Түзмөктүн туура иштээрин же иштебей турганын текшерүү ар дайым жакшы идея, эгерде бул компонентте төөнөгүчтөр көп болсо. Бул долбоордо мен 4 орундуу 7 сегменттүү 14 пин дисплейимди сынап көрдүм. Бардык 7 сегмент бир убакта 0дөн 9га чейин көрсөтөт
Shift реестри менен 7 сегменттин дисплейи: 3 кадам
Shift реестри менен 7 сегменттин дисплей эсептегичи: Бул, эгерде сиз жөн гана нөөмөт реестрин колдонууну жана анын код менен иштешин үйрөнүп жатсаңыз, бул эң башталгыч долбоор. Андан тышкары, эгер сиз 7 сегменттүү дисплейде жаңы болсоңуз, бул долбоор эң сонун башталыш. Бул долбоорду баштоодон мурун, п
4 цифралуу жана 7 сегменттик дисплейди колдонуу, Arduino менен: 7 кадам
4 цифралуу жана 7 сегменттик дисплейди колдонуу, Arduino менен: Бул үйрөткүчтө мен сизге ардуинону колдонуп 4 цифралуу 7 сегменттүү дисплейди кантип колдонууну көрсөтөм. Мен белгилегим келген кээ бир негизги нерселер бул ардуино уно, Леонардо, 13 дигасы бар такталардагы дээрлик бардык санарип казыктарды ээлейт
7 сегменттин дисплейи менен 8051 микроконтроллерин колдонуу менен 0дон 99га чейин кантип эсептөө керек: 5 кадам (сүрөттөр менен)
7 сегменттин дисплейи менен 8051 микроконтроллерин колдонуу менен 0дон 99га чейин кантип эсептөө керек: Саламатсыздарбы, бул окуу куралында биз 0дөн 99га чейин эки 7 сегменттүү дисплейди кантип колдонууну айтып беребиз
Жети сегменттин дисплейи бар мотоциклдин тиштүү позициясы: 4 кадам
Мотоциклдин тиштүү позициясы жети сегменттин дисплейи менен: Бул проект бир нече киргизүү кодун чечүүнү камтыйт (бул учурда 7) Жети сегменттин дисплейинде (SSD) сандык баалуулуктар катары көрсөтүү үчүн бинардык коддуу ондук (BCD), диод матрицасы жана а микро чип BCD4511 (же CD4511) деп аталат. Менде