Arduino-стабилизатор на мрежово напрежение със сервомотор
Част II: Добавяне на индикатори за защита от ниско и високо напрежение

    Както вече сте се запознали с основната част от проекта ми за Стабилизатор на мрежово напрежение със сервомотор, управляван с Arduino, предложения от мен програмен код е базов и наистина върши добра работа, но той не съдържа кодове за защита от прекалено ниско или прекалено високо напрежение когато вилката на латера е в крайно долно или крайно горно положение. Всъщност, ако мрежовото напрежение стане по-ниско от 150V стабилизатора излиза от режим, не може да регулира (просто такива са възможностите на латера) и изходното напрежение също започва да спада. Някои електронни устройства не могат да работят при напрежения по-ниски от 200V, като за да запазят параметрите си, започват да консумират повече ток и започват да греят, а може и да прегреят и изгорят. И обратно при високо напрежение, примерно над 230-240V, вероятността от повреда нараства бързо.

    За да предпазя устройствата, които включвам към стабилизатора следва да имам някаква визуална индикация за тези ситуации. За целта като сензори ще използвам крайните изключватели намиращи се в двете крайни положения на латера (крайно ляво, крайно дясно). Когато вилката на латера достигне крайно ляво или крайно дясно положение, тя натиска пластините и контактите се включват/изключват. Микриците са с един нормално отворен и един нормално затворен контакт. В програмния код, който прилагам в архива към статията е предвидено да се използва нормално затворения контакт. Индикатора реагира когато вилката на латера натисне пластината и контакта се отвори.

    Ето какво представляват тези микрици:

    При нормална работа на стабилизатора, тоест когато изменението на мрежовото напрежение е в работния обхват на латера, в случая от 150V до 260V, вилката на латера не достига до микриците, които се виждат на горната снимка, но при твърде ниско или твърде високо напрежение, вилката достига до тях и е възможно излизайки от работния обхват да натисне пластините на микриците и те да се превключват. Следващата снимка илюстрира двете крайни положения на вилката на латера, съответно в ляво и в дясно:

    Както казах по-горе, когато стабилизатора работи в неговия допустим обхват 150V-260V вилката на латера не достига до микриците, което състояние считаме за нормална работа. Ето какво имам предвид:

    Вижда се, че при напрежения 150V и 246V вилката не достига до крайните положения.

    Ето как съм осъществил индикацията за прекалено ниско и прекалено високо напрежение:

    Нормално затворените контакти на двата микрика (съответно ляв, десен) свързвах като сензори към аналоговите входове A2 и A3. За да реагират на напрежение, към всеки вход свързах резистор от 10 kOm към вградния стабилизатор на захранването на Arduino +5V, с което винаги на входовете се поддържа това напрежение, освен ако съответния микрик не бъде натиснат от вилката.

    Логиката на програмния код е следната: ако микриците не са натиснати от вилката, на входовете А2 и А3 се подава ниско напрежение, но ако някой от тях е натиснат, контакта на микрика се отваря, а аналоговия вход получава положителн потенциал +5V. Съответно програмния код привежда два цифрови изхода във високо ниво, а към всеки има включени по един светодиод: за ниско и високо напрежение. Тези функции в програмния код са изпълнени с цикъл за проверка на състоянията на аналоговите входове A2 и А3. Например, имам предвид, че всеки аналогов вход има по 1024 стъпки на вградения аналогово-цифорв преобразувател. Ако стойността е по-малка от стъпка 512 (късо към маса), приемам за нула и обратно, ако стойността на входа е по-голяма от 512 (+5V), това предизвиква превключване към високо ниво на цифров изход, към който е включен LED индикатор, съответно за прекалено ниско или прекалено високо напрежение.

    Както казах в основната част от статията, печатната платка е така разработена, че на нея може да се изпълнят три проекта. В момента описвам втория от тях. За да се осъществи този проект, на обозначените места на платката към аналоговите входове трябва да поставите два резистора със стойност 10 kOm, а изходите на цифровите пинове D2 и D3 към светодиоди през резистори от 330 Om, които също са предвидени на печатната платка.
На следващата снимка с червен контур са отбелязани допълнителните елементи, необходими за осъществяване на тази част от проекта. Вдясно до трансформатора е предвиден електролитен кондензатор със стойност 10 µF за допълнително изглаждане на мрежовото напрежение, с което се подобряват показанията на цифровия волтметър на LCD индикатора:

    Както може би забелязвате, предвиден е куплунг за LCD16x2 с управление по I2C шина. Всъщност той става необходим за третия проект, който не е обект на това описание. Именно изводите SCL и SDA използвам като изходи от цифровите изходи на Arduino - D2 и D3.

    На следващата снимка може да видите визуалния ефект от индикаторите за ниско или високо напрежение при двете крайни положения на вилката на латера, тоест при мрежово напрежение, съответно по-ниско от 150V се включва синия индикатор, а при по-високо от 240V червения индикатор. Последната стойност може да бъде и по-висока (260V), според обхвата на латера.

    И накрая, дойде време за третата част от проекта, а именно изпълнението на стабилизатора с LCD дисплей 16x2 с I2C шина. Основната част на програмния код не търпи никакви промени, докато кода, свързан с дисплея се променя, както и хардуерното му свързване. Това може да видите на следващата фигура, представляваща платката. С червен цвят са показани куплунзите, които стават активни с именно този програмен код. Обърнете внимание, че в този подпроект индикаторите за защита от прекалено ниско и прекалено високо напрежение са свързани към цифровите изходи D11 и D12, което е отразено в програмния код. Светодиодите се свързват с единия извод към тях, а с другия към резисторите от 330 om, чийто край е замасен, като те също са изведени на куплунзи. Но ето и графиката на печатната платка, по която може да се ориентирате.

    Тази фигура показва, че за да се осъществи този подпорект не са необходими промени по печатната платка, а само зареждане на последния програмен код.

 Архив: arh_v_terziev_arduino_stab_servo_2 [zip,ino][2kb]


Литература (свързани статии):

1. Валери Терзиев, Arduino-управление на постояннотоков електромотор с H-Bridge драйвер, www.kn34pc.com
2. Валери Терзиев, Цифров волтметър с LCD16x2, управляван с Arduino, www.kn34pc.com

Валери Терзиев
25 февруари 2018 година