Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить

Вопрос по схеме фотореле на attiny13

Ср окт 04, 2017 06:37:25

Коллеги, приветствую!
Соорудил я фотореле, спаял, но работает оно не всегда так, как я хочу.

По задумке алгоритм работы такой:
1) на аналоговом входе attiny13 висит фоторезистор, подтянутый к земле резистором на 10 ком. При падении освещённости на нём увеличивается сопротивление, уменьшая показания analogRead(1)
2) на четвёртом пине через сопротивление 3 кома висит база мосфета. По команде с микроконтроллера на этот пин подаётся высокий уровень, который открывает транзистор.
3) в цепь коллектора включен одноваттный светодиод через lm317 в режиме регулятора тока. Транзистор открывается, ток начинает бежать, зажигается светодиод.

Что же происходит на самом деле?
Иногда всё работает именно так, как задумано. Закрываю фоторезистор - светодиод зажигается, горит нормально, ничего не греется, всё шикарно.
А иногда сразу при подаче питающего напряжения светодиод зажигается очень ярко, словно напрямую от БП. Если при этом на фоторезистор светить, то светодиод начинает гореть менее ярко - и чем меньше сопротивление фоторезистора (на него попадает больше света), тем менее ярко горит светодиод. Хотя такое поведение не заложено в микруху - там вообще всё, что есть, это:
if (analogRead(1) < 400)
{
digitalWrite (4, HIGH);
}

if (analogRead(1) > 500)
{
digitalWrite (4, LOW);
}
Периоды "нормальной" и "ненормальной" работы чередуются совершенно рандомно, но в "ненормальный" режим схема может войти из "нормального" в процессе работы, а наоборот - только через снятие питания. Пробовал два питания - один 12v импульсник, второй 3 батарейки АА - 4.5v. Никакой разницы нет, только что от батареек можно почти полностью погасить светодиод, подавая много света на фоторезистор, а от 12 вольт свечение просто уменьшается на какую-то величину.

Опытные товарищи, подскажите - где я действую неправильно?

Прикладываю схему. Уж простите за корявость изображения.
фотореле.jpg
(198.04 KiB) Скачиваний: 890

Re: Вопрос по схеме фотореле на attiny13

Ср окт 04, 2017 07:43:18

R9OCN писал(а):А иногда сразу при подаче питающего напряжения светодиод зажигается очень ярко, словно напрямую от БП.
С яркостью немного не понятно (может имеет место возбуждение LM317 :dont_know: ), а вот подтянуть выв.1 (Reset) к +5В. через резистор 4,7...10кОм. было бы не лишним. :roll:

Re: Вопрос по схеме фотореле на attiny13

Ср окт 04, 2017 08:40:07

1. Про подтяжку Reset полностью поддерживаю
2. В аномальном режиме снять карту напряжений в контрольных точках (питание, входы / выходы). И конечно, осциллограф не помешает.
3. Залить к контроллер программу, которая только гасит светодиод и останавливается. И повключать на предмет входа системы в аномальный режим.
4. Повесить на свободный пин светодиодик с резистором, и включить в программу его мигание, например. (Так можно узнать, что программа выполняется и ничего не зависло)

И да, всю программу бы увидеть неплохо.

Re: Вопрос по схеме фотореле на attiny13

Ср окт 04, 2017 13:02:30

korob, metan, спасибо!


0) LM-ку поменяю, их есть у меня. Может она с браком? Я её случайно подогрел как-то...

1) Ресет подтяну, это не проблема. Правда я никогда раньше это не делал, но для того, чтобы исключить в этом случае, сделаю.

2) Напряжения сниму. Полагаю, что надо проверить напряжение питания микрухи, базы транзистора, на входе и выходе lm-ки (но там, вроде, должно быть питающее?). Поменяю резистор 5 ом на регулировочной ноге lm-ки. Где ещё чего померить?

3) Попробую!

4) Да, отличная мысль! Я заливал программу, которая просто мигала этим ярким диодом и программа без проблем отработала с полчаса. Мне хотелось проверить - ничего ли не греется, нигде ли никаких косяков не вылезет. Надо сказать, что тогда платка питалась от программатора, напряжение подавалось только на 8 и 4 ногу атмеги (VCC и GND), однако светодиод почему-то горел! И вот мне интересно - а как напряжение попадало на вход lm-ки? Неужели, это возможно через стабилизатор??? Я ещё прицеплю к сообщению рисунок печатки, может быть я где чего развёл неправильно? Только прошу обратить внимание, что контроллер установлен головой вниз, а лишние контакты насверлены для заливки прошивки - в них ничего не воткнуто. Также относительно схемы я на печатке изменил ножку, к которой подключена база транзистора - так оказалось удобнее разводить.

Программа полностью:
void setup() {
pinMode(4, OUTPUT);
}

void loop() {
if (analogRead(1) < 400)
{
digitalWrite (4, HIGH);
}

if (analogRead(1) > 500)
{
digitalWrite (4, LOW);
}
}

Схема. Может быть свежими глазами будет проще увидеть проблему? Диод припаян в правом нижнем углу к большим таким контактам.
Изображение
Вложения
фотореле печатка.png
(41.16 KiB) Скачиваний: 722

Re: Вопрос по схеме фотореле на attiny13

Ср окт 04, 2017 13:54:32

Ну и кошмар...
Судя по тексту прожки весьма на ардуиновскую смахивает...
и то... только включить/выключить... плюс ошибки...
Только ардуина вроде ниже чем для тини45/85 не попадалась... и независимый файл для автономной заливки (без бутлоадера и самой IDE) не выполняет...
Уж как говорится - признание требуется на чем пишем и чем прошиваем...
:roll:

Re: Вопрос по схеме фотореле на attiny13

Ср окт 04, 2017 14:47:49

А чего бы и не сознаться? Секрета тут нету. Пишется в ардуино иде, ардуйной уно в качестве программатора прошивается.

Re: Вопрос по схеме фотореле на attiny13

Ср окт 04, 2017 15:02:16

Дык тогда принципиально работать не будет.
8)
Ардуине - ардуиново, а самостоятельную схемотехнику извольте или на АВРкином Си или под ассемблером писать!
Хотя бы в той же АВР студио.
:beer:
Где Вы там платку с аттини13 наблюдали?
А раз оной не указано, значит скетч делался для того типа платы(и установленного на ней МК) , которая во вкладке "инструменты" у Вас в IDE указана.
:wink:

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 06:16:48

korob, metan, вчера пришлось по работе мчаться в другой город за платой для принтера. Сломалась, собака, уже в третий раз :-(
Но вот сегодня утром начал промерять напряжения и обнаружил, что на контроллер ничего не подаётся. Перехватил плату по-другому - подаётся. Прозвонил землю - то есть, то нету. Хорошенько пропаял ещё разок, всё заработало как надо. Теперь буду наблюдать, надеюсь, что проблем не будет.

BOB51, простите, но Вас очень сложно понять. Точки, смайлики.
плюс ошибки...
- ошибки в схеме? Если не сложно, то подскажите, где - я в схемотехнике не силён, да и вообще радио - это моё хобби, а не работа. Я тут ни в чём не силён :-)
Или ошибки в программе? Мне кажется, что тут ошибаться даже негде. Но может быть, я чего-то не учёл?

Только ардуина вроде ниже чем для тини45/85 не попадалась... и независимый файл для автономной заливки (без бутлоадера и самой IDE) не выполняет...
Где Вы там платку с аттини13 наблюдали?
У меня не ардуина, а голый микроконтроллер attiny13. Я там приложил печатку, на ней всё видно.
Вот такой МК: Изображение

извольте или на АВРкином Си или под ассемблером писать

Я не умею, к сожалению. Научиться можно, но пока до сих пор не понадобилось. Ардуино иде полностью устраивает, для моих скромных нужд её хватает за глаза.

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 08:35:57

Имелось, что раз плат таких нет, то и ИДЕ их имеет право не поддерживать, а если в ИДЕ поставить не тот целевой контроллер (без разницы в арду он или самостоятельно), т.е. "обмануть" её то могут не совпасть и некоторые параметры (размеры памяти, адреса регистров) и если с размерами ещё может прокатит, то адреса - уже серьёзней: ИДЕ (и ты) думает что настраивает первый таймер, а в тиньке регистр с этим номером отвечает, например, за прерывания.

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 08:41:13

R9OCN
Если уж связался с ардуино - извольтес соблюдать правила работы с данной IDE.
Система скомпилирует работоспособный код исключительно для тех платок (не МК, а именно платок в сборе!), которые указанны в списках поддерживаемого оборудования (на установленной у Вас версии IDE).
Для иного применения ардуино IDE НЕ ПРЕДНАЗНАЧЕНО.
Есть еще возможность квалифицированному специалисту создать собственную плату-прототип с помощью дополнительного программного обеспечения - но тот вариант НЕ ДЛЯ НАЧИНАЮЩЕГО.
Как вариант для уже имевшего дело с самодельным творчеством - создание собственной платки своими силами (атмега8/168/328) на основе уже имеющихся в списках поддерживаемого модулей.
Просто влом покупать - спаял сам согласно имеющейся схемы.
НО... там и затраты времени и суммарный расход денюжки будет минимум "на паритете".
Судя по Вашей начальной подготовке эти два способа есть нереальные.
Посему покупаем минимально затратную ардуино нано (с USB портом на борту) и работаем с той платкой как с самостоятельным устройством ("черный ящик с выводами").
Для начала советую скачать и изучить материал по имеющейсяв этом посту ссылке:
viewtopic.php?p=3054159#p3054159
ну а потом ... на совместно пережевывание сюда:
viewtopic.php?p=3177870#p3177870
поскольку пока также в "стадии освоения" данной разновидности элементной базы...
:beer:

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 10:52:20

Имелось, что раз плат таких нет, то и ИДЕ их имеет право не поддерживать, а если в ИДЕ поставить не тот целевой контроллер (без разницы в арду он или самостоятельно), т.е. "обмануть" её то могут не совпасть и некоторые параметры (размеры памяти, адреса регистров) и если с размерами ещё может прокатит, то адреса - уже серьёзней: ИДЕ (и ты) думает что настраивает первый таймер, а в тиньке регистр с этим номером отвечает, например, за прерывания.


Не, ну я не настолько безголовый, чтобы выставить в настройках ide arfuino uno, а прошивать 13 тиню :-) Существует не один способ писать для аттини и прошивать их. Я пользовался, вероятнее всего, этим: https://geektimes.ru/post/254970/
Очень удобно и просто - не нужен программатор, можно оттачивать работу программы на ардуине, а потом переносить на тиню и всё будет работать так же, как работало на ардуине. Нужно только помнить о размере кода и о том, что в core13 реализованы не все функции ide. Однако их можно и обойти. Чем мне нравится тиня - так это размером, энергопотреблением и возможностью программирования из ардуины. Нам, начинающим дилетантам, это очень импонирует :-)
За последние пару лет я прошил не менее полсотни тинек, которые работают в составе разных устройств - выключателей света по звуку и движению, имитаторов сигнализации (работает автономно от 3 АА по году и более) и вот сейчас начну прошивать для этого фонарика.
Фонарик этот будет использоваться в подсветке адресных табличек, которые изготавливает моя контора, их тоже будет достаточно много.
Вот в таких табличках: Изображение
Сейчас мы ставим светодиодную лампу, которая включается либо от выключателя, либо от внешнего датчика света. Однако, этот способ имеет пару существенных недостатков - людям не очень нравится получать продукт, к которому нужно что-то докупать, но это не главное. Главное - это 220 вольт, подходящие к табличке, которая висит на улице, что не является безопасным!

R9OCN
Система скомпилирует работоспособный код исключительно для тех платок (не МК, а именно платок в сборе!),

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

Вот тут вот у меня есть немножко фоток. Качество фигня - в основном на телефон снимал.
Ламинатор, работает на атмеге 168:
Изображение
В нём вообще полностью заменена плата, изготовлена новая панель с экраном и индикацией, добавлены режимы - работа от пульта ДУ, звуковая сигнализация о нагреве, отсрочка выключения (их нельзя выключать сразу, нужно сгначала отключать нагрев и несколько минут погонять вхолостую).

Термометр, тоже на меге:
Изображение
к сожалению, не могу найти его фотографии в корпусе.

Фотозвукореле, на тиньке:
Изображение
Тут ещё первая версия, на готовых модулях реле. Потом я добавил реле прямо на плату. Стало надёжнее и компактнее.
Их было сделано много:
Изображение

Так что лично я не вижу ничего плохого в том, что я прошиваю микрухи из ардуины. Может всё это не по феншую, но работает стабильно.

Добавлено after 1 hour 12 minutes 44 seconds:
Снял кино про то, как работает фонарик. Прошу прощения за состояние платы - в поисках неисправности некоторые детали я выпаивал несколько раз.

https://youtu.be/AqLc2uQwjsg

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 11:31:16

atmega186 входит в состав поддерживаемых МК - и под вариантами arduino nano, pro micro, NG и многих других.
Может использоваться как в составе платок, так и самостоятельно (с излишними затратами на монтаж/изготовление).
По ресурсам к ней наиболее близко подходят атмега8 и аттини85 (обе должны присутствовать в расширенной версии).
То, что Вы указали - один из методов добавления в базовый набор платформы собственной разработки.
Как вариант возможно вполне работоспособный... Надо проверять однако...
:roll:
Однако для такого кристалла как ATtiny13 ставить бутлоадер и сверх него то, что компилятор IDE выложит...
Есть садомазохизм над автором проекта и садизм над МК (в отношении ресурсов МК и потребностей компилятора).
8)
И уж если такой опыт имеется - почему классические ошибки в тексте прожки?
:wink:

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 11:45:11

А зачем там бутлоадер-то? Я вообще сомневаюсь, что он туда влезет.
А что за ошибки? Коль подскажете, то не буду их совершать.

Добавлено after 8 minutes 59 seconds:
А ещё зафотал термометр, раз уж пошла такая пьянка.
Он получился довольно забавным, розовенький такой:

Изображение Изображение

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 12:24:29

Классическая структура у ардуинок - внутренний бутлоадер, запускаемый при включении питания (1-2 секунды).
А уже он (если в течении заданного времени обнаружил соответствующий запрос) загружает полученный программный код (ну и часть ресурсов "по умолчанию" для обеспечения функционала также отбирается).
Вероятность обхода такого решения вполне возможна... Однако для типового проекта не имеет особого значения (при ПЗУ в 8 килобайт и выше затраты в 1 килобайт не существенны, а кроссплатформенность подразумевает уход от приемов прямого управления аппаратной периферией).
Иное дело "прикладушки" - там каждый байт на счету. Ессно надо и схемотехникой владеть и ассемблер/Си для конкретного семейства на весьма хорошем уровне знать.
В принципе ардуина - модуль абстрактной обработки между прикладными устройствами и ПК/сетевыми приложениями.
Использование в устройствах реального времени непосредственно в режимах "примитивного дрыголапа" либо специфических программных трюков/тонкой работы с аппаратной периферией крайне нерационально.
Но тут уже кому чего интересно.
:tea:

Насчет ошибки - непривычное представление...
надо как-нибудь попробовать аналогию на своем макете...
:roll: ...

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 12:47:47

В тиньке всего один килобайт :-)

Нашёл в интернете фразу: "Но как быть если мы хотим использовать отдельно купленные контроллеры ATmega328 на плате Ардуино?
Для этого необходимо загрузить в контроллер загрузчик Arduino — Bootloader.."
Так я не собираюсь использовать контроллер на плате ардуино. Короче тут надо выяснять у взрослых, зачем и кому это надо. Мне как-то не требовалось.

Ресурсы тиньки? Ёлы-палы, нашли чего жалеть! Она стоит 16-17 рублей! Не каждый транзистор дешевле. Пуст себе сидит и замеряет напряжение. Поди не сильно устанет.


С ошибкой всё равно непонятно. Попробую сам подумать. Может быть Вы имеете в виду, что следовало использовать else для более удобного чтения программы? Типа:
Код:
if (analogRead(1) < 400)
{
digitalWrite (4, HIGH);
}
else
{
digitalWrite (4, LOW);
}


Но в таком случае в сумерках лампочка будет делать вкл-выкл много раз прежде, чем включиться или выключиться окончательно. Нужен, как говорят умные люди, гистерезис. Для меня проще два условия поставить и всё тут.
Если я правильно понял суть своей ошибки. Если нет, то тогда сдаюсь :-)

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 12:59:46

Я не слишком знаток нюансов Си... посему прямой контроль результата функции как-то настораживает...
Хотя...
Возможно и пройдет.
Помимо прочего начальный статус выходного сигнала не определен.
Все же цеплять МК всего-то ради "сумеречного выключателя" вида замкнут/разомкнут.... феее...
:dont_know:

Как я понял из статьи функционал начального загрузчика в случае с тинькой выполняет внешняя платка-эмулятор.
Вполне пригодно для потребления... Но привычнее таки старые-добрые методы.
:beer:

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 13:23:59

Я не слишком знаток нюансов Си... посему прямой контроль результата функции как-то настораживает...
Хотя...
Возможно и пройдет.
Помимо прочего начальный статус выходного сигнала не определен.
Все же цеплять МК всего-то ради "сумеречного выключателя" вида замкнут/разомкнут.... феее...
:dont_know:


1) частота работы тиньки в моём случае 1.2 мегагерца. Никакой разницы, в каком начальном состоянии находится выход, нет. Пусть он будет включен, пусть выключен. Транзистор не успеет открыться, лм-ка не успеет подать ток на светодиод, который не успеет зажечься, если на улице светло, а изначально выход в высоком состоянии.

2) да, поначалу я тоже так подумал. Поискал аналоговые схемы и понял несколько вещей. Аналоговые схемы зависят от напряжения. Будет напряжение пониже - лампочка будет включаться только в полной темноте. Побольше - подсветка включится днём. Значит, нам надо будет подавать стабилизированное напряжение на схему, а стабилизированный блок питания стоит в два-три раза дороже простого. Значит стабилизатор всё равно надо применять в схеме, т.е. цепь питания для микросхемы уже есть. А как мы будем делать так, чтобы транзистор открывался не потихоньку-помаленьку, а сразу? Ну вот как на видео, которое я снял - там светодиод просто ВКЛ-ВЫКЛ, без плавного включения. Это здесь без разницы - закрыл фоторезистор - загорелось, открыл - потухло. А в реальных условиях эксплуатации не будет такого. В сумерках он будет зажигаться потихоньку и только с наступлением темноты будет гореть в полную силу. Некрасиво. Опять усложнение схемы. А я же любитель, начинающий, я ничего сложного не умею - воткнул микруху за 17 рублей и пущай работает.

Ну вот такие аргументы, однако.

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 13:51:21

Я не слишком знаток нюансов Си... посему прямой контроль результата функции как-то настораживает...
Хотя...
Возможно и пройдет.

if (analogRead(1) < 400)
Этот, что ли? Если его компилял нормальный компилятор, то будет работать. Не знаю, что там в ардуинных IDE - настоящему коту допустимо связываться только с ардуинским железом, софт же он может писать только на нормальном языке, и никаких ардуинских сред и скетчупов. :)))

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 13:57:01

Вот ещё. Когда делал фотозвукореле, тоже думал - а чё бы не сделать аналоговую схему? И тоже столкнулся с довольно приличными проблемами. В частности не придумал, как сделать так, чтобы лампочка в подъезде включалась стабильно, без нужды громко топать ногами. Но вместе с тем прибор не должен щёлкать релюшкой бесконечно.
Пришёл к такому решению: тинька в приборе делает замеры звука каждые 10 миллисекунд и делает таких замеров 10 раз по 10 штук. Затем она находит среднее значение и сохраняет его в памяти. Хранятся результаты 10 таких циклов. Получается, то микросхема хранит в памяти состояние звукового фона вокруг себя за последние 10 секунд. Из него опять же находится среднее и принимается за эталон, с которым затем сравнивается состояние текущего замера. Т.е. самого первого замера - 10 раз по 10 миллисекунд. Если этот замер оказался в некоторое количество раз (задаётся переменным резистором) больше, чем среднее за 10 секунд измерений, то лампочка зажигается.

Экспериментировал с разными аналоговыми схемами, спрашивал у умных людей. В итоге всё равно получалось как в китайских релюшках - либо работают нормально, либо вообще не реагируют ни на что, либо моргают без конца. С тинькой всё стабильно и не зависит ни от напряжения, ни от громкости звука - главное, чтобы звук был громче, чем "тишина".

Re: Вопрос по схеме фотореле на attiny13

Чт окт 05, 2017 14:29:47

Схемы и решения разные бывают...
Так что "нестабильность питания" это вобщем весьма ... слабое основание для отказа от схемного решения.
Поскольку легко устраняется весьма большим количеством способов.
8)
Ответить