Например TDA7294

РадиоКот > Лаборатория > Цифровые устройства

Ремонт самоочищаюсегося лотка LitterMaid Mega.

Автор - Сергей Безруков.
Опубликовано 11.03.2010.

В течении нескольких последних лет мы использовали для ухода за нашим котом самоочищающийся лоток фирмы LitterMaid. Хотя это устройство и нельзя назвать идеальным, но работало оно исправно и заметно облегчало нам жизнь. В общем, мы были им вполне довольны. И вот в один прекрасный день после очередной влажной чистки работать оно перестало.

На фотографии показан наш лоток. Это модель старого образца. Новые модели оснащены дополнительными функциями, такими как часы реального времени, позволяющие не производить чистку в ночное время и ионизатор воздуха, ослабляющий неприятный запах (и затрудняющими ремонт).
Вскрытие корпуса устройства и исследование печатной платы привело к принципиальной схеме лотка, показанной ниже. Нумерация деталей на схеме соответствует указанной на плате. Оказалось, что вышли из строя транзисторы TR6 и TR7 и микроконтроллер, т.к. сигналы на его выводах не менялись не при каких условиях. Точнее, работал лишь встроенный в микроконтроллер кварцевый генератор. Ситуация усугублялась еще и тем, что я так и не смог идентифицировать микроконтроллер. Кроме того, программы для загрузки в микроконтроллер фирма-изготовитель, конечно, не предоставляет, да и программатора для такого микроконтроллера у меня нет.

Покупать новый лоток не хотелось из-за его немалой цены, к тому-же если в доме полно радиодеталей. Короче, решено было заменить микроконтроллер на более мне доступный, например из серии PIC16F фирмы Microchip, и переписать алгоритм его работы. Проект этот увенчался успехом, и я хочу поделиться своим опытом, в надежде, что он окажется полезным другим обладателям таких лотков.

Описание оригинальной принципиальной схемы

Прежде чем чинить любое устройство полезно понять как оно работает. Как видно из фотографий, лоток снабжен гребенкой, которая движется от задней (слева на фото) стенки к передней (справа на фото) и прочесывает песок, сгребая отходы в пластиковый контейнер, расположенный в отсеке под крышкой в передней части устройства. Двигаться гребенка начинает примерно через 10 минут после того как кот покинул лоток. Для проверки наличия кота в лотке используется инфракрасный светодиод LED1, управляемый транзистором TR1, на базу которого поступают прямоугольные импульсы с вывода 7 микроконтроллера частотой около 10 кгц и скважностью близкой к 50%. Излучение светодиода регистрируется фотоприемником RX, в качестве которого использован такой-же инфракрасный светодиод. Сигналы с фотоприемника усиливаются транзисторами TR3-TR5 и поступают на пиковый детектор уровня D6, R18, C9. При отсутствии препятствий между излучателем и приемником на выводе 10 микроконтроллера формируется постоянное напряжение порядка 4.5 В. Прерывание светового потока приводит, соответственно, к установке нулевого уровня на этом выводе.
Для управления движением гребенки используются транзисторы TR8 - TR11, включенные по мостовой схеме. Транзисторы TR6 и TR7 являются усилителями тока для транзисторов моста. В состоянии покоя напряжение на выводах 13 и 14 микроконтроллера близко к 0 и транзисторы TR6 - TR11 закрыты. Для перемещения гребенки вперед вывод 13 микроконтроллера переxодит в высоко-импедансное состояние, в результате чего током через R28 открывается транзистор TR6 и вслед за ним транзисторы TR9 и TR10 моста. Для перемещения гребенки назад в исходное положение следует открыть транзисторы TR7, TR8, TR11 путем перевода в высокоимпедансное состояние вывода 14 микроконтроллера. При этом направление вращения мотора изменяется на противоположное.
Конец рабочего хода гребенки регистрируется с помощью двух пар кнопок End (для положения впереди лотка) и Home (для исходного положения сзади), расположенных в правой и левой стенках корпуса. По достижении положения End гребенкой размыкается одна из соответствующих кнопок и напряжение на выводе 4 микроконтроллера меняется скачком от 0 до 5 В. По возвращении гребенки в исходное положение замыкаются обе кнопки Home и напряжение на выводе 5 микроконтроллера падает с 4.4 В до 0.
Довольно мощный мотор гребенки снабжен редуктором, в результате чего я с трудом могу остановить ее в режиме рабочего хода. Тем не менее, при удалении значительных по величине или весу отходов мощности иногда не хватает. При этом ток через мотор и, соответственно, транзисторы моста существенно возрастает, что может привести к выходу их из строя. Для защиты элементов моста применено оригинальное схемное решение на базе регулятора напряжения IC4 типа LM317. Так как регулируемый вход этой микросхемы соединен с общим проводом, напряжение на выходе регулятора практически повторяет входное (разница не превышет 1-2 B). При увеличении тока через мотор соответственно увеличивается ток через нагрузочный резистор R28 регулятора. Напомним, что LM317 снабжена ограничителем выходного тока на уровне порядка 1 - 1.5 A (в зависимости от изготовителя), чем и обеспечивается защита элементов схемы.


