Attiny85 и прерывание.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Спасибо, Umka, буду UsbAsp-ом шить. 

Клапа, спасибо, про вонзать когда IDE скажет, я знаю, я так и делал, не грузится она, по таймауту выходит.  Видимо, загрущика всёже нет.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

5 из 20 Дигиспарков китайских были без загрузчика в крайней партии. Такие дела. Прошил Микронуклеус - взлетели все.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

у мня 5 из 5 не взлетели из недельной давности партии.  Ну да ладна, UsbAsp есть.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Лови плату переходника под 10-пиновый коннектор программатора https://goo.gl/zmH7Wf

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

спасибо.  Но я - проводочками через Uno as ISP

yray
Offline
Зарегистрирован: 08.01.2015

У меня последние Дигиспарки с загрузчиком но залоченным ресетом, в них можно както ваш скеч прошить или разлочить ресет из под загрузчика Дигиспарка, или только высоковольный программатор нужен ? 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Только высоковольтный программатор, но там не сложно это сделать.

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

DetSimen пишет:

спасибо.  Но я - проводочками через Uno as ISP

вопрос чисто из любопытства:

для чего эти дижиспарки можно использовать?

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Если в них загрузчика нет, то плюсов я вообще не вижу. Проще тини8 врассыпуху купить.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Та же цена, но тут плата со стабом. А, еще "лампочка"! А с загрузчиком еще и в usb втыкаются. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Umka пишет:

А, еще "лампочка"!

Правильно! Там только думатель, а тут ещё и неонка! :))))

yray
Offline
Зарегистрирован: 08.01.2015

Мне нужно было переделать несколько кнопок на более "умные" - фиксация с записью/восстановлением последнего состояния длтительные и короткие нажатия и т.п. - вот для этого дигиспарки отлично подходят - готовая плата со стабилизатором и всей обвязкой, только подключить в разрыв проводки и залить скетч через усб.

А вот для чего нужен дигиспарк ПРО для меня лично загадка - платить минимум вдвое больше чем за готовые ардуиновские контроллеры и получить устройство функционально на порядок проще - это вообще не серьёзно

yray
Offline
Зарегистрирован: 08.01.2015

Umka какой скетч стабильно работающий для i2c на esp ?

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Я не кодю под ESP, но вроде все работают. Wire точно работает.

yray
Offline
Зарегистрирован: 08.01.2015

Не правильно вопрос задал - какой скетч для вашего диммера, для прошивки attiny85, для того чтобы она работала по i2c c esp8266, последний стабильный без глюков ?

Скетч что указан в опции dimmer tiny в конструкторе wifi-iot не рабочий, там не правильно указаный выводы детектора ноля, но даже если их скоректировать то устройство работает не стабильно, скачки яркости, не линейное управление и прочие глюки. Автору wifi-iot это не интересно, он говорит эта опция никому не нужна разбирайтесь с автором диммера.

Сейчас стоит первый скетч из сообщения 61 этой темы. Работет вроде не плохо, но иногда промаргивает, самовольно включается/выключается и не соответствует значениям передавемым с esp. Надо разбиратся что именно не так - данные с esp кривые или  не верно работает прошивка в тиньке. Поэтому и спрашиваю какая прошивка последняя для диммера под i2c

У вас не осталось скетча для ардуины на котором вы тестировали диммер на видео в ютубе? Думаю сначало протестировать работу диммера от ардуины с проверенными командами по i2c, потом проверить сканером что выдаёт esp на диммер 

 

 
 
Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Все что тут опубликовано работает. На первых стадиях были моргания, но их уже давно побороли. Чтобы байт передать по i2c надо скетч какой-то особый? Там 2,5 строчки кода и можно сделать из порта руление. Я уже не помню что делал, год прошел. Детектор не успевает скорее всего. От этого и моргает.

pmaster
Offline
Зарегистрирован: 23.05.2011

