Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 05.08.2018, 00:40  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,033
Сказал спасибо: 2,559
Сказали Спасибо 11,881 раз(а) в 5,958 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от boris_latysh Посмотреть сообщение
Греется силовой транзистор.
Драйвер нормальный?
А ШИМ какой? Их же не один в контроллере. Я ХЗ, чо там в абдурине применили.

ПС. Абдуринщики тут разные пролетают. Имею ввиду уровень. Соответственно и отношение к новому человеку. Так что... Ну, в подписи...
Реклама:
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 05.08.2018, 00:47  
boris_latysh
Прохожий
 
Аватар для boris_latysh
 
Регистрация: 04.08.2018
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
boris_latysh на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от akegor Посмотреть сообщение
А ШИМ какой? Их же не один в контроллере. Я ХЗ, чо там в абдурине применили.
Я взял 3 Шим ( NANO ) на 11 пине. (8 бит) он как бы нигде не участвует и на работу остальных функций не влияет.
boris_latysh вне форума  
Непрочитано 05.08.2018, 00:54  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,997
Сказал спасибо: 3,015
Сказали Спасибо 3,190 раз(а) в 2,164 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Техническим английским владеете? Могу бесплатно предоставить несколько страниц из зануала на применённый там микроконтроллер. TCCR2B - это только вершина айсберга.

И да, схемотехника драйвера и включение нагрузки - не будут лишними.
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Непрочитано 05.08.2018, 09:12  
boris_latysh
Прохожий
 
Аватар для boris_latysh
 
Регистрация: 04.08.2018
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
boris_latysh на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от ForcePoint Посмотреть сообщение
Техническим английским владеете? Могу бесплатно предоставить несколько страниц из мануала на применённый там микроконтроллер. TCCR2B - это только вершина айсберга.
Если можно с мануалом тыкните носом. А на понятном языке не встречалось описания?
На счет айсберга я уже понял. Параметры ШИМ Arduino не меняет (кроме скважности). Поэтому получается, что лезем напрямую в регистры управления. Опять же интуитивно подозреваю, что есть Библиотека с готовым решением которая это делает но пока ничего вменяемого не встретилось.

Схему приложил, но там ничего военного. С 11 ноги управляем мощным ключом. Ногу можно поменять в принципе 16 разрядный таймер не занят. Частоту 100 герц получили путем стендовых испытаний электромотора с помощью генератора ШИМ.
Миниатюры:
Нажмите на изображение для увеличения
Название: Nano1.jpg
Просмотров: 0
Размер:	164.4 Кб
ID:	131505  

Последний раз редактировалось boris_latysh; 05.08.2018 в 10:32.
boris_latysh вне форума  
Непрочитано 05.08.2018, 10:06  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,983
Сказал спасибо: 0
Сказали Спасибо 4,941 раз(а) в 2,370 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от boris_latysh Посмотреть сообщение
подозреваю, что есть Библиотека с готовым решение
и зачем она вам? в основе обдурины лежит, насколько помню, gcc, что позволяет, используя массу наработок winavr, решить проблему. а еще лучше - использовать авр студию и плату обдурины без абдурино иде. вообще такое на асме за час с отладкой без лишних вопросов решается
jump вне форума  
Сказали "Спасибо" jump
makakus (06.08.2018)
Непрочитано 05.08.2018, 12:24  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,997
Сказал спасибо: 3,015
Сказали Спасибо 3,190 раз(а) в 2,164 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от boris_latysh Посмотреть сообщение
А на понятном языке не встречалось описания?
Я поэтому и выделил слово "технический". Он очень прост и состоит на 90% из терминов и 10% из простых глаголов, предлогов и т.п. Без 120 времён и прочей херни.
Сообщение от boris_latysh Посмотреть сообщение
Если можно с мануалом тыкните носом.
Судя по приведённым в начале теме таблицам макаронники(?) для чего-то решили использовать даже не "быстрый ШИМ"... Тогда, для подгона на 100 Гц можно попробовать использовать режим 5 из таблицы 18-8, где максимум счёта задаётся регистром OCR2A (примерно 77..78 надо будет записать в OCR2A и 7 в младшие разряды TCCR2B). Выход, соответственно, придётся перести на второй канал сравнения и вывод OC2B. Но в этом случае существенно упадёт разрешающая способность.

Лучше - использовать режим 7 "быстрый ШИМ" (примерно 156 надо будет записать в OCR2A и 7 в младшие разряды TCCR2B), разрешение подрастёт до 7 бит.

P.S. Внятной аргументации для "ровно 100 Гц" мы так и не услышали. И схема не проливает много света.
Вложения:
Тип файла: pdf Timer2.pdf (62.9 Кб, 0 просмотров)
__________________
Экзорцист 40-го уровня.
ForcePoint вне форума  
Непрочитано 05.08.2018, 21:30  
boris_latysh
Прохожий
 
Аватар для boris_latysh
 
Регистрация: 04.08.2018
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
boris_latysh на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от ForcePoint Посмотреть сообщение
Судя по приведённым в начале теме таблицам макаронники(?) для чего-то решили использовать даже не "быстрый ШИМ"... Тогда, для подгона на 100 Гц можно попробовать использовать режим 5 из таблицы 18-8, где максимум счёта задаётся регистром OCR2A (примерно 77..78 надо будет записать в OCR2A и 7 в младшие разряды TCCR2B). Выход, соответственно, придётся перести на второй канал сравнения и вывод OC2B. Но в этом случае существенно упадёт разрешающая способность.