Помимо этого, возрастание тока через мотор и, соответственно, напряжения на резисторе R28 регистрируется компаратором IC2a. При возрастании тока свыше 0.7 А выходное напряжение компаратора возрастает с 0 до 5 В. Фильтр R29, C11 предотвращает ложные срабатывания компаратора из-за кратковременного (менее 70 мсек) повышения потребляемого мотором тока при транспортировке отходов. Помимо этого, при перемещении каретки в исходное положение замыкание контактов кнопки S2 рычагом, расположенным в задней части каретки, приводит к ее останову. Этим обеспечивается защита животнык, ненароком оказавшихся в лотке, от придавливания их к задней стенке лотка. При прямом ходе каретки этот рычаг не влияет на ее перемещение, что обеспечивается диодом D7, шунтирующим мотор лишь при определенной полярности приложенного к нему напряжения, определяемого направлением его вращения.
Питание схемы производится от выпрямителя D1 - D5 и стабилизатора IC1 типа 7805. Так как устройство может работать и от восьми батарей, в схеме предусмотрен контроль их напряжения. При разряде батарей до 8.5 В (около 1 В на каждый элемент батареи) напряжение на входе 6 компаратора IC2 становится ниже 2.5 В, в результате чего выходное напряжение IC2 повышается с 0 до 5 В. Изменение напряжений на выходах обоих компараторов регистрируется микроконтроллером и используется для управления гребенкой (см. ниже).
Включение устройства производится выключателем S1. Его нижние по схеме контакты коммутируют входное напряжение, а верхние, вероятно, задействованы для системы сброса примененного микроконтроллера. Для обеспечения точных временных интервалов частота тактового генератора микроконтроллера стабилизирована резонаторов Q1. Элементы C6, C7, и R6 служат для обеспечения нормального режима работы герератора микроконтроллера.

Изменения схемы при ремонте

