Технический форум по робототехнике.
сарагоса » 02 авг 2014, 21:55
Посмотрите пожалуйста файл,все ли правильно я сделал.
Нужно плавно зажигать и гасить лампочку на 220 вольт через 0.
На вход PD2-идет прерывание от детектора нуля.
И как правильно устанавливать частоту.
На вход PD0-включение шим.
Программа Flowcod для AVR
- Вложения
-
2313.rar
- (2.83 КиБ) Скачиваний: 0
Gren » 26 авг 2014, 01:54
Парни, не посоветуете книгу по мк, програмированию мк и остальных касающихся вопросов, для мах изучения этой темы? Спсибо)
avr123.nm.ru » 26 авг 2014, 15:20
полюбуйтесь ка!
![Laughing :lol:](http://roboforum.ru/images/smilies/lol.gif)
Микроконтроллеры (AVR, ARM, MCS51, PIC, ПЛИС и т.д.). ДОПОЛНЕННАЯ сборка книг - (256 книг+ 27 CD c примерами из книг) - rutracker .org/forum/viewtopic.php?t=1652142
P_Ruslan » 04 дек 2014, 23:28
Что будет если подрубить оптрон к двум ногам порта и: подать две единички? ток в обратную сторону диода оптрона?
Вроде как ничего не случится, но чето я очкую.
![Изображение](http://cs621125.vk.me/v621125401/1d91/JtnuHB-Kpk8.jpg)
avr123.nm.ru » 05 дек 2014, 00:45
в цепь желательно добавить резистор, а диод оптрона зашунтировать встречно вкл. диодом 4148
Angel71 » 05 дек 2014, 01:29
зачем к светодиоду ещё и диод лепить? зачем обе лапы на микроконтроллер? одна лапа на землю, другая к контроллеру. ну и резистор добавить.
P_Ruslan » 05 дек 2014, 03:27
Не всё так просто, 2 ноги, ШИМ только на одной. Если выходит единица, то шим течет в одно русло, ноль—в другое. У меня просто все лапы в МК задействованы, даже ReSET
Andrew S » 05 дек 2014, 10:42
P_Ruslan писал(а):Не всё так просто, 2 ноги, ШИМ только на одной. Если выходит единица, то шим течет в одно русло, ноль—в другое. У меня просто все лапы в МК задействованы, даже ReSET
Резистор ограничительный надо поставить в цепь светодиода, считается просто, на светодиоде падение напряжения примерно 2В, на переходе К-Э выходного транзистора около 0,6В, выходное напряжение лог. "1" TTL 3,5-3,7В, остается 1В. Т.е. при токе светодиода 20мА, резистор около 100 ом, я бы поставил 240. Делается это для ограничения выходной мощности микроконтроллера, а так подключать по 2 оптрона на 1 выход я считаю возможным, но нужно учитывать, что при включении и перепадах напряжения на обоих выходах может быть неопределенное состояние.
![Изображение](http://cxem.net/calc_img/ledcalc/1100d8c7710b8b8e2dfd00f21d37d66a.png)
Angel71 » 05 дек 2014, 12:58
P_Ruslan, всё как раз очень просто, вы от незнания некоторых основ мудрите.
P_Ruslan » 05 дек 2014, 18:16
Почитал даташит. Можно вешать светодиоды на любую пару ножек, если есть резистор, то им не страшен любой расклад логических единичек и нулей.
Dmitry__ » 05 дек 2014, 18:42
Зачем 2 ножки на светодиод? Макс. pwm = "1", диод всегда горит. Мин. pwm = "0", диод всегда погашен. мин < PWM < макс. = разные значения яркости. Что дает 2-я нога на led???
Angel71 » 05 дек 2014, 19:53
как что? проблемы на одно место с лишними выводами контроллера + чуть больше кода. а зачем вообще шим эт загадка.
gppsoft » 02 апр 2015, 09:20
Ребята. Кто-нибудь может популярно и на пальцах объяснить как настраивается ШИМ на Atmega8? Вся инфа которую я нашел в инете какая-то не полная.
Вот что я понял:
1. ШИМ(аппаратный) работает с помощью таймера.
2. На Atmega8 два таймера и 3 ноги с ШИМ-ом. Одна нога управляется 8 битным таймером, а другие две 16 битным.
3. Настройка и включение ШИМ-а производится с помощью установки битов в определенных регистрах(тут все очень запутанно)
Не понятно многое... Как и по каким условиям происходит работа ШИМ-а? В частности не понятна часть с сравнением значений в определенных регистрах и настройка этих самых регистров. Не совсем понятна часть с видами ШИМ-ов. Заранее огромное спасибо!
P.S: Пытаюсь писать под МК на чистом Си, без всяких ардуиновских библиотек и оберток.
Duhas » 02 апр 2015, 10:24
на пальцах - то что зовут таймером, таймером-счетчиком, по сути - именно счетчик.
на его вход подается либо частота от тактового генератора МК (которую можно предварительно поделить см. предделитель = prescaler), либо внешние сигналы.
для генерации ШИМ подаем частоту от тактового генератора...
далее, с каждым тактом значение счетчика увеличивается на 1.. счетчик в общем случае считает от нуля до максимального значения, последнее можеь быть как 2^8 - 1 для 8 битного и 2^16 - 1 для 16-ти битного, так и меньшим, если это позволяет устройство таймера счетчика или выбранный режим.
когда насчитанное счетчикм значение совпадает с заданным в регистрах сравнения значением, сигнал на выходе сбрасывается в 0 и восстанавливается при переполнении (когда счетчик досчитает до максимального значения следующий такт сбросит его в 0)
что вам нужно сделать:
- настроить регистры так, чтобы счетчик работал в режиме ШИМ (FastPWM я думаю будет для вас оптимальным для начала)
- разрешить счетчику дергать ножки контроллера
- задать источник тактовых импульсов для счетчика (там же выбирается предделитель)
ну а в целом -
http://www.atmel.com/images/doc2505.pdf
avr123.nm.ru » 15 апр 2015, 11:18
gppsoft писал(а):как настраивается ШИМ на Atmega8?
Это удобно делать мастером настройки в компиляторе imagecraft или cvavr