PCB ARDU BOARD MINI 2026 - INFO about pcb board produced 2026

ПОВЕЧЕ ИНФОРМАЦИЯ И МАТЕРИАЛИ НА ТОЗИ ЛИНК КЪМ СЪЩАТА ПЛАТКА
>>>>>>>>>> https://www.karadev.net/newsite/index.php/arduproboardminilink/arduproboardminimanual 

Това е подробен преглед на предоставената схема, която изглежда е персонализиран щит или разширителна платка за **Arduino Nano**. Дизайнът е фокусиран върху разширяване на GPIO портовете, осигуряване на аналогови входове, управление на релета и разпределение на захранването.

Ето подробен преглед по секции:

### 1. Главен контролер и основни входове/изходи (Изображение 1)

*   **Микроконтролер:** Сърцето на платката е **Arduino Nano** (обозначен ARDUINO_NANO). Всички останали компоненти се свързват към неговите пинове.
*   **Аналогови входове (RV1-RV4):**
    *   Има четири потенциометъра (RV1, RV2, RV3, RV4), всеки свързан към аналогов пин (A4, A5, A6, A7).
    *   **Функция:** Те действат като делители на напрежение, позволявайки на Arduino да чете аналогова стойност (0-1023), съответстваща на позицията на потенциометъра.
    *   **Филтриране:** Всеки вход има 100nF кондензатор (C1-C4) към маса, който филтрира електрическия шум за по-стабилно отчитане.
*   **Дигитални входове / Бутони (B1-B4):**
    *   Четири бутона (B1, B2, B3, B4) са свързани към цифрови пинове (D5, D4, D2, D3).
    *   **Схема:** Те са конфигурирани като "активно-ниски" входове. Когато се натиснат, те свързват пина към маса. Вътрешните pull-up резистори на Arduino трябва да бъдат активирани в кода, или са необходими външни pull-up резистори (не са показани, но се подразбират от схемата).
    *   **Дебаунсинг:** Всеки бутон има RC филтър (напр. R1/C18 за B1), за да се предотврати многократно задействане от едно натискане.
*   **Захранване:**
    *   Платката може да се захранва чрез VIN пина на Arduino (J1+5V, J2+5V) или чрез специален 12V вход (TBLOCK-M2, обозначен "+12V POWER").
    *   **Регулиране:** 12V входът се регулира до 5V с помощта на линеен регулатор на напрежение **7805** (U1). Тази 5V шина захранва релетата и другите периферни устройства.
    *   **Защита:** Диод D1 (1N4007) осигурява защита от обратна полярност за 12V входа.
*   **Серийна комуникация:**
    *   TX/RX пиновете (D0/D1) са изведени към 4-пинов конектор (J1), обозначен "SERIAL PORT ONLY". Това позволява програмиране на Arduino или серийна комуникация с външно устройство без използване на USB порта.
*   **Разширителни хедъри за GPIO:**
    *   Няколко хедъра (J6, J7, J8, J9) извеждат повечето от останалите цифрови и аналогови пинове на Arduino Nano, което ги прави лесно достъпни.

### 2. Секция за управление на релета (Изображение 1 и 2)

Това е основна характеристика на платката, която позволява превключване на устройства с по-висока мощност.

*   **Релета:** Има четири релета (RL1, RL2, RL3, RL4), всяко управлявано от отделен GPIO пин (D13, D12, D11, D10).
*   **Драйверна схема:** Всяко реле се управлява от N-канален MOSFET транзистор (Q1-Q4, AP9977GJ).
    *   Пинът на Arduino осигурява напрежение на гейта, за да включи/изключи MOSFET транзистора.
    *   Резистор на гейта (R6-R9, 2kΩ) ограничава тока от пина на Arduino.
*   **Диод за защита от обратен ток:** Диод (D2-D5, LED-YELLOW) е поставен паралелно на бобината на релето. Това е **критичен компонент**, който предпазва MOSFET транзистора от високото напрежение, генерирано при изключване на бобината на релето.
    *   **Забележка:** Използването на светодиод тук е умно решение с двойна цел. Той действа като диод за защита от обратен ток *и* осигурява визуална индикация, че релето е активно. Въпреки това, светодиодите имат по-високо право напрежение (~2V) от стандартните диоди (~0.7V), което може леко да намали напрежението върху бобината на релето. За повечето малки релета това е приемливо.
*   **Захранване на релетата:** Релетата се захранват от отделна линия "RELAY_POWER". Това е важно, защото релетата могат да консумират значителен ток и да създават електрически шум, който може да попречи на чувствителната логика на Arduino, ако споделят една и съща захранваща шина.

### 3. Селектор и разпределение на захранването за релетата (Изображение 1 и 3)

Тази секция управлява захранването за релетата и осигурява изолирани изходи за захранване.

*   **Селектор на напрежение за релетата:**
    *   3-пинов конектор (CONN-SIL3) позволява на потребителя да избере напрежението за линията "RELAY_POWER".
    *   **Позиция 1-2:** Свързва RELAY_POWER към вграденото +12V захранване.
    *   **Позиция 2-3:** Свързва RELAY_POWER към вграденото +5V захранване (от регулатора 7805).
    *   Тази гъвкавост позволява на платката да управлява релета, оценени за 5V или 12V.
*   **Изолирани изходи за захранване (U5-U8):**
    *   Има четири допълнителни секции за изходно захранване (INPUT1, INPUT3, INPUT4, INPUT5).
    *   Всяка използва **78L05** регулатор на напрежение (U5, U6, U7, U8), за да осигури регулиран 5V изход.
    *   **Управление:** Входът на всеки 78L05 се управлява от GPIO пин (D9, D8, D7, D6). Когато пинът е HIGH, регулаторът се активира и 5V са налични на изходния клемен блок.
    *   **Индикация:** Всеки изход има светодиод (D6-D9), за да покаже кога е активен.
    *   **Предназначение:** Това позволява на Arduino да управлява цифрово захранването на до четири отделни 5V устройства.

### 4. Обобщение и потенциални проблеми

**Силни страни:**
*   **Добра организация:** Схемата е логично подредена, с ясни етикети и групиране на функции.
*   **Изчерпателни входове/изходи:** Осигурява добър микс от аналогови входове, цифрови входове (бутони), цифрови изходи (релета) и управлявани изходи за захранване.
*   **Добри практики:** Включва дебаунсинг за бутони, филтриране за аналогови входове, диоди за защита от обратен ток за релета и защита от обратна полярност.
*   **Гъвкаво захранване:** Възможността за избор на напрежение за релетата и наличието на множество управлявани изходи за захранване е много полезна.

**Потенциални проблеми / Неща за обмисляне:**
1.  **Светодиод като диод за защита от обратен ток:** Както беше споменато, използването на светодиод (D2-D5) като диод за защита от обратен ток е нетрадиционно. Въпреки че работи, по-високото му право напрежение може да не е идеално за всички релета. Стандартен диод 1N4148 или 1N4007, свързан паралелно със светодиода, би бил по-надеждно решение.
2.  **Управление на гейта на MOSFET:** AP9977GJ е логично-ниво MOSFET транзистор, така че трябва да се включи напълно от 5V на Arduino. Въпреки това, резисторите на гейта от 2kΩ (R6-R9) са доста големи. Това ще забави скоростта на превключване на релетата. За повечето приложения това е приемливо, но ако е необходимо бързо превключване, по-малък резистор (напр. 100Ω-470Ω) би бил по-добър.
3.  **Ток на захранването:** Регулаторите 7805 и 78L05 са линейни регулатори. Те могат да се нагряват, ако има голяма разлика между входното и изходното напрежение и/или ако товарният ток е висок. 7805 (за основната 5V шина) трябва да има радиатор, ако захранва няколко релета. 78L05 са в корпус TO-92 и имат по-ниски токови ограничения (обикновено 100mA); те са подходящи само за малки товари.
4.  **Липсващи pull-up резистори:** Схемите на бутоните (B1-B4) разчитат на вътрешните pull-up резистори на Arduino. Това е добре, но трябва да се отбележи в кода, че трябва да се използва `pinMode(pin, INPUT_PULLUP)`. Ако са били предвидени външни pull-up резистори, те липсват от схемата.

**Общо впечатление:**
Това е добре проектирана и функционална схема за контролна платка, базирана на Arduino. Тя демонстрира добро разбиране на принципите на електрониката. С малки корекции (като преразглеждане на светодиодите за защита от обратен ток), това би бил много надежден дизайн. Готов е за прототипиране или производство.

=================================================================

 

Ето подробна таблица с всички компоненти, използвани в схемата, заедно с кратко обяснение за ролята на всеки от тях в проекта.

Обозначение Наименование / Стойност Брой Описание и функция
U1 7805 1 Линеен стабилизатор на напрежение; преобразува 12V вход в стабилни 5V за захранване на релетата и логиката. Изисква радиатор, ако захранва няколко релета едновременно.
U5–U8 78L05 4 Стабилизатори на напрежение 5V с ниска мощност (корпус TO-92); осигуряват индивидуално управляеми 5V изхода, контролирани от GPIO пинове D6–D9. Максимален ток ~100mA на канал.
RL1–RL4 TSC-112D3H 4 5V или 12V SPDT релета (в зависимост от селектора). Използват се за превключване на външни товари до 10A/250VAC. Напрежението на бобината трябва да съответства на избраното напрежение за RELAY_POWER.
Q1–Q4 AP9977GJ 4 N-канален MOSFET транзистор; действа като ключ за управление на бобините на релетата от GPIO пиновете на Arduino. Логично-ниво гейт, подходящ за управление с 5V.
D1 1N4007 1 Изправителен диод; предпазва от обратна полярност на 12V захранващия вход.
D2–D5 LED-YELLOW (напр. L-53SYGD) 4 Двойна функция: действа като диод за защита от обратен ток за бобината на релето и като визуална индикация, че релето е активно. Забележка: По-високото право напрежение (~2V) може леко да намали напрежението върху бобината.
D6–D9 LED-YELLOW 4 Статус светодиоди за управляемите 5V изходи (U5–U8). Светят, когато съответният GPIO пин е HIGH.
D10 1N4007 1 Диод за защита от обратен ток за изхода на стабилизатора 7805 — предпазва от пикове на напрежение при изключване на товара. По избор, но препоръчително.
D11 1N4007 1 Защита от обратна полярност за входовете J1+5V/J2+5V. Предпазва от повреди при неправилно свързване на захранването.
RV1–RV4 10kΩ потенциометър 4 Аналогови делители на напрежение, свързани към A4–A7. Осигуряват променлив аналогов вход (0–5V) за отчитане на сензори или ръчна настройка.
B1–B4 Тактов бутон 4 Моментни превключватели, свързани към GPIO D2–D5. Използват се с вътрешни pull-up резистори в кода (INPUT_PULLUP).
R1–R4 2kΩ 4 Резистори за дебаунсинг на бутоните (с кондензаторите C18/C19 и т.н.).
R5 2kΩ 1 Токоограничаващ резистор за светодиода D+5V. Ограничава тока през светодиода до безопасно ниво (~2.5mA).
R6–R9 2kΩ 4 Резистори на гейта за MOSFET транзисторите (Q1–Q4). Ограничават входния ток към гейта на MOSFET при превключване. 2kΩ е консервативна стойност — може да се намали до 100–470Ω за по-бързо превключване.
R10, R11 1kΩ 2 Токоограничаващи резистори за D2/D4 (статус светодиоди на релетата). Осигуряват видима яркост на светодиодите без претоварване.
R12, R13 2kΩ 2 Същите като R6–R9 — резистори на гейта за Q3/Q4. Последователен дизайн при всички драйвери на релета.
R14–R17 1kΩ 4 Токоограничаващи резистори за D6–D9 (индикатори за управляемите 5V изходи). Предпазват светодиодите от прекомерен ток.
R18 1kΩ 1 Токоограничаващ резистор за светодиода D+12V. Ограничава тока през светодиода, захранван от 12V шината.
C1–C4 100nF (0.1µF) 4 Филтриращи кондензатори за аналоговите входове (RV1–RV4). Филтрират шума за стабилни показания от АЦП.
C5 22µF 1 Голям кондензатор близо до VIN пина на Arduino Nano. Стабилизира захранващото напрежение при преходни товари.
C6–C15 100nF 10 Филтриращи кондензатори за стабилизаторите (U1, U5–U8) и локално филтриране. Необходими за стабилна работа на интегралните схеми.
C16, C17 470µF 2 Входен/изходен кондензатор за стабилизатора 7805. Подобрява стабилността и реакцията при преходни процеси. C16 на входа, C17 на изхода.
C18–C21 100nF 4 Кондензатори за RC вериги за дебаунсинг на бутоните B1–B4. Работят с R1–R4 за филтриране на механичния отскок.
J1 CONN-SIL4 1 4-пинов хедър за серийна комуникация TX/RX/GND/VCC. Позволява програмиране или серийна комуникация без USB.
J6–J9 CONN-SIL7 / CONN-SIL8 4 Разширителни хедъри за неизползвани GPIO пинове (D7–D22, A0–A7 и др.). Позволяват свързване на сензори, дисплеи или други модули.
J10–J13 CONN-SIL3 4 3-пинови хедъри за аналоговите входове (RV1–RV4). Свързват потенциометри или външни аналогови сензори.
J14–J17 CONN-SIL3 4 3-пинови хедъри за входовете на бутоните (B1–B4). Свързват тактови превключватели.
J1GND, J2GND PIN 2 Заземителни клеми за външни връзки. Полезни за заземяване на екрани или сензори.
TBLOCK-M2 Клемна връзка (2-пинова) 5 Винтови клеми за захранващи входове (+12V, +5V) и селектор за захранване на релетата. Здрава връзка за пътища с висок ток.
TBLOCK-M3 Клемна връзка (3-пинова) 4 Винтови клеми за изходите на релетата (NO, COM, NC). Свързват товари като лампи, мотори или уреди.
CONN-SIL3 3-пинов хедър 1 Селектор на напрежение за релетата — избира между +5V или +12V за захранване на бобините на релетата.
CONN-SIL4 4-пинов хедър 2 ALL_GND и +5V_ALL — обща маса и 5V разпределителни точки за външни устройства.

---

## 📌 **БЕЛЕЖКИ И ПРЕПОРЪКИ**

### ⚠️ **Критични бележки по дизайна:**
- **Диоди за защита от обратен ток:** Използването на светодиоди (D2–D5) като диоди за защита от обратен ток е нетрадиционно. Въпреки че работи, помислете за добавяне на стандартен диод 1N4148 паралелно на всеки светодиод за по-добра защита и по-ниско право напрежение.
- **Резистори на гейта:** 2kΩ е безопасно, но бавно. За по-бързо превключване на релетата намалете стойността до 100–470Ω.
- **Радиатор:** 7805 (U1) ще се нагрява, ако захранва няколко релета едновременно. Добавете малък радиатор.
- **Pull-up резистори:** Бутоните разчитат на вътрешните pull-up резистори на Arduino. Уверете се, че използвате `pinMode(pin, INPUT_PULLUP)` в кода.
- **Токови ограничения:** Стабилизаторите 78L05 (U5–U8) имат максимален ток ~100mA. Не свързвайте товари с висок ток директно към техните изходи.

---

## 💡 **ПРЕДЛОЖЕНИЯ ЗА ПОДОБРЕНИЕ**

1. Заменете D2–D5 със **стандартни диоди + отделни светодиоди** за по-чиста защита от обратен ток.
2. Добавете **предпазители или полипредпазители** на изходните линии на релетата за защита от късо съединение.
3. Включете **оптрони** между Arduino и драйверите на релетата, ако е необходима галванична изолация.
4. Добавете **кондензатор през контактите на релето** (snubber), ако превключвате индуктивни товари (мотори, соленоиди).
5. Надпишете ясно всички хедъри на печатната платка за по-лесно сглобяване и отстраняване на грешки.

---

Тази платка е добре проектирана за хоби или образователни цели — чудесна е за домашна автоматизация, прототипиране на индустриално управление или изучаване на интерфейси с релета и управление на захранването. С малки корекции може лесно да се превърне в модул от професионален клас.

Това е многофункционален контролен модул, създаден да разшири възможностите на Arduino Nano и да улесни изграждането на разнообразни проекти – от образователни до реални индустриални или домашни приложения.

### Основни цели на платката:

*   **Разширяване на възможностите на Arduino Nano:** Осигурява допълнителни аналогови входове (4), цифрови входове (4 бутона), релета (4) за управление на товари с по-висока мощност и управляеми 5V изходи (4) за захранване на външни устройства.
*   **Управление на захранването:** Позволява динамично включване и изключване на захранването към външни устройства чрез GPIO пинове, което е полезно за енергоспестяване, безопасност и синхронизация.
*   **Гъвкаво захранване на релетата:** Селекторът за напрежение (5V или 12V) позволява използването на различни типове релета според нуждите на проекта.
*   **Визуална индикация:** Всеки ключ (реле, изход за захранване) има светодиод за статус, което улеснява отстраняването на грешки и демонстрирането на работата на системата.
*   **Модулен и разширяем дизайн:** Хедърите за GPIO и конекторите за серийна комуникация позволяват свързване на допълнителни модули и интеграция с други микроконтролери или компютри.

### Реални проекти и приложения:

*   **Умна домашна автоматизация:** Управление на осветление, климатик, вентилатори чрез релета; регулиране на интензитета на осветлението с PWM; захранване на сензори за температура и влажност.
*   **Индустриален контролер:** Контрол на конвейерни ленти, помпи, мотори; управление на сензори за позиция и температура; връзка с PLC или SCADA системи чрез серийна комуникация.
*   **Лабораторен източник на напрежение:** Тестване на електронни компоненти с контролирано захранване; симулиране на променливи входове (сензори) с потенциометри; превключване между различни напрежения (5V/12V).
*   **Сигурност и мониторинг:** Система за аларма или мониторинг на околната среда; активиране на аларма чрез бутони; симулиране на сензори за дим, температура, влага; захранване на камери или сирени.
*   **Роботика и автоматизация:** Контрол на мотори, сензори и актьори в робот; включване/изключване на мотори чрез релета; захранване на сензори за разстояние или линия; връзка с главен контролер (напр. Raspberry Pi).

### Образователни цели и умения:

*   **Електроника:** Разбиране на делители на напрежение, RC филтри, MOSFET транзистори, стабилизатори на напрежение, диоди за защита от обратен ток и релета.
*   **Програмиране на Arduino:** Работа с цифрови и аналогови пинове, вътрешни pull-up резистори, PWM, серийна комуникация, таймери и интервали.
*   **Дизайн на печатни платки (PCB):** Разполагане на компоненти, трассиране на захранващи линии, използване на хедъри и конектори, етикетиране и документация.
*   **Отстраняване на грешки (Debugging):** Използване на светодиоди за визуална обратна връзка, тестване на отделни секции, използване на мултиметър и осцилоскоп.
*   **Системно мислене:** Интеграция на различни подсистеми, оптимизация на енергопотреблението, безопасност и надеждност.

### Допълнителни предложения за развитие:

*   Добавяне на Wi-Fi/Bluetooth модул за дистанционно управление.
*   Добавяне на RTC (Real-Time Clock) за планиране на събития.
*   Добавяне на OLED дисплей за показване на статус и стойности от сензори.
*   Добавяне на оптрони за галванична изолация.
*   Добавяне на предпазители за защита от късо съединение.
*   Добавяне на snubber вериги за защита на контактите на релетата при превключване на индуктивни товари.

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

Разбира се, ето логическите връзки и програмния код, които ще реализират автоматиката, която описваш: **„Натискане на Бутон 1 → Измерване на АЦП 1 → Включване на Реле 1 за време, определено от измерената стойност на АЦП 1 → Изключване на Реле 1“**.

### 1. Свързване на хардуера (според схемата)

Преди да напишем кода, трябва да идентифицираме правилните пинове на Arduino Nano според връзките в схемата (Изображение 1 и 2).

| Функция | Компонент | Етикет на схемата | **Пин на Arduino Nano** | Бележка |
| :--- | :--- | :--- | :--- | :--- |
| **Тригер** | Бутон B1 | `ARDU_8` (етикетът показва GPIO_D5) | **Пин 8** | *Забележка: Етикетът на схемата показва D5, но кабелът е свързан към Пин 8.* |
| **Вход** | Потенциометър RV1 | `ARDU_23` (етикетът показва GPIO_A4) | **Пин A4** | Аналогов вход 0–1023 |
| **Изход** | Реле RL1 | `ARDU_16` (етикетът показва GPIO_D13) | **Пин 13** | Управлява Реле 1 |

---

### 2. Логически поток (концептуално)

1.  **Състояние на готовност:** Системата изчаква натискане на Бутон 1.
2.  **Събитие задействане:** Откриване на натискане на Бутон 1 (и филтриране за избягване на фалшиви задействания).
3.  **Измерване:** Отчитане на стойността от Потенциометър RV1 (0 до 1023).
4.  **Изчисление:** Преобразуване на стойността от АЦП в секунди.
    *   *Пример:* Ако АЦП е 1023 (максимум), време = 60 секунди. Ако АЦП е 0, време = 0 секунди.
    *   *Формула:* `ВремеВСекунди = (СтойностАЦП / 1023.0) * МаксВреме`
5.  **Действие:** Включване на Реле 1.
6.  **Изчакване:** Изчакване на изчисленото време.
7.  **Завършване:** Изключване на Реле 1.
8.  **Връщане:** Връщане в състояние на готовност.

---

### 3. Код за Arduino (проста блокираща версия)

Това е най-лесната за разбиране версия. Използва `delay()`, което спира програмата от извършване на други действия, докато релето е включено.

```cpp
// --- Дефиниции на пинове ---
const int BUTTON_PIN = 8;      // Бутон B1 (свързан към ARDU_8)
const int ADC_PIN = A4;        // Потенциометър RV1 (свързан към ARDU_23 / A4)
const int RELAY_PIN = 13;      // Реле RL1 (свързан към ARDU_16 / Пин 13)

// --- Конфигурация ---
const int MAX_TIME_SECONDS = 60; // Максимално време, за което релето може да остане включено (напр. 60 секунди)

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP); // Използване на вътрешен pull-up резистор
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);      // Уверяване, че релето е изключено при стартиране
  
  Serial.begin(9600);
  Serial.println("Системата е готова. Натиснете Бутон 1, за да стартирате.");
}

void loop() {
  // 1. Проверка дали бутонът е натиснат (активен LOW поради Pull-up)
  if (digitalRead(BUTTON_PIN) == LOW) {
    
    // Просто филтриране: изчакваме малко, за да сме сигурни, че е истинско натискане
    delay(50); 
    if (digitalRead(BUTTON_PIN) == LOW) {
      
      // 2. Измерване на АЦП
      int adcValue = analogRead(ADC_PIN);
      
      // 3. Изчисляване на времето (преобразуване на 0-1023 в 0-MAX_TIME_SECONDS)
      // Добавяме 1, за да избегнем 0 секунди, ако АЦП е 0
      int timeSeconds = map(adcValue, 0, 1023, 1, MAX_TIME_SECONDS);
      
      Serial.print("Стойност на АЦП: ");
      Serial.print(adcValue);
      Serial.print(" | Зададено време: ");
      Serial.print(timeSeconds);
      Serial.println(" секунди");
      
      // 4. Включване на релето
      digitalWrite(RELAY_PIN, HIGH);
      
      // 5. Изчакване на изчисленото време
      delay(timeSeconds * 1000); // Преобразуване на секунди в милисекунди
      
      // 6. Изключване на релето
      digitalWrite(RELAY_PIN, LOW);
      
      Serial.println("Цикълът е завършен. Релето е изключено.");
      
      // Изчакване за освобождаване на бутона, за да се предотврати незабавно повторно задействане
      while(digitalRead(BUTTON_PIN) == LOW) {
        delay(10);
      }
    }
  }
}
```

---

### 4. Код за Arduino (усъвършенствана неблокираща версия)

В реалната автоматизация често не искаме системата да „замръзва“, докато чака. Тази версия използва `millis()`, така че платката може да продължи да чете други бутони или да изпраща данни към серийния монитор, докато релето работи.

```cpp
// --- Дефиниции на пинове ---
const int BUTTON_PIN = 8;
const int ADC_PIN = A4;
const int RELAY_PIN = 13;

// --- Променливи за състоянието ---
enum SystemState { IDLE, RUNNING };
SystemState currentState = IDLE;

unsigned long startTime = 0;
unsigned long durationMillis = 0;

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);
  Serial.begin(9600);
}

void loop() {
  if (currentState == IDLE) {
    // Проверка за натискане на бутона
    if (digitalRead(BUTTON_PIN) == LOW) {
      delay(50); // Филтриране
      if (digitalRead(BUTTON_PIN) == LOW) {
        
        // Четене на АЦП и изчисляване на продължителността
        int adcValue = analogRead(ADC_PIN);
        int seconds = map(adcValue, 0, 1023, 1, 60); // 1 до 60 секунди
        durationMillis = seconds * 1000UL;
        
        // Стартиране на цикъла
        digitalWrite(RELAY_PIN, HIGH);
        startTime = millis();
        currentState = RUNNING;
        
        Serial.print("Стартирано. Продължителност: ");
        Serial.print(seconds);
        Serial.println("s");
        
        // Изчакване за освобождаване на бутона
        while(digitalRead(BUTTON_PIN) == LOW) delay(10);
      }
    }
  } 
  else if (currentState == RUNNING) {
    // Проверка дали времето е изтекло
    if (millis() - startTime >= durationMillis) {
      digitalWrite(RELAY_PIN, LOW);
      currentState = IDLE;
      Serial.println("Завършено. Релето е изключено.");
    }
    
    // По избор: Тук можете да извършвате други задачи, докато чакате!
    // напр. Serial.print(".");
  }
}
```

### 5. Ключови логически обяснения

*   **`INPUT_PULLUP`**: Схемата показва бутони, свързани към маса. Чрез задаване на пина на `INPUT_PULLUP`, Arduino вътрешно свързва пина към 5V чрез резистор. Когато бутонът НЕ е натиснат, пинът отчита HIGH (5V). Когато е натиснат, той се свързва към маса и отчита LOW (0V).
*   **Функция `map()`**: Това е от решаващо значение за автоматизацията. Тя преобразува суровия номер от АЦП (0–1023) в разбираемо за човека време (1–60 секунди).
    *   *Пример:* Ако завъртите копчето наполовина (АЦП ~512), времето ще бъде ~30 секунди.
*   **Филтриране (Debouncing)**: Механичните бутони „подскачат“, когато се натиснат (бързо правят и прекъсват контакта). `delay(50)` или `while` цикълът гарантират, че регистрираме само едно натискане на действие.
*   **Блокиращо срещу неблокиращо**:
    *   **Блокиращо (`delay`)**: По-лесно за писане, но Arduino е „замразен“ по време на закъснението.
    *   **Неблокиращо (`millis`)**: По-професионално. Arduino може да проверява други сензори или бутони, докато таймерът на релето работи.

### 6. Потенциални подобрения за реални проекти

  1. **Ограничение за безопасност:** Добавете максимално ограничение на времето в кода (напр. `if (seconds > 300) seconds = 300;`), за да не може потребителят случайно да зададе релето да остане включено за 24 часа.
    2.  **Визуална обратна връзка:** Включете светодиод (напр. D6 или D7), докато релето работи, за да може потребителят да знае, че таймерът е активен.
    3.  **Защита при отпадане на захранването:** Ако захранването бъде прекъснато по време на таймера, Arduino се нулира. За критични приложения ще трябва да запазите `startTime` в EEPROM, за да може да продължи след прекъсване на захранването.

=====================================================================

Разбира се! Ето **логически алгоритми** под формата на **текстови команди (стъпки)**, които могат да се използват за изграждане на различни автоматизирани функции, без да се пише код. Всеки алгоритъм е независим и може да се комбинира с други, като се използват различни хардуерни блокове от платката (бутони, АЦП, релета, LED-и и т.н.).

---

## ✅ **АЛГОРИТЪМ 1: Таймер с регулируемо време чрез потенциометър**

**Цел:** При натискане на бутон, релето се включва за време, определено от стойността на потенциометър.

1. Изчакай натискане на Бутон 1.
2. Изчакай 50 милисекунди (за филтриране на отскок).
3. Ако Бутон 1 все още е натиснат:
   - Прочети стойността от Потенциометър 1 (АЦП канал 1).
   - Преобразувай стойността от 0–1023 в секунди (напр. 1–60 секунди).
   - Включи Реле 1.
   - Изчакай изчисленото време в секунди.
   - Изключи Реле 1.
   - Изчакай освобождаване на Бутон 1.
4. Върни се в началото (изчакване на бутон).

---

## ✅ **АЛГОРИТЪМ 2: Автоматично включване при достигане на праг от сензор**

**Цел:** Ако стойността от аналогов сензор надхвърли зададен праг, включи релето за фиксирано време.

1. Изчакай постоянно четене на Потенциометър 2 (или външен сензор).
2. Ако стойността > зададен праг (напр. 500):
   - Включи Реле 2.
   - Изчакай 10 секунди.
   - Изключи Реле 2.
3. Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 3: Ручно управление с бутон и индикация**

**Цел:** При натискане на бутон, превключи състоянието на релето (включено/изключено) и покажи статуса със светодиод.

1. Изчакай натискане на Бутон 2.
2. Изчакай 50 милисекунди (за филтриране).
3. Ако Бутон 2 все още е натиснат:
   - Провери текущото състояние на Реле 3.
   - Ако е изключено → Включи Реле 3 и запали светодиод 3.
   - Ако е включено → Изключи Реле 3 и угаси светодиод 3.
   - Изчакай освобождаване на Бутон 2.
4. Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 4: Последователно включване на релета с забавяне**

**Цел:** При натискане на бутон, включи релета едно след друго с интервал от 5 секунди.

1. Изчакай натискане на Бутон 3.
2. Изчакай 50 милисекунди.
3. Ако Бутон 3 все още е натиснат:
   - Включи Реле 1.
   - Изчакай 5 секунди.
   - Включи Реле 2.
   - Изчакай 5 секунди.
   - Включи Реле 3.
   - Изчакай 5 секунди.
   - Включи Реле 4.
   - Изчакай освобождаване на Бутон 3.
4. Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 5: Забавено изключване след натискане на бутон**

**Цел:** При натискане на бутон, включи релето веднага, но го изключи след 30 секунди, дори ако бутонът е все още натиснат.

1. Изчакай натискане на Бутон 4.
2. Изчакай 50 милисекунди.
3. Ако Бутон 4 все още е натиснат:
   - Включи Реле 4.
   - Запомни текущото време (стартово време).
   - Изчакай 30 секунди.
   - Изключи Реле 4.
   - Изчакай освобождаване на Бутон 4.
4. Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 6: Условен режим – ако АЦП < праг, включи релето; иначе изключи**

**Цел:** Релето се включва само ако стойността от потенциометъра е под зададен праг.

1. Постоянно чети стойността от Потенциометър 3.
2. Ако стойността < зададен праг (напр. 300):
   - Включи Реле 1.
   - Запали светодиод 1.
3. Иначе (ако стойността >= праг):
   - Изключи Реле 1.
   - Угаси светодиод 1.
4. Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 7: Циклично включване/изключване с различни времена**

**Цел:** Релето се включва за 5 секунди, после изключва за 10 секунди, и така нататък – докато не се натисне бутон за спиране.

1. Изчакай натискане на Бутон 1 (за старт).
2. Изчакай 50 милисекунди.
3. Ако Бутон 1 все още е натиснат:
   - Включи Реле 2.
   - Изчакай 5 секунди.
   - Изключи Реле 2.
   - Изчакай 10 секунди.
   - Върни се в стъпка 3 (цикълът продължава).
4. Ако се натисне Бутон 2 (за стоп):
   - Изключи Реле 2.
   - Изчакай освобождаване на Бутон 2.
   - Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 8: Мулти-режим – избор чрез потенциометър**

**Цел:** Потенциометърът избира режим на работа (1–4), а бутонът стартира съответния алгоритъм.

1. Изчакай натискане на Бутон 1.
2. Изчакай 50 милисекунди.
3. Ако Бутон 1 все още е натиснат:
   - Прочети стойността от Потенциометър 4.
   - Ако стойността е между 0–255 → Изпълни Алгоритъм 1.
   - Ако стойността е между 256–511 → Изпълни Алгоритъм 2.
   - Ако стойността е между 512–767 → Изпълни Алгоритъм 3.
   - Ако стойността е между 768–1023 → Изпълни Алгоритъм 4.
   - Изчакай освобождаване на Бутон 1.
4. Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 9: Безопасност – максимално време за работа**

**Цел:** Релето може да работи максимум 60 секунди, независимо от настройките.

1. Изчакай натискане на Бутон 1.
2. Изчакай 50 милисекунди.
3. Ако Бутон 1 все още е натиснат:
   - Прочети стойността от Потенциометър 1.
   - Преобразувай в секунди (напр. 1–100).
   - Ако времето > 60 секунди → задай го на 60.
   - Включи Реле 1.
   - Изчакай изчисленото време.
   - Изключи Реле 1.
   - Изчакай освобождаване на Бутон 1.
4. Върни се в стъпка 1.

---

## ✅ **АЛГОРИТЪМ 10: Индикация на статус чрез LED-и**

**Цел:** Всеки LED показва състоянието на съответното реле.

1. Постоянно проверявай състоянието на Реле 1, 2, 3, 4.
2. Ако Реле 1 е включено → Запали LED 1.
3. Ако Реле 2 е включено → Запали LED 2.
4. Ако Реле 3 е включено → Запали LED 3.
5. Ако Реле 4 е включено → Запали LED 4.
6. Върни се в стъпка 1.

---

## 🔄 **Как да комбинираш алгоритмите?**

Всеки алгоритъм може да се изпълнява **едновременно**, ако използваш **неблокираща логика** (като `millis()` в Arduino). Например:

- Алгоритъм 1 (таймер) + Алгоритъм 6 (условен режим) + Алгоритъм 10 (индикация) = **Интелигентна система за управление**.

Можеш да създадеш **главен контролер**, който:

- Изпълнява всички алгоритми паралелно.
- Използва различни хардуерни блокове за всеки алгоритъм.
- Не блокира работата на другите алгоритми.

---

## 💡 **Пример за комбинация:**

> **„Ако Потенциометър 1 > 500, включи Реле 1 за 10 секунди. Ако Потенциометър 2 < 300, включи Реле 2 за 5 секунди. Винаги показвай статуса на релетата със светодиоди."**

Това е просто комбинация от:
- Алгоритъм 6 (условен режим)
- Алгоритъм 1 (таймер)
- Алгоритъм 10 (индикация)

---

Тези алгоритми са **модулни**, **лесни за разбиране** и **лесни за разширяване**. Можеш да ги комбинираш, модифицираш или добавяш нови, без да пишеш код – просто чрез текстови команди и логически стъпки.

Ако искаш, мога да ти помогна да създадеш **диаграма на потока** или **таблица за комбиниране на алгоритми** за конкретни приложения.

Микроконтролерът Arduino Nano е сърцето на цялата платка и съдържа множество ключови хардуерни блокове, които осигуряват неговата функционалност. Общите цифрови входове/изходи (GPIO) са универсални линии, които могат да бъдат конфигурирани като входове за четене на състоянието на бутони или като изходи за управление на релета и светодиоди. Тези GPIO пинове работят на 5V логическо ниво и могат да отдават или приемат ограничен ток, което ги прави идеални за свързване с външни компоненти като MOSFET драйвери и оптрони.

Аналогово-цифровият преобразувател (АЦП) се състои от няколко канала, които преобразуват непрекъснати аналогови напрежения от потенциометри или сензори в дискретни цифрови стойности в диапазона от 0 до 1023. Това позволява прецизно измерване на променливи входове за приложения като управление на време или откриване на прагове. Таймерите в микроконтролера осигуряват точни възможности за измерване на време, което позволява функции като широчинно-импулсна модулация (ШИМ) за управление на скоростта на двигатели, прецизни закъснения за продължителността на активиране на релета и неблокираща многозадачност чрез рутинни процедури, управлявани от прекъсвания.

UART серийната комуникационна шина улеснява обмена на данни с компютри или други устройства чрез TX/RX пинове, поддържайки качване на фърмуер, изход за отстраняване на грешки и изпълнение на отдалечени команди. Вътрешният тактов генератор гарантира синхронизирана работа на всички цифрови схеми, докато функциите за управление на захранването регулират нивата на напрежение и предпазват от спадове в напрежението. Схемата за нулиране позволява надеждни рестартирания на системата при необходимост, а буутлоудърът осигурява лесно програмиране без външни програматори.

Всички тези интегрирани хардуерни блокове превръщат Arduino Nano в мощна и гъвкава платформа, способна да изпълнява сложна автоматизирана логика, да управлява множество I/O операции едновременно и да се адаптира към различни изисквания на приложенията чрез софтуерна конфигурация.

The Arduino Nano, as shown in this schematic, is centered around the ATmega328P microcontroller, an 8-bit AVR-based chip that serves as the board’s core processing unit. It features 32KB of flash memory for program storage, 2KB of SRAM for runtime variables, and 1KB of EEPROM for persistent data. The Universal Asynchronous Receiver/Transmitter (UART) interface is implemented through pins D0 (RX) and D1 (TX), enabling serial communication with computers or other devices at configurable baud rates. In this design, these pins are routed to the “SERIAL PORT ONLY” section of J1, indicating their dedicated use for debugging or interfacing with external devices without interfering with other input/output functions.

General Purpose Input/Output (GPIO) pins are abundant on the Nano, with 14 digital I/O pins (D0–D13), six of which support Pulse Width Modulation (PWM) output. In this schematic, GPIOs are extensively utilized: D2–D5 are connected to pushbuttons (B1–B4) with pull-down resistors and debouncing capacitors (C18–C21), forming user-input interfaces labeled GPIO_D2 through GPIO_D5. These debouncing circuits prevent false triggering due to mechanical switch bounce, ensuring reliable digital signal transitions.

The Nano also includes eight analog input pins (A0–A7), which are linked to potentiometers RV1–RV4 via voltage dividers and filtering capacitors (C1–C4). These analog-to-digital converters (ADCs) convert analog voltages into 10-bit digital values (0–1023), suitable for applications such as light sensing, temperature monitoring, or user-adjustable thresholds. The filtering capacitors help reduce noise and stabilize the analog signals before they are digitized.

Timers within the ATmega328P include Timer0 (8-bit), Timer1 (16-bit), and Timer2 (8-bit). Although not explicitly shown in the schematic, these timers are fundamental to core Arduino functions such as timing loops, servo control, and tone generation. Timer0 is commonly used for the millis() and delay() functions, while Timer1 is often employed for precise PWM or frequency generation. Timer2 is available for custom interrupts or additional PWM outputs.

Power management is a critical aspect of the Nano’s design, with a 7805 linear regulator converting the +12V input from TBLOCK-M2 to a stable +5V for the Nano and its peripherals. Bulk capacitance (C16, C14) and decoupling capacitors (C17, C15) ensure clean power delivery by filtering out voltage fluctuations and high-frequency noise. Diode D10 provides reverse polarity protection, preventing damage if the power supply is connected incorrectly.

The schematic also includes relay voltage selection circuitry powered by +12V/+5V, suggesting that the Nano can drive external loads via relays controlled by GPIO pins—likely D6–D9 or similar, though not fully wired in this schematic. This capability allows the Nano to interface with higher-voltage or higher-current devices that cannot be directly driven by the microcontroller.

Grounding is carefully managed with multiple ground pins (J1GND, J2GND, ALL_GND) to minimize noise and ensure signal integrity. Proper grounding is essential for preventing ground loops and reducing electromagnetic interference, which can affect the accuracy of analog readings and the reliability of digital signals.

Reset circuitry, implemented via resistors R1/R2/R3/R4 and buttons B1–B4, allows for manual rebooting or entry into programming mode. This feature is useful for troubleshooting and updating the firmware on the Nano without requiring an external programmer.

The inclusion of filtering capacitors on analog lines and debouncing networks on buttons demonstrates attention to real-world signal integrity issues. These components help ensure that the analog and digital signals processed by the Nano are clean and reliable, even in electrically noisy environments.

Overall, this implementation leverages the Nano’s full suite of hardware resources—UART for communication, GPIO for input/output, ADC for sensing, timers for precision tasks, and robust power regulation—making it ideal for embedded control systems requiring both analog and digital interfacing capabilities. The design reflects a well-thought-out integration of the Nano’s internal hardware modules into a functional and expandable system.

Разбира се, ето подробен преглед на вътрешните хардуерни модули на микроконтролера ATmega328P, който е в основата на Arduino Nano, както е показано в схемата:

**Аналогово-цифров преобразувател (АЦП):**  
АЦП модулът е 10-битов, което означава, че преобразува аналогово напрежение в 1024 дискретни цифрови стойности (от 0 до 1023). В схемата пинове A0–A7 са свързани към потенциометри (RV1–RV4), които подават променливо напрежение към този модул. АЦП използва вътрешен референтен източник на напрежение (обикновено 5V, осигурени от регулатора 7805), за да определи стойността на входящия сигнал. Той поддържа различни режими на работа, включително непрекъснато преобразуване и режим на прекъсване, което позволява на процесора да обработва данните от сензорите, без да е необходимо постоянно да проверява състоянието на регистра.

**Универсален асинхронен приемо-предавател (UART):**  
UART модулът осигурява хардуерна серийна комуникация чрез пинове D0 (RX) и D1 (TX). В схемата тези пинове са изведени към конектора J1 с надпис „SERIAL PORT ONLY“, което показва, че са предназначени за комуникация с външни устройства или компютър. Този модул управлява цялата логика за кодиране и декодиране на данните, включително генерирането на стартов и стоп битове, както и проверка за четност. Чрез софтуерна настройка на регистрите на UART, потребителят може да контролира скоростта на предаване (baud rate), като по този начин се осигурява надеждна връзка с други микроконтролери или периферни устройства.

**Таймери:**  
ATmega328P разполага с три независими таймера, които са критични за работата на системата. Timer0 е 8-битов и се използва от ядрото на Arduino за функциите `millis()` и `delay()`, като осигурява базовото време за системата. Timer1 е 16-битов и предлага по-висока прецизност, често използван за генериране на точни честоти или за управление на серво мотори. Timer2 е 8-битов и е най-гъвкавият, тъй като може да се използва за генериране на ШИМ (широчинно-импулсна модулация) на пинове D3 и D11, както и за управление на звукови сигнали (tone). Тези таймери работят на базата на вътрешен осцилатор и могат да бъдат конфигурирани за различни честоти чрез делители.

**Портове за общо предназначение (GPIO):**  
GPIO модулът управлява 23 цифрови пина, които могат да бъдат програмирани индивидуално като вход или изход. В схемата виждаме използването на GPIO пинове D2, D3, D4 и D5, които са свързани с бутони (B1–B4). Вътрешно, всеки GPIO пин има регистър за посока (DDR), регистър за данни (PORT) и регистър за вход (PIN). Освен това, модулът поддържа вътрешни изтеглящи резистори (pull-up), които могат да се активират софтуерно, за да се гарантира стабилно логическо ниво, когато бутонът не е натиснат. В тази схема са добавени и външни резистори (R1–R4) за по-сигурно държане на нивото „земя“.

**Памет:**  
Процесорът разполага с 32KB Flash памет за програми, 2KB SRAM за променливи и 1KB EEPROM за запазване на данни при изключване на захранването. Регулаторът 7805 в схемата осигурява стабилни 5V, които са критични за правилното функциониране на вътрешните логически нива на тези модули, тъй като те работят в тесен диапазон на напрежение.

**Енергоспестяващи режими:**  
Вътрешната архитектура включва различни режими на сън (Sleep modes), които позволяват на процесора да спира част от своята логика, за да намали консумацията на ток, което е важно при работа от батерия.

Разбира се! Ето пълен преглед на дизайна на печатната платка (PCB), базиран на предоставената схема. Ще разгледам всички основни модули, компоненти и тяхното разположение, функционалност и дизайнерски решения.

---

## 🖥️ ОБЩ ПРЕГЛЕД НА PCB ПЛАТКАТА

Платката е проектирана като **разширителна платка (shield)** за Arduino Nano, която добавя допълнителни функции: аналогови входове, цифрови бутони, релейно управление, захранване с 12V/5V, USB интерфейс и много други. Тя е изработена в зелен цвят, с ясни маркировки и добре организирано разположение на компонентите.

---

## 🔌 МОДУЛ 1: ARDUINO NANO ИНТЕРФЕЙС (ЦЕНТРАЛЕН БЛОК)

- **Местоположение**: Горен ляв ъгъл.
- **Компоненти**:
  - Конектор J6 (2x8 pin header) — за директно свързване на Arduino Nano.
  - Диоди D1 и D11 (1N4007) — за защита от обратна полярност и изолиране на захранващите линии.
  - Кондензатор C17 (100nF) — декупиращ кондензатор за стабилност на захранването на Nano.
  - Маркировки: „USB_INPUT_JACK“, „ARDUINO_NANO“, „RX/TX“, „RESET“, „VIN+5V“ — показват функционалността на пиновете.