Лучше - использовать режим 7 "быстрый ШИМ" (примерно 156 надо будет записать в OCR2A и 7 в младшие разряды TCCR2B), разрешение подрастёт до 7 бит.
Понял. Теперь главный вопрос как выглядит команда которое все это заносит в OCR2A и TCCR2B?

Так было TCCR2B = (TCCR2B & 0b11111000) | 0x06;

Я правильно думаю ?????
Так нужно TCCR2B = (TCCR2B & 0b11111000) | 0x0E;
Добавил 1 (двоичную) в третий разряд и вместо "6" получилось "Е"
Или так TCCR2B = (TCCR2B & 0b11111100) | 0x06;
Или вставить "1" в двоичную цифру.
В общем синтаксис команд мне не понятен кто нибудь знает где его можно почитать.

Последний раз редактировалось boris_latysh; 05.08.2018 в 22:59.
boris_latysh вне форума  
Непрочитано 05.08.2018, 22:28  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,169
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

boris_latysh, а почему все маски не пользовать везде и однотипно двоичные (0b)?
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 06.08.2018 в 10:59.
mike-y-k вне форума  
Непрочитано 06.08.2018, 10:39  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Я правильно понял, что ШИМ генерируется на ноге MOSI? И тогда он, с большой вероятностью - программный?
(фирменный стиль "абдурино": ради возможности вывода ШИМ на любую ногу наплевать на аппаратные средства контроллера. Да и правильно: 120 Гц ШИМ - куда быстрее? Уже глаз не видит, как моргает светодиодег.
Чёрт с ним, можно и так, но никто же не сказал адептам, что контроллер - это ДРУГОЕ! НЕ IBM PC с LPT портом...) Между тем ШИМ с 1/10 тактовой делается легче лёгкого, правда, с хреновым разрешением.

Надо за объект программирования держать не "ардуино-нано", а контроллер. Что там, Мега328?
В той меге для ШИМа взять 16-разрядный таймер, если нужна плавность изменения скважности. Таймер запрограммировать на фазово-корректный ШИМ, рекомендованный для двигателей. Хотя, о чём это я...

Читать даташит на контроллер!!!

Не понимаю, почему изменение частоты на 20% уменьшит нагрев ключа. Полевой транзистор любит хороший драйвер...

PS Скажите, а в ардуино-IDE можно пройти программу в симуляторе по шагам? Я как-то пытался, не нашёл.

Последний раз редактировалось makakus; 06.08.2018 в 10:45.
makakus вне форума  
Непрочитано 06.08.2018, 13:18  
boris_latysh
Прохожий
 
Аватар для boris_latysh
 
Регистрация: 04.08.2018
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
boris_latysh на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Усилия не пропали даром. Текст функции где взял не помню
Понимание ее работы пришло благодаря ForcePoint,

Для удобства выделил функцию для настройки таймера "pwm_initial();" Запускаем ее в разделе "void setup()" :

void setup() {
pwm_initial();
.....
}
.........
void pwm_initial() {

DDRB |= 1 ‹‹ 1; // PB1 как выход, канал 1
DDRB |= 1 ‹‹ 2; // PB2 как выход, канал 2

TCCR1A = 0; // Сброс данных регистра
TCCR1B = 0; // Сброс данных регистра
TCNT1 = 0; // Установка нижнего предела

TCCR1B |= (1 ‹‹ CS12)| (1 ‹‹ CS10); // 1 -› CS12 Значение
1 -› CS10 Значение 16 МГц / (делитель) 1024 = 1562,5 Гц

TCCR1A |= (1 ‹‹ COM1A1) | (1 ‹‹ COM1B1); // Не инверсный режим работы

// Установка верхнего предела значением в бите ICR1
// Режим 14 из документации " Бастрый PWM "

ICR1 = 156; // 1562,5 Гц / 1 * ( 1 + 156 ) = 99,8 Гц !!!

TCCR1A |= (1 ‹‹ WGM11);
TCCR1B |= (1 ‹‹ WGM12) | (1 ‹‹ WGM13);

OCR1A = 416; // Начальное значение уровня 30%
OCR1B = 416; // Начальное значение уровня 30%
}

Использован 16 разрядный таймер. Arduino NANO это таймер "1".
Выход ШИМ берем на Пин - D10.
Описание таймеров взял тут
https://sites.google.com/site/qeewik...-the-atmega328
Изменяя значения делителя указанное в ( TCCR1B |= (1 ‹‹ CS12)| (1 ‹‹ CS10); ) значения ( ICR1 = 156; ) в моем случае легко меняется частота ШИМ с шагом 1 Гц.
boris_latysh вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прошивать Arduino mini nikola-7 Песочница (вопросы новичков) 5 10.03.2014 14:15
Проблема с Arduino Motor Shield domka Песочница (вопросы новичков) 6 29.07.2013 11:56
Алгоритм программного шима для светодиодов whoim AVR 20 30.06.2013 18:00
Из ШИМа - аналог. vo1 Микроконтроллеры, АЦП, память и т.д 17 24.12.2009 14:54


Часовой пояс GMT +4, время: 22:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot