Я узнал о ПИК микроконтроллере в течение определенного периода времени и обладаю достаточным количеством знаний о работе с цифровой электроникой. Я работал над базовыми электронными проектами, и теперь мне нужно работать над некоторыми коммерческими приложениями.
Мой вопрос о том, как спроектировать и построить надежные и долговечные схемы. Я построил схему автоматического контроллера освещения, которая принимает входной сигнал от LDR и отображает значение аналогового показания на семисегментной панели. Затем он делает некоторые вычисления и управляет светом через реле. Эта схема должна быть включена постоянно (24 часа в сутки). Первые несколько месяцев схема работала отлично, но примерно через 6 месяцев она начала работать со сбоями. Он отображал бессмысленные вещи на 7-сегментном дисплее (он показывал только части цифр), затем он зажигал лампочку на светодиодном индикаторе, но не включал реле. Это не ожидаемое поведение. Дело в том, что так будет не всегда. Иногда это работает отлично. Затем он снова начинает работать со сбоями. Нет точного порядка, в котором это работает.
Теперь мой вопрос: почему эти схемы ведут себя так? Я предполагаю, что это может быть потому, что он работает весь день без каких-либо интервалов. Это приложение должно работать весь день. Я использую PIC, потому что я знаю только о рис. Atmal более надежен, чем рис? (Я спросил, потому что atmal используется в большинстве приложений автоматизации, чаще, чем рис.) Мне нужен совет эксперта в области цифровой электроники. Как строится этот вид промышленного применения? Есть ли особые правила, которым нужно следовать? Как спроектировать более надежные схемы? Любые советы или рекомендации от эксперта будут высоко оценены. Спасибо...
РЕДАКТИРОВАТЬ
Как предлагается в ответах, я отредактирую свой ответ, предоставив дополнительные ресурсы, чтобы помочь выявить ошибки в дизайне.
Ниже приведено изображение, описывающее, как выглядит схема после того, как она была построена. Это 12В трансформатор с центральным отводом, который подает питание на цепь. Он выпрямляется с помощью полуволнового выпрямителя, а затем регулируется с помощью микросхемы 7805.
Ниже приведен схематический дизайн.
Если потребуется какая-либо дополнительная информация, я предоставлю все необходимое. Если программа нужна, я ее добавлю. Программа несколько длинная. Использует прерывания.
источник
Ответы:
Прежде чем начать думать о переключении, убедитесь, что у вас есть хороший твердый дизайн. Вы должны начать думать обо всех возможных проблемах в дизайне. Хороший способ сделать это - перестать думать о микропроцессоре как о «волшебном ящике», в который вы помещаете код и выполняете то, что вам говорят, и начинаете думать о том, как он функционирует, на уровне шлюза и на уровне системы. Вы должны держать свой микропроцессор счастливым.
Что вам действительно нужно сделать, это найти механизм отказа, вам нужно знать, почему он выходит из строя. Как только вы знаете, почему это не помогает, вы можете решить проблему. Если вы не можете найти это, то вам придется сделать свой дизайн непобедимым, чтобы предотвратить возникновение каких-либо проблем. Если вы этого не сделаете, вы можете переключить микропроцессоры и все еще иметь те же проблемы. Если вы хотите переключиться, ST создаст несколько великолепных микропроцессоров, которые больше подходят для промышленного применения.
источник
Так как вы не говорите, я задаю вопрос, как физически построена проблемная схема - поскольку это звучит ТОЛЬКО как тип проблемы, которая обычно наблюдается, когда кто-то, кто не паяет, строит схему на временном макете «push to connect» и оставляет это на несколько месяцев.
Если это похоже на ваш случай, есть ваша проблема; в противном случае я все еще подозреваю плохие связи, но это становится проблемой "навыка пайки" больше, чем проблемой "неспособности паять что-либо".
источник
У вас нет развязывающего конденсатора на питании PIC, но на такой маленькой плате вам, вероятно, это сойдет с рук. Возможно, вы также захотите добавить защиту от затемнения, чтобы PIC сбрасывался, если напряжение падает ниже порогового значения.
Но я бы посмотрел на твой код.
Для начала, вы должны включить сторожевой таймер на микро. Если код перестает работать правильно, сторожевой таймер перезапустит его.
Скорее всего, вы только что где-то обнаружили ошибку. Как инженер по встроенному программному обеспечению, я предполагаю, что это связано с прерываниями, потому что именно здесь новички чаще всего делают ошибки. Тем не менее, как новичок, в коде можно сделать множество ошибок, так что это только первое место, на которое я посмотрю. (Не обижайтесь - я сам сделал много таких ошибок, в том числе и тогда, когда мне действительно следовало бы знать лучше. ;-)
источник
Я согласен с комментариями, что вам нужен хороший толстый конденсатор по обе стороны от 7805. Особенно с реле там. Я ожидаю, что это коренная проблема. Я бы также добавил развязывающий конденсатор в линии питания PIC.
Я бы тоже искал сухие суставы.
Я бы также тщательно проверил свою программу и использовал все средства наблюдения.
Но вот пара интересных моментов из вашего вопроса:
Я буду пытаться понять, что случилось. PIC, например, разбился?
Теперь, если я правильно прочитал вашу схему, то для того, чтобы каждый из 7 сегментов отображал что- то , а что-то другое и постоянное по крайней мере на двух из них, тогда каждый из Q1, Q2 и Q3 должен быть все еще повернут последовательно, и выходы на сегменты должны быть правильными. Это скажет мне, что ваш PIC все еще выполняет хотя бы часть своего кода, но каким-то образом вывод цифр был зашифрован. Например, возможно, ему дали не цифру 0-9 для отображения, а цифру 17 или аналогичную (для которой она получает раскладку цифр из случайного места в памяти).
Ты говоришь:
Если посмотреть на схему, то, если выход PIC не пульсирующий или что-то в этом роде (не невозможно, так как это также выходной порт таймера), это может быть либо электрическим отказом (например, сухим соединением), либо проблемой блока питания (см. Выше конденсаторы) или транзистор Q4 (возможно) не полностью насыщен. Я не читал спецификацию PIC, но максимальная I C BC547 составляет 100 мА (надеюсь, этого достаточно, чтобы управлять вашим реле и светодиодом), а hFE 120 на таком уровне, поэтому вам потребуется около 1 мА. в. 10к, следовательно, может быть немного больше. Я мог бы попробовать 3k3.
Кроме того, у вас нет полезных средств отладки. Поскольку ваш дисплей постоянно включен, возможно, вы можете заставить точку последней десятичной точки мигать один раз в секунду (или аналогично), чтобы показать, что все хорошо.
Если бы мне пришлось сделать дикий удар в темноте, я бы предположил, что, особенно когда реле включено, цепь потребляет значительный ток. Из-за отсутствия большого конденсатора на входной стороне 7805, когда переменное напряжение пересекает ноль, 7805 не будет обеспечивать никакого выходного тока (и может действительно истощать сам конденсатор) - из таблицы данных 7805 ' входное напряжение должно оставаться обычно на 2,0 В выше выходного напряжения даже во время низкой точки на входном пульсирующем напряжении » . Таким образом, напряжение на PIC будет снижено, возможно, достаточно, чтобы сломать его. Поместите область линии 5 В рядом с PIC, и если вы не видите ничего, кроме хорошей сплошной линии 5 В, вы знаете, что у вас есть проблема.
источник
Каждый раз, когда в микропроцессоре происходит нестабильное поведение, есть два основных источника проблемы. 1) отсутствующие или недостаточные «обходные» конденсаторы, 2) «плавающие» выводы микропроцессора.
У каждого «чипа» должна быть заглушка, прямо на контакте чипа, подключенном к Vcc (+ 5 В).
Любой неиспользуемый штифт должен быть привязан высоко или низко, но не должен оставаться «плавающим».
Я согласен, что вы не едете "достаточно трудно" Q4, я рекомендую 1K для R12.
источник