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

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

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

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

b707 пишет:

yray пишет:

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

А разве это твой вопрос? - это мой ответ из сообщения #290. Ты уже подтасовками решил заняться? - так не забывай, дискуссия то остается, каждый может прочитать, что и кто написал.

Где в 290 написанно ПОЧЕМУ - цитату трепло

b707
Offline
Зарегистрирован: 26.05.2017

Давай ты не будешь съезжать с темы.  В сообщении #282 ты писал, что для продления срока службы ламп нужен умный драйвер:

если бы ширпотребные драйвера драйвера работали по нему и меряли бы температуру сетодиодов корректируя по нему ток, то лампочки работали заявленные 25-30 тысяч часов, а по факту в них ставят драйвера тупо ограничивающие максимальный ток, в результате лампа даже на хороших диодах живет всего несколько тысяч часов

А я тебе на это отвечаю, что умный не обязателен - все то же самое можно получить просто тупо ограничивая максимальный ток

b707
Offline
Зарегистрирован: 26.05.2017

yray пишет:

Где в 290 написанно ПОЧЕМУ - цитату трепло

Высокие токи вызывают перегрев и деградацию кристалла. Только ты опять попутал причину иследствие. Это не нагрев увеличивает ток в светодиоде,а ток нагревает кристалл, неужели непонятно?

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

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

Индикаторныые диоды живут долго потому что их температурный режим не меняется.

Лампы с термокомпенсацией не знаю сколько живут - никогда не приходилось такую разбирать, может они вечные?

Ширпотребные лампы с ограничителем тока живут не особо долго с поправкой на условия эксплуатации из за тупых драйверов вызывающих некоторый перегрев диодов. 

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

Вот это монократоно доказанные факты - а то что ты несешь это бред галимого тролля

b707
Offline
Зарегистрирован: 26.05.2017

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

 

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

b707 пишет:

Высокие токи вызывают перегрев и деградацию кристалла. Только ты опять попутал причину иследствие. Это не нагрев увеличивает ток в светодиоде,а ток нагревает кристалл, неужели непонятно?

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

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

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

b707 пишет:

Если бы сопротивление диода не зависело от температуры

Опа прокололись - как всетаки зависит сопротивление от температуры то.

b707
Offline
Зарегистрирован: 26.05.2017

yray пишет:

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

Индикаторныые диоды живут долго потому что их температурный режим не меняется.

Вот это монократоно доказанные факты - а то что ты несешь это бред галимого тролля

Любые лампы греются, режим любых диодов - меняется.

А дальше мы уже по кругу пошли. Какое там высшее образование - ты школьной физики не знаешь.

Все, я спать пошел. Понимающие люди прочтут дискуссию  (если не противно будет) - и сами решат, кто здесь кто.

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

b707 пишет:

Добавлю - вот собственно главная твоя тупость, которую ты не понимаешь. - что от проходящего тока нагреваются все светодиоды. и большие и маленькие.

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

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

b707 пишет:

Понимающие люди прочтут дискуссию  (если не противно будет) - и сами решат, кто здесь кто.

Классический троль выёживающийся на публику

b707
Offline
Зарегистрирован: 26.05.2017

yray пишет:

Опа прокололись - как всетаки зависит сопротивление от температуры то.

если ты пытаешься меня "ловить" - то очень неумело. Я еще 2 страницы назад написал. что температурный дрейф существует. Ты даже бегал по моему заданию искать графики - забыл?

Троллинг - это ведь тоже искусство.

 

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

Да да - я тут исключительно вас и пи.арю

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

b707 пишет:

Если бы сопротивление диода не зависело от температуры - ему ровно также нужен был бы стабилизатор и он ровно так же переграевался бы от запредельных токов.

Откуда бы тогда взялся запредельный ток? Вот предположим изобрели диод у которого не меняется сопротивление от тепераруры как вы утверждаете, установили самым примитивным стабилизатором напряжения на нем напряжение, подогнали ток под рекомендованный производителем, хотя зачем тогда вообще ток подгонять - сопротивление то не меняется, и вуаля горит и всех радует. А тут вы такой - да на нем запредельный ток - и с чего на нем вдруг не стого не ссего появится запредельный ток - напряжение стабильное - как вкопаное, откуда ток то берётся запредельный ???

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

Запредельный ток только из за простого человеческого желания срубить денег. Если лампочки будут горет 100500 часов, то скоро покупать новые скоро будет некому. А поставить умный драйвер -у конкурентов с тупым дешевле. Ни кто специально для тебя не будет придерживаться даташита, что бы терять деньги.

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

Вот обещал же молчать, но не могу. Кто из покупателей будет ковырять лампочку чтобы узнать какой в ней драйвер? Выбирают по цене и сроку гарантии в основном. А дешевле лампы на фейковых светодиодах и вообще без драйвера. Поэтому в Китае невозможно купить качественную светодиодную лампочку. Рулит маркетинг и желание побольше заработать. По той же причине бак в стиральной машинке склеен из 2 половинок. Его нельзя разобрать без распиливания. Потек сальник, крякнули подшипники и 3 из 4 машинок идут в утиль! Заменить подшипники и сальник дело 5 минут. И еще день потратить на пиление и последующее склеивание бака. Не у всех, но у большинства именно так и сделано. Чтобы покупали новое, а не ремонтировали старое. Взял такую сломанную машинку за 1000р для тренировки. Распилил бак, заменил подшипники и склеил. Потом то же самое на своей машинке проделал. Теперь у меня есть запасной бак, мотор, блок управления, клапана и прочее за 1000р. Помпу уже заменил кстати. 

