www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 14 Юли 2020, 05:40

Часовете са според зоната UTC + 2 часа [ DST ]




Напиши нова тема Отговори на тема  [ 3 мнения ] 
Автор Съобщение
МнениеПубликувано на: 16 Окт 2017, 17:58 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
В схема към честотомер на RA4NAL ( http://ra4nal.qrz.ru/chlcd16.shtml, viewtopic.php?f=19&t=940 ) ми прави впечатление, че няколко извода (PB4, PB5, PB6) на PIC16F628A са едновременно входове (за бутони) и изходи (за LCD дисплей).

Ясно е, че функциите са мултиплексирани по време и ще е псевдо-едновременно действието им, но ми се ще с Arduino (ATMEGA328) това задание също да мога да изпълня, когато е необходимо. Възможно ли е това?

Досега в setup съм конфигурирал извод или като вход, или като вход с pull-up резистор, или като изход:
Код за потвърждение:
pinMode(IZV_1, INPUT);
...
pinMode(IZV_2, INPUT_PULLUP);
...
pinMode(IZV_3, OUTPUT);

Въпросът е без конкретно приложение и ще е вариант за решение тогава, когато броя на свободните неконфигурирани изводи "започнат да свършват" :smile
Прикачени файлове:
chlcd16_sb_cr.gif
chlcd16_sb_cr.gif [ 14.34 KiB | Прегледано 2042 пъти ]

---
PS. Още една конструкция с PIC микроконтролер, отново извод е вход-изход ...
Очень простые часы на PIC-контроллере: http://radioshem.net/index.php?newsid=172
Прикачени файлове:
1426887822_01.jpg
1426887822_01.jpg [ 71.05 KiB | Прегледано 2041 пъти ]


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 17 Окт 2017, 22:19 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1087
Местоположение: Силистра
Първо скоростно решение:

Изпозлвайки таймера, със 100 Hz назначавам извод 10 за вход и след това: за изход.

Когато е вход проверявам дали е активиран към земя.
Когато е изход изпълянвам Т-тригерна функция, привързана към бутона (вкл/изкл)
---
R1 е ограничителен резистор за тока през светодиода.
R2 осигурява +5V при "вход" (иначе падението в светодиода е 1,6V-1,8V).
R3 e "защитен" резистор за изхода, при условие, че се "засекат" изход +5V и "земя" от бутона.
---
Да се има предвид импулсния характер на сигнала в изхода (светодиодът мига (ок. 100 Hz, настройва се) и е с коеф. на запълване 50/50. Първата ми хрумнала идея е изхода през резистор и с кондензатор към земя да управлява база на PNP транзистор).

Реалното поведение на светодиода е макс. светене при натиснат бутон и с намалена сила: при активиран извод 10 (в случая - "земя").

Това решение ми е приложимо засега.
Ако има други идеи, споделете. :wink


Прикачени файлове:
pin_in_out_01.GIF
pin_in_out_01.GIF [ 35.81 KiB | Прегледано 2032 пъти ]
pin_in_out_01.jpg
pin_in_out_01.jpg [ 481.84 KiB | Прегледано 2032 пъти ]
pin_in_out_01.zip [553 Байта]
162 пъти
Върнете се в началото
 Профил  
 
МнениеПубликувано на: 20 Мар 2020, 14:04 
Offline
Аватар

Регистриран на: 20 Мар 2020, 10:31
Мнения: 3
LZ2WSG написа:
Ако има други идеи, споделете. :wink


Изображение

Кратко описание на работата на веригата.
Дисплеят работи само за запис на данни (pin RW е свързан към общ проводник).
Докато няма щит на импулс на щифт Е, нивата на напрежение в останалите контакти се игнорират от дисплея.
Следователно, докато не се появи информация, можете да използвате щифтовете на контролера като входове и бутони за разпит.
Бутоните не могат да бъдат скъсени до обикновен, в противен случай портовете на контролера ще се провалят. Тази ситуация е възможна при натискане на бутона и извеждане на информация. Така че трябва да ограничите тока до безопасна стойност. В нашия случай това е резистор. В този случай спадът на напрежението през резистора с вътрешното издърпване на контролера (~ 20k) трябва да бъде разпознат като логично "0". Следователно съпротивлението трябва да бъде избрано в рамките на 3.3k ... 4.7k. При такива рейтинги на резистора натискането на бутона не пречи на показването на информация и недвусмислено се разпознава от контролера като логично "0".
Портовете на контролера при извеждане на информация трябва да бъдат конфигурирани като изходи. След показване на информацията, портовете трябва да бъдат конфигурирани като входове с вътрешен издърпващ елемент (INPUT_PULLUP).
Библиотеката LiquidCrystal няма да работи. Трябва да прочета ръководството за HD4780. Но това е отделен въпрос.

Подробно описание
http://kmpu.ru/other/zhki_obedinenie-s- ... index.html

Google Translate :comp


Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 3 мнения ] 

Часовете са според зоната UTC + 2 часа [ DST ]


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com