_Ivan_ 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 (изменено) · Жалоба Здравствуйте уважаемые разработчики!!! помогите пожалуста начинающему делаю бегущие огни прошивку почти написал но проблема в том, что когда я ставлю delay_ms(...) то время указанное в скобках будет не такое, а будет хаотично (при подключенной переменке) и все будет норм если просто подключен светодиод мк - attiny2313 частота внутренняя 1 МГц суть устройства: мк управляет с помощью симисторов цепями лампочек которые мигают, медленно включаются и выключаются в определенной последовательности схема питания - блок питания на выходе 10 вольт - конденсатор 470 мкф 25 вольт на землю - кренка - кондер 22 мкф на 63 вольта на землю - кондер 0,1 мкф на землю - сам мк схема управления - нога мк - резистор 330 ом - оптопара moc3021 - симистор - с одной стороны цепь лампочек с другой вывод переменки и на лампочке еще 1 вывод переменки схема обнаружения 0 на переменке (ну чтоб определить момент когда мгновенное напряжение в переменке равна 0) - фаза переменки - резистор 560 ком - диод 1n4107 - нога мк... помогите пожалуйста!!!! я уже с этим около месяца копошусь!!! Изменено 20 апреля, 2008 пользователем _Ivan_33 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sKWO 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба но проблема в том, что когда я ставлю delay_ms(...) то время указанное в скобках будет не такое, а будет хаотично (при подключенной переменке) и все будет норм если просто подключен светодиод А можно код увидеть? И как Вы используете пересечение нуля? Может от него и надо плясать? И почему собственно глюки МК? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 (изменено) · Жалоба ..... с помощью этого кода я хочу узнать как плавно лампочку загорать Moderator: Воспользуйтесь форматированием кода. Изменено 20 апреля, 2008 пользователем zltigo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sKWO 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба #include <tiny2313.h> #include <delay.h> void main(void) {DDRB=4; DDRA.1=0; while(1) { PORTB=4; delay_ms(3000); if (PINA.1==0x00) {PORTB=0;}; с помощью этого кода я хочу узнать как плавно лампочку загорать С помощью этого кода не получится, алгоритм не верный. Такой алгоритм будет работать только в синхронном режиме с частотой сети. Нольпересечение у Вас обрабатывается в цикле и с какого момента лампочка начинает гореть - предсказать невозможно, такое моё видение Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 (изменено) · Жалоба #include <tiny2313.h> #include <delay.h> void main(void) {DDRB=4; DDRA.1=0; while(1) { PORTB=4; delay_ms(3000); if (PINA.1==0x00) {PORTB=0;}; delay_ms(20); if (PINA.1==0x00) {PORTB=4;}; delay_ms(250); if (PINA.1==0x00) {PORTB=0;}; delay_ms(20); if (PINA.1==0x00) {PORTB=4;}; delay_ms(350); if (PINA.1==0x00) {PORTB=0;}; delay_ms(30); if (PINA.1==0x00) {PORTB=4;} delay_ms(450); if (PINA.1==0x00) {PORTB=0;} delay_ms(20); if (PINA.1==0x00) {PORTB=4;}; delay_ms(550); if (PINA.1==0x00) {PORTB=0;}; delay_ms(20); if (PINA.1==0x00) {PORTB=4;}; delay_ms(700);};} - вот так? извините но если не так а переход через нуль использую для включения канала - чтоб не было помех Изменено 20 апреля, 2008 пользователем zltigo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 (изменено) · Жалоба Это не глюк, а помехи от включения симистора. Ставишь транс по питанию, по выходу опторазвязка, а переход через 0 делаешь - гальванически соединяешь с фазой??? И вообще, схемку бы. Обычно переход фиксируют по прерыванию. Изменено 20 апреля, 2008 пользователем domowoj Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tazik 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 (изменено) · Жалоба Посмотрите здесь AVR182: Zero Cross Detector AVR040: EMC Design Considerations По крайней мере, детектирование нуля Атмел предлагает делать немного иначе. В принципе, для детектирования нуля можно цепляться к напряжению вторичной обмотки трансформатора - так безопасней будет Изменено 20 апреля, 2008 пользователем tazik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба транс - трансформатор? у меня самодельный блок питания на трансворматоре при переходи через 0 у меня включается канал лампочек чтоб помех не было а по выходу опторазвяка была! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amper25 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба При переходе через 0 не надо включать лампы. При переходе, надо сбрасывать счетчик, который считает время до включения. Если в 0 включать симисторы, то выключатся они только при следующем 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба у меня нет никакого счетчика Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба у меня нет никакого счетчика Счетчик есть он програмный (delay_ms(30);- вот например) и включать его надо в момент перехода через 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба а напишите мне пожалуйста буквально 3 строчки кодла как это будет выглядеть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
domowoj 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 (изменено) · Жалоба К сожалению с СИ я на ВЫ, а на словах- таймер в реж. ШИМ синхронизируется (сбрасывается в 0) переходом через 0, в OCR0x записываешь число соответствующее нужной яркости, вывод OC0x на вых. - управление симистором, чтобы максимально использовать таймер нужно чтобы частота ШИМ была близка к 100Гц- подстройка через OSCCAL , можно автоматически , можно вручную. Изменено 20 апреля, 2008 пользователем domowoj Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба если вы с СИ на вы то я с ним незнаком... учился на курсе avr можно поподробнее а то для меня это ничего не значится или где об этом почитать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tazik 0 20 апреля, 2008 Опубликовано 20 апреля, 2008 · Жалоба Иван, а у Вас какая тактовая частота МК? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться