Мазмұны:
- 1 -қадам: Қажетті заттар
- 2 -қадам: код логикасы және дисплей
- 3 -қадам: Микроконтроллермен дисплей жүргізу
- 4 -қадам: Неліктен мультиплекстеу керек?
- 5 -қадам: Бұған қалай жетуге болады?
- 6 -қадам: мультиплекстеу алгоритмі
Бейне: Pic18f4520 протоколында 7 сегменті бар секундомер: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Мен фото контроллермен жұмыс жасай бастадым, менің бір досым одан секундомер жасауды өтінді. Сондықтан менде бөлісетін аппараттық кескін жоқ, мен Proteus бағдарламалық жасақтамасында код жаздым және оны модельдедім.
мұнда мен сол үшін схеманы бөлістім.
үш айнымалы миллисекунд, секунд, минут анықталады
мұнда біз 10 мс таймер үзілісін қолдандық, әр 1000 миллисекунд үшін секундтық айнымалы артады, әр 60 секунд сайын айнымалы өседі.
1 -қадам: Қажетті заттар
1 pic18f4520 контроллері
2 жеті сегментті дисплей
3 bc547 транзисторы
Бастауға/тоқтатуға/қалпына келтіруге арналған 4 қосқыш
5 резистор 330E, 10K, 1K
Https://www.mikroe.com/mikroc-pic үшін 6 микроК жүктеу
7 протеусын жүктеу
2 -қадам: код логикасы және дисплей
Жеті сегментті дисплей (SSD) - кең таралған, арзан және қарапайым дисплейдің бірі. Жоғарыда сияқты.
мұнда біз 7 сегментті дисплейдің жалпы катодты түрін қолдануымыз керек - SSD -дің жалпы катодында барлық светодиодтардың –ve терминалы әдетте «COM» түйреуішіне қосылады. Сәйкес жарықдиодты сегментке '1' берілгенде және жерге ортақ қосылғанда сегментті жарықтандыруға болады. Ішкі элементтер 2 суретте келтірілген.
3 -қадам: Микроконтроллермен дисплей жүргізу
Мен өз тізбегімде NPN BC547 транзисторын қолдандым.
BJT-ді коммутатор ретінде қарапайым қолдану үшін эмитент-коллекторлық түйіндер базалық терминалда кіріс сигналы болғанда қысқарады, әйтпесе ол ажыратылады. Кіріс қолайлы резистор арқылы берілуі керек.
4 -қадам: Неліктен мультиплекстеу керек?
Көбінесе біз екі, үш немесе одан да көп SSD дискілерін қолдануымыз керек, және бұл тек бір ғана MCU -ды қолданады, бірақ бізде бір мәселе - MCU -де енгізу -шығару түйреуіштерінің болмауы, себебі бір SSD 8 істікшені қажет етеді, сондықтан үш SSD 24 түйреуішті алады. 18 суретте бізде тек 48 енгізу -шығару түйреуі бар. Сонымен, оның шешімі қандай?
Мүмкіндіктердің бірі - біз енгізу -шығару түйреуіштері бар үлкен MCU қолданамыз. Бірақ содан кейін біз қолдана алатын ең көп дегенде 3 SSD дискімен шектелеміз. Бұл мәселенің тағы бір жақсы және ұсынылған шешімі - жеті сегментті дисплейлерді мультиплекстеу.
Уикипедия былай дейді: «Телекоммуникация мен компьютерлік желілерде мультиплексинг (сонымен бірге muxing деп те аталады) - бұл бірнеше аналогтық хабар сигналдарын немесе цифрлық деректер ағындарын ортақ тасымалдаушы арқылы бір сигналға біріктіру әдісі. Мақсаты-қымбат ресурспен бөлісу. 'Біз жеті сегментті дисплейді мультиплекстеуде нені білдіреміз, біз барлық SSD дискілерінде дисплей беру үшін тек 7 шығыс портты қолданатын боламыз.
5 -қадам: Бұған қалай жетуге болады?
Мұнда біз «Көрудің тұрақтылығын» қолданамыз. Енді сізде бұл термин бұрыннан болуы керек. Иә, бұл кинематографияда қолданылатын әдіс (суреттер соншалықты тез көрсетіледі, біздің миымыз қатарынан екі суреттің арасындағы айырмашылықты ажырата алмайды). Дәл осылай, біз бірнеше SSD -ді жібергенде, біз бір уақытта бір ғана SSD дискіні көрсетеміз және олардың арасында тез ауысамыз, біздің миымыз оларды ажырата алмайды.
Айталық, әр дисплей бір уақытта 5 миллисекундқа ғана белсенді, яғни секундына 1/0.0045 рет жанады, бұл шамамен 222/секундқа тең. Біздің көзіміз өзгерісті тез сезіне алмайды, сондықтан барлық дисплейлер бір уақытта жұмыс істейтінін көреміз. Аппараттық құралдарда не болып жатыр, MCU түйреуішке '1' береді (есіңізде болсын, BJT негізіне '1' қою Коллектор мен эмиттер түйінін қысқартады?), Ол транзистордың негізіне қосылған. сәйкес дисплейлер «ON» портын 5 миллисекундқа ұстап тұрады, содан кейін оны қайтадан өшіреді. Бұл процедура шексіз циклге қойылады, осылайша біз дисплейді үздіксіз көреміз.
6 -қадам: мультиплекстеу алгоритмі
Кодта екі портты анықтаңыз, біреуі сегменттік деректер портына және сегментті басқару портына.
мұнда сіз барлық 7 сегментте деректерді көрсетесіз. және сол деректерді көрсету керек бір басқару түйреуішін іске қосыңыз. деректерді өзгерту және басқару түйреуішін ауыстыру.
Бұл нұсқаулықта біз 6 таңбалы мультиплекстеуді қолдандық, оған қоса берілген c файлын өтіңіз және сіз оны тазартасыз.
Ұсынылған:
Өңдеу мен Arduino мен 7 сегменті мен сервистік GUI контроллерін қосу: 4 қадам
Processing and Arduino мен Make 7 Segment and Servo GUI контроллерін қосу: Кейбір жобалар үшін сізге Arduino -ны қолдану қажет, себебі ол прототиптеудің оңай платформасын ұсынады, бірақ Arduino -ның сериялық мониторында графиканы көрсету өте ұзақ уақытты қажет етеді және тіпті қиын. Сіз Arduino сериялық мониторында графиктерді көрсете аласыз
Автоматты секундомер: 9 қадам
Автоматты секундомер: Бұл нұсқаулық сізге автоматты секундомерді қалай жасау керектігін көрсетеді. Өйткені жүгіру көңілді, бірақ кейде сенімен бірге уақыт бөле алатын адам жоқ. Мен оны мүмкіндігінше қарапайым, арзан және дәл сақтауға тырыстым. Сізге пульт қажет емес
4 цифрлық 7 сегменттің дисплейі секундомер: 3 қадам
4 цифрлық 7 сегментті дисплей секундомері: Бұл нұсқаулық сізге 4 цифрлы жеті сегментті дисплейден нақты уақыттағы толық жұмыс істейтін секундомерді қалай жасау керектігін көрсетеді
Arduino 7 сегменті (5011BS, жалпы анод немесе катод) Оқулық: 13 қадам
Arduino 7 сегменті (5011BS, жалпы анод немесе катод) оқулық: Біз бұл нәрсені шешеміз! Жалпы катод немесе анод
Қосылған секундомер: 5 қадам
Қосылған секундомер: Сәлеметсіз бе! Бұл оқулықта сіз WiFi -мен жабдықталған кез келген Arduino үйлесімді құрылғыны REST API -ге қалай қосуға болатынын білесіз! Бұл GitKraken Glo Board веб -қосымшасын тақталар, бағандар жасау үшін қолданады. заттарды ұйымдастыруға арналған карталар! Жалпыға қолжетімділік туралы кейбір мәліметтер