- **Функция**: Това е централният процесорен блок. Всички останали модули комуникират с него чрез тези пинове.

---

## ⚡ МОДУЛ 2: ЗАХРАНВАНЕ И РЕГУЛАТОР (7805)

- **Местоположение**: Централна част, до USB конектора.
- **Компоненти**:
  - Линейен регулатор **7805** — превръща +12V в стабилни +5V за Arduino и периферията.
  - Кондензатори C16 (470uF) и C14 (470uF) — филтриращи кондензатори за вход и изход на регулатора.
  - Кондензатори C17 (100nF) и C15 (100nF) — високочестотни декупиращи кондензатори.
  - Диод D10 (1N4007) — защита от обратна полярност на входа +12V.
  - LED индикатори D+12V и D+5V (LED-YELLOW) — визуална индикация за наличие на напрежение.
  - Резистори R18 (1k) и R5 (2k) — ограничават тока през LED-ите.
- **Функция**: Осигурява стабилно и чисто захранване за цялата система. Много важно за аналогови измервания и надеждна работа на релетата.

---

## 🔘 МОДУЛ 3: ЦИФРОВИ БУТОНИ (GPIO_D2–D5)

- **Местоположение**: Долна лява част.
- **Компоненти**:
  - 4 бутона: B1, B2, B3, B4 (червени квадратни).
  - Резистори R1–R4 (2kΩ) — pull-down резистори за дефиниране на логическо ниво при ненабутан бутон.
  - Кондензатори C18–C21 (100nF) — за дебаунсинг (премахване на механичен трептене при натискане).
  - Маркировки: „GPIO_D2“, „GPIO_D3“, „GPIO_D4“, „GPIO_D5“ — показват към кои пинове на Arduino са свързани.
- **Функция**: Позволяват на потребителя да подава цифрови сигнали към микроконтролера. Дебаунсингът гарантира, че всеки натискане се регистрира само веднъж.

---

## 🎛️ МОДУЛ 4: АНАЛОГОВИ ВХОДОВЕ (ADC A4–A7)

- **Местоположение**: Долна дясна част.
- **Компоненти**:
  - 4 потенциометра: RV1, RV2, RV3, RV4 (сини квадратни).
  - Кондензатори C1–C4 (100nF) — филтриращи кондензатори за намаляване на шума.
  - Резистори R14–R17 — вероятно за ограничаване на тока или като част от делител на напрежение.
  - Маркировки: „GPIO_A4“, „GPIO_A5“, „GPIO_A6“, „GPIO_A7“ — показват към кои аналогови пинове са свързани.
- **Функция**: Позволяват на микроконтролера да чете аналогови стойности (напр. от сензори или ръчни настройки). Филтрите подобряват точността на измерването.

---

## 🔁 МОДУЛ 5: РЕЛЕЙНО УПРАВЛЕНИЕ (RELAY VOLTAGE SELECTOR)

- **Местоположение**: Горна дясна част.
- **Компоненти**:
  - 4 релета: RL1, RL2, RL3, RL4 (бели правоъгълни).
  - Диоди D2–D5 (черни цилиндрични) — за защита от обратно напрежение при изключване на релетата.
  - Резистори R6–R9 — вероятно за ограничаване на тока към бобините на релетата.
  - Конектор CONN-SIL3 — за свързване на външно захранване (+12V/+5V) и товар.
  - Маркировки: „RELAY_POWER“, „+12V/+5V“ — показват захранващите линии.
- **Функция**: Позволяват на Arduino да управлява високонапреженни или високоамперни товари (напр. лампи, мотори, нагреватели). Релетата са изолирани от логическата част на платката.

---

## 🔌 МОДУЛ 6: СЕРИЕН ИНТЕРФЕЙС (UART)

- **Местоположение**: Лява страна, до Arduino Nano.
- **Компоненти**:
  - Конектор J1 (CONN-SIL4) — за свързване на външни устройства.
  - Маркировки: „ARDU_19“, „ARDU_20“, „ARDU_21“, „ARDU_22“ — вероятно са свързани с D0/D1 (RX/TX) или други пинове.
  - Надпис „SERIAL PORT ONLY“ — показва, че този конектор е предназначен само за серийна комуникация.
- **Функция**: Позволява комуникация с компютър, GPS модул, Bluetooth модул или други микроконтролери чрез UART протокол.

---

## 🧲 МОДУЛ 7: ЗЕМНИ И ЗАХРАНВАЩИ КОНЕКТОРИ

- **Местоположение**: Лява и дясна страна.
- **Компоненти**:
  - J1GND, J2GND — земни точки за свързване на външни устройства.
  - J1+5V, J2+5V — изходи за +5V захранване.
  - TBLOCK-M2 — терминален блок за свързване на външно +12V захранване.
- **Функция**: Осигуряват безопасни и стабилни точки за захранване и заземяване на външни устройства.

---

## 📐 МОДУЛ 8: МАРКИРОВКИ И ИНДИКАТОРИ

- **Местоположение**: По цялата платка.
- **Компоненти**:
  - Жълти текстове: „DIGIT13“, „A0_ADC“, „+3V3OUT“, „RESET“ — показват функционалността на пиновете.
  - Зелени конектори: CONN-SIL3, CONN-SIL4, CONN-SIL7, CONN-SIL8 — за свързване на външни модули.
  - Маркировка „WWW.KARADEV.NET“ — производител или дизайнер на платката.
- **Функция**: Подпомагат монтаж, диагностика и използване на платката.

---

## 🧩 ДОПЪЛНИТЕЛНИ МОДУЛИ

- **LED индикатори**: D+12V и D+5V — показват дали захранването е активно.
- **Кондензатори C6–C11**: Вероятно са свързани с релетата или аналоговите входове за филтриране.
- **Резистори R10–R13**: Вероятно са част от веригите на релетата или бутовете.

---

## ✅ ЗАКЛЮЧЕНИЕ

Тази PCB платка е **многофункционален разширителен модул** за Arduino Nano, който добавя:

- 4 аналогови входа (с филтри)
- 4 цифрови бутона (с дебаунсинг)
- 4 релета (за управление на високонапрежени товари)
- Стабилно захранване (12V → 5V)
- Серийна комуникация
- Множество изходи за захранване и земя

Дизайнът е **добре организиран**, с ясни маркировки и подходящи защитни елементи (диоди, кондензатори, резистори). Подходящ е за образователни цели, прототипиране или индустриални приложения, където се изисква взаимодействие с аналогови и цифрови сигнали, както и управление на външни устройства.