Как отмечалось выше, из-за отсутствия оригинального микроконтроллера я решил использовать PIC16F684. Последний имеет лишь 14 выводов (по сравнению с 16 у оригинального) и не совпадает по цоколевке с оригинальным.
Поэтому PIC был установлен на вспомогательной печатной плате размером около 2x3 см, обеспечивающей нужную разводку. Вспомогательная плата имеет 16 контактных площадок, которые соединяются с соответствующими площадками под оригинальный микроконтроллер на основной плате медным луженым проводом диаметром около 0.3мм (сам оригинальный микроконтроллер, конечно, следует удалить). Так как PIC16F имеет встроенный RC-генератор, частота которого достаточно стабильна, элементы оригинальчого кварцевого генератора (Q1, C6, C7, R6) не используются. Кроме того я не задействовал систему сброса R1 - C5. Как видно из модифицированной схемы, выводы 12 и 13 микроконтроллера используются исключительно для его внутрисхемного программирования через разъем на вспомогательной плате. Кстати, при программировании оказалось, что мой самодельный программатор не обладает достаточной мощностью для питания всей схемы в процессе программирования. Поэтому я разорвал провод, соединяющий питание по цепи 5 В вспомогательную плату и мой программатотор. При этом при программировании на плату лотка должно быть подано номинальное напряжение питания.
Последнее изменение связано с резистором R7. Он был отсоединен от базы транзистора TR1 путем перерезания соответствующей контактной дорожки на плате. Вместо него в разрез печатной дорожки соединяющей базу TR1 с микроконтроллером впаян токоограничительный резистор R0 того-же номинала. Я использовал резистор для поверхностного монтажа в корпусе 0603 (можно применить и обычный резистор для сквозного монтажа). Это изменение продиктовано стремлением управлять инфракрасным светодиодом через канал PWM микроконтроллера.

Вспомогательная плата с PIC16F684:

Вспомогательная плата с PIC16F684

Установка вспомогательной платы на основную:

Установка вспомогательной платы на основную

Ниже показан эскиз вспомогательной печатной платы со стороны установки деталей. Печатные дорожки находятся на нижней стороне платы.

Алгоритм работы и программа микроконтроллера

