Мултиплексорът е интегрална схема, която позволява да изпратиш дадане сигнал до различен приемник, който може да се избере. Така на схемата, която съм дал U2 e мултиплексор, пинът, на който се подава входния сигнал, е Х, а самият входен сигнал е квадратен сигнал с честота 38kHz. Чрез пиновете А, B, C се избира номерът на изходния пин от X0 до Х7, на който да бъде препратен входа Х. Така, за да накарам някой сензор да излъчи светлина, например сензор 5 - 101 в двоична, просто трябва да сетна А-1, В-0, С-1. Това означава, че сигналът 38kHz се ипраща на пин Х5 и диода светва. Тъй като генерирането на сигнала се извършва в PWM периферията на микроконторлера, много по-лесно е да се настрои веднъж и да си работи постоянно, отколкото при всяко светкане на светодиод да се настройва и да се пуска. За това се ползва пинът INH (Inhibit, Забрани), когато е в активно логическо ниво входният сигнал от Х не се изпраща на нито един от изходите Х0 до Х7. Абсолютно по същия начин работи и мултиплексорът U3, при него обаче като сетнеш АВС не избираш къде да отиде Х, ами кой вход от Х0 до Х7 да бъде свързан с изхода Х. И двата мултиплексора са абсолютно идентични, въпросът е чисто концептуален. Попринцип, ако ползваш мултиплексори се печелят пинове. В случая ми трябват 6 пина вместо 16, за да управлявам максимум 8 сензора. Освен това ми трябва само един пин, на който да се генерират 38kHz, както и само един пин с външно прекъсване, който да слуша избрания в момента сензор. Ето как и работи цялата схема:
1. Задават се ABC т.е. избира се светодиод, където да бъде пратен сигнала 38kHz(единия мултиплескор) и кой TSOP да бъде слушан(другия мултиплексор)
2. Деактивира се INH.
3. Илзъчва се светлинен импулс, ТSOP-a се активира и контолера съответно обработва генерираното прекъсване.
Надявам се да е станало ясно, ако трябва още ще обяснявам
Идеята е, че всяка ситуация си има номер от 0 до 127. Да кажем, че роботът може да направи само четири неща в дадена ситуация, това означава, че за всяка една ситуация трябва да се помни вероятността да се извърши едно от 4те действия. Представи си 128 структури, които отговарят на всяка една ситуация и в тях е записана вероятността за всяко едно дейтствие да бъде изпълнено в тази ситуация. Иначе щом ми остане малко свободно време ще направя една блок схема на софтуера и ще я кача, най - късно като кача и кода :Р, но ще гледам да е по рано