Я строю небольшой регулятор полива для одного из моих больших комнатных растений.
Это мой первый настоящий проект по электронике вне школы. Хотя я изучал EE в университете и занимался базовой теорией компонентов и фильтров; Я изучал почти исключительно цифровую электронику. Так что дизайн печатной платы и схемы смешанных сигналов для меня в новинку.
Влажность измеряется с помощью резистивного делителя напряжения, где почва рассматривается как резисторы. Температура измеряется с помощью термистора. А перелив будет определяться большими электродами в водосборном лотке под кастрюлей, если вода когда-нибудь попадет туда, они замкнут.
Насос будет управляться реле 5 В с сопротивлением катушки 125 Ом (40 мА, 200 мВт). Датчик уровня воды представляет собой плавающее кольцо, которое приводит в действие микропереключатель, когда уровень становится слишком низким. Микропереключатель нормально разомкнут и при замыкании замыкается на землю. Внутренняя подтяжка вывода INT1 будет поддерживать высокий уровень сигнала, когда переключатель разомкнут. Обработчик IRQ для INT1 выполнит устранение дребезга.
У меня есть два основных разъема: P2, который идет к горшку и содержит датчики перелива, температуры и влажности, и P1, который идет к насосу и имеет датчик уровня воды.
Я еще не уверен в значениях резисторов для светодиодов, они рассчитаны для максимальной яркости из спецификаций, но я могу уменьшить яркость в зависимости от того, насколько она яркая. Я действительно понятия не имею,. Я отрегулирую это, когда все будет в моих руках.
Я попытался оценить потребляемую мощность от регулятора, и я должен быть в пределах допусков, чтобы не нуждаться в радиаторе даже при максимальной тяге. Однако, как правило, микроконтроллер прощупывает почву и, если она слишком сухая (каждые 4-5 дней), поливает ее. Затем он вернется в спящий режим на 4 часа. Таким образом, время включения действительно короткое, около 20 секунд, когда он фактически запускает помпу, по сравнению с 4 часами сна.
MIC94090 ( техническое описание ) представляет собой переключатель нагрузки с высокой боковой нагрузкой с максимальным непрерывным током 1,2 А. Нужен ли мне диод свободного хода с этой микросхемой?
Должен ли я добавить маленькую заглавную букву от LEVEL_ALERT
до GND
? Я не уверен насчет D2, нужен ли он мне? Это вредно?
C1 добавлен, потому что меня беспокоит падение напряжения при включении насоса. Я не уверен, как рассчитать падение, или если это вообще что-то, поэтому я был бы признателен за некоторые рекомендации по этому поводу. D1 — это изолирующий диод, который пытается предотвратить падение напряжения (если оно есть) на стабилизаторе.
Я считаю, что внутреннего RC-генератора, разделенного до 1 МГц, будет достаточно для моего приложения. 10 минут в ту или иную сторону не убьют растение.
Микро будет запускать PID для управления продолжительностью работы насоса в зависимости от того, как часто он должен поливать. Он также будет выполнять запись низкочастотных данных в EEPROM, которые можно прочитать с UART. Я посчитаю, чтобы не превысить количество циклов записи в своей жизни.
Я еще не закупил все компоненты и не решил, какой насос буду использовать.
Я размещу это на двухсторонней печатной плате с медным слоем 1 унция / фут (35 мкм). Я нацелился на SeeedStudio для производства моей печатной платы, поэтому я использую правило 6/6 и заплачу за паяльную маску 0,12 мм.
Меня беспокоит пайка микроконтроллера, судя по его внешнему виду, даже у маски для припоя толщиной 0,12 мм практически не будет маски между контактными площадками. Будет ли это проблемой?
Я нашел так много разной информации о том, как компоновать печатную плату со смешанными сигналами, звездообразное заземление, заземляющую плоскость, разделенную заземляющую плоскость, и, по правде говоря, я до сих пор не уверен, какой способ лучше. Основываясь на документах, которые я нашел, я выбрал твердую заземляющую пластину и разделил маршрутизацию аналоговых и цифровых сигналов. Является ли это предпочтительным подходом?
Хотя аналоговая производительность важна, скорость не так важна, поэтому я могу использовать длительное время выборки для борьбы с шумом. Я также использую «режим с низким уровнем шума» на ATmega, когда я переводю микро в режим энергосбережения во время преобразования АЦП, что в основном останавливает все, кроме часов АЦП и таймера 2, которые являются моими «настенными» часами. Таким образом, аналоговые и цифровые сигналы программно исключают друг друга.
Я изо всех сил старался избегать токовых петель, но должен сказать, что не совсем уверен, как «видеть» токовые петли и что представляет собой «патч-антенна», о которой я видел несколько раз.
На плате 3 секции, слева "высокая мощность", реле и разъем насоса, возможно, до 5А при индуктивной нагрузке. Средний — питание 5 В и цифровой, а правый — аналоговый. Обратите внимание, что цифровые провода находятся на аналоговой стороне, но программно они молчат, когда АЦП измеряет.
Печатная плата будет помещена в напечатанный на 3D-принтере корпус и прикреплена к боковой части ящика для сеялки так, чтобы P2 (с зондами, уходящим в почву) был направлен вверх, а P1 (насос и уровень воды) — вниз.
Меня беспокоит маршрутизация ~LEVEL_ALERT
сигнала, я не мог организовать схему, при которой я мог бы получить достойную маршрутизацию для него. Я также обеспокоен тем, что возможный большой ток в проводах 3 и 4 P1 может индуцировать ток в ~LEVEL_ALERT
проводе, идущем параллельно им, что ошибочно приводит к остановке насоса микроконтроллером.
Я старался изо всех сил, чтобы сделать достойную работу как над схематическим дизайном, так и над компоновкой. Ребята, вы верите, что это сработает так, как задумано?
Кажется, вы далеко ушли от своих первых мыслей об этом проекте.
Вы приложили огромные усилия, и я не вижу причин, по которым это не сработает. Но у меня есть некоторые комментарии:
Вы выбрали Atmeg168-20AU, но, похоже, используете внутренние часы RC с внешним ICSP для программирования. Зачем вам использовать микро за 3 доллара, когда вы можете купить целую плату ( Arduino Nano ) со встроенной поддержкой загрузчика и ICSP. (контроллер с низким энергопотреблением, больше флэш-памяти, больше ОЗУ, регулятор мощности, последовательный интерфейс USB, светодиоды и переключатель сброса) решение примерно за 3 доллара на Ebay. Вам не нужно использовать среду Arduino для его программирования, вы можете перезаписать загрузчик, так что никаких недостатков не будет. Тогда сложность печатной платы будет значительно уменьшена без потери функциональности или выбора для проекта.
Ваши сигналы Level Alarm и Moist представляют собой необработанные контакты ввода-вывода, снятые с платы. Я всегда против переноса незащищенных контактов ввода-вывода с платы в проводку, всегда есть риск, что короткое замыкание может вывести из строя вашу структуру ввода-вывода или контроллер. В этом случае ваш разъем имеет как необработанный вывод ввода-вывода, так и 12 В для сигнализации уровня.
D3 не обязательно должен быть Шоттки. D2 не является насосом Шоттки и, по всей вероятности, вообще не требуется (при условии, что ваш насос относится к погружному типу BLDC).
LEVEL_ALERT
. LEVEL_ALERT
представляет собой высокоимпедансный вход микроконтроллера. Я думаю, что мне придется добавить какой-нибудь предохранитель.
Ян Блэнд
Эмили Л.
Ян Блэнд
Андрей
Эмили Л.