yuray хочу поблагодарить Вас за помощь в продаже диммеров. Народ пытается его собрать с вашим кодом на wifi-iot, ничего не получается, и потом покупает у меня готовые блоки. 

bwn
Offline
Зарегистрирован: 25.08.2014

ЕвгенийП пишет:

Не вижу работы с таймером. У Вас что "Manchester" не пашет? Или в чём проблема?

Евгений, я так понял, что Вы кому-то отвечали? Если так, то считаю за такие художества банить нужно.

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

Ну, да, был какой-то вопрос про таймер и кусок кода был. Вроде ничего ериминального

bwn
Offline
Зарегистрирован: 25.08.2014

Спасибо Евгений, его уже забанили. В двух темах вытерты все посты, зачем приходил?

melandr
Offline
Зарегистрирован: 21.07.2020

Добрый день! А не могли бы выложить код и для Atiny85 и ESP8266. как управляете с мобильного?

Brodyaga
Offline
Зарегистрирован: 05.09.2017

Подскажите как прикрутить алгоритм Брезенхема в данный код

// автономный диммер на ATtiny85



// управляется по I2C.



#include <TinyWireS.h>

#define I2C_SLAVE_ADDR (0x41) //адрес устройства

#define DETECT 1 //физический пин 6, детектор ноля, прерывание 0

#define GATE 3 //физический пин 3, выход на симистор

#define PULSE 5 //константа счетчика импульсов, определяет ширину управляющего импулса

// I2C pins: PB2 - SCL физический пин 7, PB0 - SDA физический пин 5

volatile byte i2cValue, ocr, jj;



void setup() {

  delay(2000); //задержка нужна чтобы не хватать мусор из шины при инициализации

  ocr = 0; // выключение нагрузки при инициализации

  // set up pins

  TinyWireS.begin(I2C_SLAVE_ADDR);

  DDRB &= ~(1 << DETECT); //zero cross detect

  PORTB |= (1 << DETECT); //enable pull-up resistor

  DDRB |= 1 << GATE; //triac gate control

  GIMSK = 1 << PCIE;

  PCMSK = 1 << PCINT1;

  OCR1A = 50; //initialize the comparator

  TIMSK = _BV(OCIE1A) | _BV(TOIE1); //interrupt on Compare Match A | enable timer overflow interrupt

  TinyWireS.onRequest(requestEvent);

  TCCR1 = 0;

  while ((PINB & (1 << PINB1)) != 0);

  while ((PINB & (1 << PINB1)) == 0);

  for (uint8_t ii = 0; ii < 255; ii++) jj++;

  TIFR = 0xff;

  for (uint8_t ii = 0; ii < 200; ii++) jj++;

  sei(); // enable interrupts

}

ISR (PCINT0_vect) {

  if (TCCR1 > 0) return;

  TCCR1 = 0;

  TCNT1 = 0; //reset timer - count from zero

  OCR1A = ocr;

  TCCR1 = B00001010; // prescaler on 1024, see table 12.5 of the tiny85 datasheet

}

ISR(TIMER1_COMPA_vect) //comparator match

{

  PORTB |= (1 << GATE); //set triac gate to high

  TCCR1 = 0;

  TCNT1 = 255 - PULSE; //trigger pulse width, when TCNT1=255 timer1 overflows

  TCCR1 = B00001010;

}

ISR(TIMER1_OVF_vect) { //timer1 overflow

  PORTB &= ~(1 << GATE); //turn off triac gate

  TCCR1 = 0; //disable timer stop unintended triggers

}



void loop() {

  if (TinyWireS.available()) i2cValue = TinyWireS.receive();// проверка значений полученных по i2c что бы отсеять ненужное

  if ((i2cValue < 1) || (i2cValue > 254)) ocr = 0; // все что меньше 1 и больше 254 выключает нагрузку

  else ocr = map(i2cValue, 0, 254, 145, 29); // рабочий диапазон от 1-254

  TinyWireS_stop_check();

}



void requestEvent() {

  TinyWireS.send(i2cValue);

}

 

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

Строка 109 полностью с комментарием говорит как прикрутить. Вы должны давать 0 или 254 в зависимости от выхода алгоритма.

Brodyaga
Offline
Зарегистрирован: 05.09.2017

Если я правильно понял то

if ((i2cValue < 1) || (i2cValue > 254)) ocr = 0; // все что меньше 1 и больше 254 выключает нагрузку

else ocr = map(i2cValue, 0, 254, 0, 254); // рабочий диапазон от 1-254

TinyWireS_stop_check();

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

У Брезенхема нет рабочего диапазона. Есть вкл - 254 и откл -0 . это и надо посылать в программу из Брезенхема.