www.kn34pc.com
https://www.kn34pc.com/forums/

Arduino-извод едновременно като вход и изход
https://www.kn34pc.com/forums/viewtopic.php?f=74&t=941
Страница 1 от 1

Автор:  LZ2WSG [ 16 Окт 2017, 17:58 ]
Заглавие:  Arduino-извод едновременно като вход и изход

В схема към честотомер на 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 | Прегледано 2044 пъти ]

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

Автор:  LZ2WSG [ 17 Окт 2017, 22:19 ]
Заглавие:  Re: Arduino-извод едновременно като вход и изход

Първо скоростно решение:

Изпозлвайки таймера, със 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 | Прегледано 2034 пъти ]
pin_in_out_01.jpg
pin_in_out_01.jpg [ 481.84 KiB | Прегледано 2034 пъти ]
pin_in_out_01.zip [553 Байта]
162 пъти

Автор:  RK9AMX [ 20 Мар 2020, 14:04 ]
Заглавие:  Re: Arduino-извод едновременно като вход и изход

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

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/