Я не могу гарантировать, что приведенный здесь алгоритм в точности совпадает с оригинальным по причине отсутствия у меня такового. Тем не менее, я пытался как можно более точно иммитировать оригинальный, опираясь на здравый смысл.
Программа реализована в виде конечного автомата с 5 состояниями. Одно из них является начальным, используемом только в момент включения питания схемы. Другое состояние является конечным, в которое микроконтроллер переводится при наличии факторов, мешающих нормальной работе устройства. Примерами таких факторов служат падение напряжения батарей ниже 8.5 В или непреодолимое препятствие на пути следования гребенки. Выход из конечного состояния возможен лишь после удаления причины отказа путем кратковременного отключения питания. Оставшиеся 3 состояния соответствуют режимам ожидания животного в лотке, движению гребенки вперед для удаления отходов, и возврат ее в исходное положение.
Содержательно, работа устройства в основном состоит из ожидания животного в лотке и активизации гребенки через 10 минут после того как оно покинет лоток. Гребенке дается 3 попытки очистить лоток. После каждой неудачной попытки в режиме прямого хода (наличие слишком тяжелых предметов в лотке) гребенка возвращается в исходное положение и после секундной задержки процесс очистки повторяется. После 3 неудачных попыток устройство "сдается" и сигнализирует о провале миссии миганием светодиода LED1 (при нормальной работе он светит постоянно). Если непреодолимое препятствие обнаружено при возврате гребенки в первоначальное состояние (чего по-идее быть не должно), устройство сдается сразу. Во всех состояниях производится мониторинг напряжения питания. При падении его ниже допустимого уровня устройство также входит в конечное состояние. Ниже приводится описание всех состояний и переходов между ними.
Состояние 0: инициализация устройства. Это начальное состояние, в котором производится инициализация регистров микроконтроллера, таймера TMR1 (служит для организации регулярных прерываний и измерению временных интервалов) и системы PWM (для управления инфракрасным излучателем). После этого программа переходит в состояние 2, производя пробную очистку лотка. Таким образом, можно проверить работоспособность системы сразу по-включении.
Состояние 1: ожидание животного в лотке. Как показали эксперименты с работающим заводским устройством у соседей, прямоугольные импульсы управления инфракрасным светодиодом LED1 вырабатываются микроконтроллером постоянно. Это приводит к рассеиванию порядка 0.4 Вт на стабилизаторе напряжения IC1 (при напряжении на входе 18 В). Так как он не снабжен радиатором, прикоснутся к нему невозможно, xотя отказов и не наблюдается. Я решил устранить этот недостаток путем проверки нахождения животного в лотке с периодичностью в 2 сек (практика показала, что этого вполне достаточно). Эти временные интервалы вырабатываются таймером TMR1 микроконтроллера, работающего от его тактового генератора (1 мгц) с делителем частоты на входе 1:8. Таким образом, таймер переполняется каждые 2 секуды и вызывает прерывание. Обработка прерывания состоит в подаче импульсов на светодиод в течении 1 миллисекунды и проверке состояния входа RC2. Этим полностью устранен какой-либо ощутимый нагрев стабилизатора IC1.
Падение напряжения на входе RC2 микроконтроллера с 4.5 В до 0 в момент прерывания инфракрасного луча свидетельствует о нахождении животного в лотке. При этом производится повторная проверка через 10 секунд. Если прерывание луча не подтверждается, устройство переходит в первоначальный режим ожидания. Это сделано с целью предотвращения чистки лотка кареткой из-за кратковременных прерываний луча (возникающих, например при его ручной чистке). Маловероятно, что животное завершит свои дела в лотке за 10 секунд. При подтверждении занятости лотка начинается 10-минутное ожидание выхода животного из лотка. Если по истечении этого времени оно еще там, производятся повторные проверки с периодичностью 1 мин до тех пор, пока не будет отмечено отсутствие животного. После этого обнуляется счетчик числа попыток очистки и происходит переход в состяние 2.
Состояние 2: очистка лотка перемещением гребенки вперед. В этом состоянии запрещаются прерывания от таймера и проверка животного в лотке инфракрасным датчиком не производится. Увеличивается на единицу счетчик числа попыток. Если гребенка не в конечном состоянии (анализ напряжения на входе RА4) то производится включение мотора для движения вперед. При этом периодически проверяется состояние кнопок End и напряжение на выходах компараторов IC2. При появлении сигнала логической единицы на входе RC1 (низкое напряжение питания), происходит переход в конечное состояние 4. При появлении сигнала логической единицы на входе RC0 (непреодолимое препятствие), производистя переход в состояние 3 (движение назад) после 1-секундной задержки. При размыкании одной из кнопок End, обнуляется счетчик числа попыток (миссия завершена) и после 3-секундного ожидания падения всех отходов в контейнер происходит переход в состояние 3. При доработке программы оказалось, что целесообразно поставить счетчик числа проверок разомкнутого состояния кнопок и ожидать не менее 100 успешных проверок. Иначе иногда гребенка прекращала движение вперед без видимых причин в середине рабочего хода и поворачивала обратно. Дело вероятно в вибрациях корпуса лотка при движении гребенки, иногда приводящее к ложному срабатыванию кнопок.
Состояние 3: возврат гребенки в исходное положение. Это состояние аналогично состоянию 2. Мотор гребенки включается на движение назад и периодически проверяется состояние кнопок Home и напряжение на выходах компараторов IC2. При появлении сигнала логической единицы на входах RC1 или RC0 (соответственно, низкое напряжение питания или непреодолимое препятствие) происходит переход в конечное состояние 4. При замыкании одной из кнопок Home проверяется состояние счетчика числа попыток. При ненулевом его значении происходит переход в состояние 2 и процесс очистки повторяется. В противном случае переходим в состояние 1. Также как и в состоянии 1 имеется счетчик числа замыканий кнопок Home.
Состояние 4: конечное состояние для индикации неработоспособности устройства. Выход из этого состояния возможен лишь при кратковременном отключении питания схемы. В этом состоянии также запрещаются прерывания от таймера и производится периодическое мигание светодиода LED2, сигнализирующее о проблеме.
Программа написана на языке ассемблера и предназначена для компиляции в среде MPLAB.

Файлы:
Печатная плата в формате EAGLE.
Прошивка МК с исходником.

Вопросы, как обычно, складываем тут.


ID: 579

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

9