А какой ардуиной шьете? (1.8.5 у меня), поддержка ATtiny85

от сюда https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Прошелся осцилографом, все отлично на входах. но даже при

sensorValue = 0; //analogRead(INSTELPIN);

на выходе какие то не понятные импульсы и соответственно хаотично мигающая лампочка. уже всю голову поломал, все перепроверил 10 раз, ... 

 

yray
Offline
Зарегистрирован: 08.01.2015

Да, 1.8.5 нормально прошивает, но эти скетчи толком не работчие, надо допиливать и подбирать тайминги.

Вот здесь http://wifi-iot.com/p/wiki/158/ я выложил рабочую схему и допиленный скетч для диммера по i2c c поправной на особенности управления от esp8266

pmaster
Offline
Зарегистрирован: 23.05.2011
 
разобрался. почему-то прерывание настроено на 6 а не на 7 пин. 6й висел в воздухе от сюда и глюки...
но ведь как то срабатывало, если 6й закоротить на землю )))
 
 
pmaster
Offline
Зарегистрирован: 23.05.2011

в скетче, сообщение #104, ошибка, если

#define DETECT 2      //zero cross detect, interrupt 0, is physical pin 7

то и само прерывание надо выставлять на ногу 7, т.е. в строке 21

PCMSK = 1 << PCINT1; меняем на PCMSK = 1 << PCINT2; 

На схеме тоже кстати прерывание подключено на 7ю ногу.

pmaster
Offline
Зарегистрирован: 23.05.2011

не могу добиться полного выключения лампочки. даже при значении 250, она слабо светит... что можно поправить?

можно конечно поставить IF , но это не по феншую )

yray
Offline
Зарегистрирован: 08.01.2015

Я же дал вам ссылку на скетч где это поправлено - и ноги и тайминги и чтобы лампа не светилась, если вы даже читать не хотите то зачем вообще спрашиваете ?

yray
Offline
Зарегистрирован: 08.01.2015

Я же дал вам ссылку на скетч где это поправлено - и ноги и тайминги и чтобы лампа не светилась, если вы даже читать не хотите то зачем вообще спрашиваете ?

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

yray не спешите обобщать по частному случаю. Вот так работает Ваш поправленный код на моем блоке https://photos.app.goo.gl/ZqWxGe200lmZ8JPV2

А вот так старый код https://photos.app.goo.gl/8Ey3A9Qu0tdBMVeq1

А еще мне мозг выносят на wifi-iot.com по вашему коду постоянно. Что-то там не допилено имхо. Поясню если не видно на видео. В первой трети ползунка диммера лампа загорается почти на полную.

yray
Offline
Зарегистрирован: 08.01.2015

Umka пишет:

yray не спешите обобщать по частному случаю. Вот так работает Ваш поправленный код на моем блоке https://photos.app.goo.gl/ZqWxGe200lmZ8JPV2

не может мой код так работать - у вас на видео при PWM = 0 светится лампочка - этот как раз вы свой код выдаете за мой - в вашем коде лампочка накаливаия заметно светится, а если поставить свтодиодную то она довольно ярко горит соответственно ваш код в реальности вообще использовато нельзя - с ним на наргузке постоянно присутствует сетевое напряжение. И именно ваш код давал совершенно неадекватное управление яркостью, суть была в том что тайминги прописанные в таймере накладывались друг на друга и на нагрузге творился бардак. Кроме бардака с симистором в вашем коде был баг включением нагрузки на полную при перезагрузке ЕСП, крайне не приятная и опасная вещь, ЕСП при нинициализации шлёт в шину 255, победить не смогли в результате значение в конструкторе ограничили ремапом до 254, а все что выше выключает симистр. 

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

Ну а если разобраться то скорость работы таймеров и соответственно тайминги напрямую зависят от частоты на которой работает тинька, скорее всего весь вопрос в том на какую частоту выставленны фьюзы при прошивке тиньки. Смешно, но я тоже не помню сколько там стояло как бы не 1mhz, но надо проверить. Да и не факт что все библиотеки тиньки одинаково работают с таймерами, поэтому на wifi-iot.com я и библиотеку выложил на которой делалось.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Хотите сказать что я вру? Зачем мне врать? Тут ни код ни схема не мои, ну почти не мои. Я только интерфейс i2c добавил. 

Хорошо. Вот ролик от позапрошлого года https://www.youtube.com/watch?v=t1mEsbQYO4Q  в нем наверное тоже я Ваш код использую? Слабый накал внизу сделан специально для съемки ролика. Не горячитесь. Может именно от частоты все проблемы у Вас и были. Моя тини на 20мГц точно прошита.

А вот свеженькое, в работе https://www.youtube.com/watch?v=NIuG0Xtrm8I

Насчет нареканий не было - спросите у Максима. Были и не раз нарекания при повторе вашего блока с вашим кодом из вики wifi-iot, но с вопросами почему-то ко мне посылают.

Я буду в следующий раз сохранять скриншоты и сюда публиковать, если на слово не верите.  

yray
Offline
Зарегистрирован: 08.01.2015

Umka пишет:

yray не спешите обобщать по частному случаю. Вот так работает Ваш поправленный код на моем блоке https://photos.app.goo.gl/ZqWxGe200lmZ8JPV2

Вы хотите сказать что это не вы опубликовали эту ссылку и это не ваше видео? Вы сами то смотрите что публикуете- какие скриншоты - это же ваше сообщение.

 

yray
Offline
Зарегистрирован: 08.01.2015

Umka пишет:

Насчет нареканий не было - спросите у Максима. Были и не раз нарекания при повторе вашего блока с вашим кодом из вики wifi-iot, но с вопросами почему-то ко мне посылают.

С Максимом постоянно на связи - никаких вопросов не было, всместе с ним отлаживали код, искали баг с включением при инициализации и т.д. Покажите может у меня поиск не работает - где именно на форуме wifi-iot.com хоть один вопрос про диммер ?

Вот скажите - вы выложили скетч в общий доступ прекрасно зная что в результате его работы на нагрузке постоянно присутствует напряжение, типа для съемки - это вообще нормально, вы вообще понимаете что это значит? Но это же ерунда на самом деле потому что в том виде что он был выложен он впринципе не работал - как уже замечалось ножки в схеме, скетче и описании были указанны не верно и в том виде что он был выложен в том числе на wifi-iot работать впринципе не мог. Про частоту контроллера тоже ни слова не было. Когда код не заработал я у вас попросил рабочий вариант, на что вы заявили "Все что тут опубликовано работает." А нифига оно не работает. Сделал сам, довел до ума выложил именно рабочую версию - и тут оказывается "вам мозг парят"

 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Ну хватит уже бодаться. Спорим на 100 баксов, я на камеру залью ваш код и он будет глючить. 

Какое напряжение присутствует? Там же мапится все как надо. Ничего там не присутствует. Код выложил Nik182 в сообщении 61 http://arduino.ru/forum/programmirovanie/attiny85-i-preryvanie?page=1#comment-246497 и он полностью работоспособный. Про пины он там же писал. Вы с кем вообще воюете? 

На форуме wifi-iot почти не бываю, зато в IRC сижу постоянно, там и вижу жалобы на диммер. 

Зато Вы,  уважаемый, чужой код опубликовали (со своими правками) без ссылок на источник, фактически себе чужой труд присвоили. Разве так делают? 

Впрочем чего спорить. Подождем пока кто-нибудь тут повторит вашу схему с кодом и протестирует. 

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

p.s. странно, работать не мог, а работал. Просто у меня есть машина времени! 

Ну вот тогда еще кинцо прошлогоднее https://www.youtube.com/watch?v=wXA2jGXWzno

 

pmaster
Offline
Зарегистрирован: 23.05.2011
yray, ваш код действительно работает не совсем корректно. я уже и на i2c переделал платку диммера,  если сделать с map(i2cValue, 0, 254, 145, 29), то работает совсем в малом диапазоне, поставил ocr = i2cValue; регулируется почти нормально. но при значении 250, лампочка слабо светится. я так и не смог подобрать значение что бы ее выключить.
 
Код Nik182 в сообщении 61, тоже работает не во всем диапазоне, особенно с map. Что я делаю не так ? (
Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Да вот осциллографом надо двухлучевым смотреть когда там импульс на затвор симистора прилетает и еще может детектор не совсем в тот момент ноль ловить. Но мои платы на весь диапазон регулируются. Отвечаю!

https://photos.app.goo.gl/wtIBkYAiAgPG7cIv2

Отакие.

pmaster
Offline
Зарегистрирован: 23.05.2011

У меня все то же самое. оптопары 3021 и 814,  тиристор 139-800. кстати диммер http://cyber-place.ru/showthread.php?t=525 на той же комплектухе, ну кроме проца. работает идеально много лет уже. Осцилой смотрел, да. не доходят импульсы.. а где настроить то? ))) может действительно сказывается тормозность (или наоборот) чего то в схеме ...

yray
Offline
Зарегистрирован: 08.01.2015

Еще раз - на какую частоту прошита тинька? От частоты зависит скорость работы таймера, а от него параметры импульса на симистор. У меня точно не 20, скорее всего 8, или 1 - просто поробуйте залить скетч с разной частотой и посмотрите на какой заработает, там всего 2-3 варианта проверить, минутное дело

pmaster
Offline
Зарегистрирован: 23.05.2011
yray, а у вас точно диапазон регулирования яркости равномерно от 0 до 100 ? или от 30 до 100, хотя сюдя по ощущениям, там все от 50 до 100.. Потому что от 50 до 100 работает нормально
 
попробовал 1, 8, 16мгц. на глаз по лампе разницы не видно. 20 не пробовал, т.к. по моему для этого уже внешний кварц надо цеплять. 
 
и от куда взялось map(i2cValue, 0, 254, 145, 29) ? почему 149 и 29 ?
у меня например нормально регулируется при значениях от 1 до 250
nik182
Offline
Зарегистрирован: 04.05.2015

А фьюзы какую частоту процессора выставляют?

pmaster
Offline
Зарегистрирован: 23.05.2011

вот с этого момента подробнее плиз?  в среде ардуины по моему такого нет

более менее адекватной работы добился так

ocr = map(i2cValue, 0, 254, 250, 55); но все равно минимальная яркость слишком большая... 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Какая Ардуина, я тиньку программатором шью! 20 частота и работает ровно. Ну я уже показал. Nik182 как у вас?

pmaster
Offline
Зарегистрирован: 23.05.2011

Я шью тоже программатором . чистая тинька без всяких загрузчиков, шью из среды ардуины. Заметил что выставление частоты ни на что не влияет (?) .... ставил и 1 и 20 , хотя 20 без внешнего кварца вообще по идее работать не должно. Как писал выше добился более менее нормального диапазона регулировки при ocr = map(i2cValue, 0, 254, 250, 55); В принципе устроит наверно, НО почему у вас не так???

yray
Offline
Зарегистрирован: 08.01.2015

Не знаю откуда umka берёт 20 и для чего примитивному диммеру работать на частоте 20мгц которая даже ардуиной не поддерживается.

Диапазон регулеровки на входе от 1 до 254, ремапится в 145,29 эти значения как раз и подобранны осциллографом на максимальное открыте симистора.

А как частоту меняли ? Просто при прошивке из ардуино другую выбирали? Каким образом может не менятся частота, точно не помню но она не по команде прошить загрузчик записывается во фьюзы?

А минимальная яркость чего ? Если светодиодной лампы то может и будет большой

nik182
Offline
Зарегистрирован: 04.05.2015

Максимальная яркость определяется задержкой импулься синхронизации относительно перехода через 0 напряжения сети. Сделайте нормальную синхронизацию, а не ту пародию, что в схеме и будет вам счастье. Есть шилд для наны с синхронизацией сети - супер схема.

Минимальная - точностью уставки 20 мс.

pmaster
Offline
Зарегистрирован: 23.05.2011

yray пишет:

Не знаю откуда umka берёт 20 и для чего примитивному диммеру работать на частоте 20мгц которая даже ардуиной не поддерживается.

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

yray пишет:

Диапазон регулеровки на входе от 1 до 254, ремапится в 145,29 эти значения как раз и подобранны осциллографом на максимальное открыте симистора.

Вот я и говорю что у меня этот диапазон получается 250, 55 

а не как у вас  145,29 

Регулирую обыную галогенку 220в 50w

nik182 пишет:
Сделайте нормальную синхронизацию, а не ту пародию, что в схеме и будет вам счастье. Есть шилд для наны с синхронизацией сети - супер схема.

Это с кучей деталей и извращений? Не. спасибо. Я повторюсь, данная схема с 328 мегой, с библиотекой cyberlib работает идеально уже очень давно, рулит одновременно 5 лампами, управляется  NRF24,  и тд и тп. А тут с одной не могу разобраться... Кто то советовал напрямую на тиньку сунуть 220, через какой резюк тока, не непомните?

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Набрехал, там 20 с внешним кварцем только. 16 ставил. Не знаю зачем. Тоже примерно так 35-250.

yray
Offline
Зарегистрирован: 08.01.2015

pmaster пишет:

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

У меня из Ардуины 20 доступно только с внешней синхронизацией, с внутренней максимум 16, может менеджжер плат для 85 у вас другой или вы все таки 20 с внешней выбираете? Попробуйье всеже поменять частоту, выбрать записать загрузчик и потом уже залить скетч.

У меня такой медежер 85:

Менеджер плат для Tiny https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

У вас такойже ?

pmaster
Offline
Зарегистрирован: 23.05.2011

Менеджер такой же да. Записать загрузчик? интересно.. но мысль понял. сейчас поробую

upd: ДА. вот в чем проблема. Для смены частоты надо сначала прошить загрузчик и потом скетч, почему то это нигде не написано.. на 8мгц заработало как у вас. на 1 не работает вообще, на 16 в принципе работает но нижний предел яркости слишком большой

pmaster
Offline
Зарегистрирован: 23.05.2011

Ну вот и разобрался. Всем спасибо )

yray
Offline
Зарегистрирован: 08.01.2015

Где то написанно и я об этом когда то читал, так что хорошо что вспомнил, и частоту я у себя снижал потому что моя схема предназначена для ESP8266 и питается тинька от неё 3.3 вольтами, поэтому остановился на 8mhz как на оптимальной для 3,3вольт 

Вот зднесь написанно что заливка скетчей не меняет фьюзы и именно команда прошить загрузчик это типа прошить фьюзы на самом деле http://integrator.adior.ru/index.php/arduino/415-atmega8-v-srede-razrabotki-arduino

 

yray
Offline
Зарегистрирован: 08.01.2015

Кстати мои тайминги не открывают симистор на 100% с таймером это просто не возможно, гдето процентов 95 максимум, для димируемых светодиодных ламп с которыми я его использую это не приципиально, а вот с лампами накаливания будет заметный "недогрев" и возможно надо добавить в скетч код который будет просто открывать симистор минуя таймер если получена команда светить на всю

pmaster
Offline
Зарегистрирован: 23.05.2011

Да, можно добавить IF, но это не требуется. Вот мой диммер ) Изначально задумывался под управление аналогом.. но переделан, парой перемычек под i2c

 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

А что вы диммируете, если не секрет?

pmaster
Offline
Зарегистрирован: 23.05.2011

Свет в доме.