roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 май 2025, 02:32

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 08 апр 2014, 10:47 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
минутка занимательной математики

допустим желаемые обороты 10 тысяч в минуту
тоесть время одного оборота EncoderPulseLength = 0.006 сек., если вал наполовину закрашен чёрным то время между двумя сменами состояния 0.003 сек.
(если настроить прерывание не на смену уровня, а на фронт то получим в 2 раза меньшую точность но в 2 раза более редкие импульсы, может быть полезно на максимальной скорости)

пусть минимальная скорость будет 2000 оборотов, для мотора пылесоса это ведь норм?
тогда EncoderPulseLength = 0.015 сек
ну а максимум сделаем 15000 оборотов, тогда EncoderPulseLength = 0.002

тогда разница между 10 т. и 15 т. 0.001 сек.
функция micros выдаёт нам минимум 0.000004 сек., тоесть диапазон от 10 до 15 т. об. в идеале можно разбить на 250 частей
что в принципе нормально) можно делать.

итого
диапазон регулировки EncoderPulseLength от 15000 μс до 2000 μс

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 08 апр 2014, 15:01 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Неееее, все не так :)
Прерывание от int0 настраиваем на фронт или спад. В прерывании считываем таймер, сохраняем в tmp для след. вычислений. Таймер останавливаем, сбрасываем, запускаем. Получаем разрешение около 0.5-3 мкс. (при тактовой 16 мгц). Еще лучше задействовать регистр "захват/сравнение", разрешение будет 1 такт кварца.
Только это все будет работать (как и твой вариант), если энкодер работает без "дребезга". Что мало вероятно, ибо двигатель может вообще остановиться на грани перехода черное/прозрачное (или медленное вращение), получаем неопределенное состояние. Если такие состояния возможны, то надо делать квадратурный энкодер (два меандра сдвинутые относительно друг друга на 180 град.)) и более сложная обработка. Тогда неопределенное состояние одного фотоприемника не будет искажать данные, т.к. 2-й фотоприемник будет находиться в лучших условиях (сдвиг на 180 град.)
Вообще, надо погуглить, что тама предлагают ардуинщикам для обработки временных интервалов регистром "захват/сравнение", скорее всего уже украдено до нас :)

Добавлено спустя 15 минут 2 секунды:
Вот неплохо:
http://robocraft.ru/blog/technology/734.html
че-то с кодом для дуины, хз что...
http://cnc-club.ru/forum/viewtopic.php?f=41&t=2972
Ну, вощем не маленький :)
в гугль: "quadrature encoder arduino code"
http://forum.arduino.cc/index.php/topic,41615.0.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 08 апр 2014, 15:54 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
неее, квадратурный энкодер я точно городить не буду.

между работой с таймером в прерывании и использовании micros() нет никакой разницы
micros() это и есть время с таймера, только его не надо останавливать, сбрасывать и запускать.
оно само работает.

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

то есть все дела можно сократить до:
Dmitry__ писал(а):
В прерывании считываем micros(), сохраняем в tmp для след. вычислений. Таймер останавливаем, сбрасываем, запускаем.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 08 апр 2014, 16:02 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Dmitry__ писал(а):
делать квадратурный энкодер (два меандра сдвинутые относительно друг друга на 180 град.))
на 90

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 08 апр 2014, 16:21 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
avr123.nm.ru писал(а):
на 90

Ой, да, туплю :oops:

Добавлено спустя 13 минут 7 секунд:
Myp писал(а):
то есть все дела можно сократить до:
Dmitry__ писал(а):
В прерывании считываем micros(), сохраняем в tmp для след. вычислений.

А этот "micros()" как выполняется? Где он этот "unsigned long" обрабатывает, в прерывании? Если не в прерывании, то твой int0 может возникнуть во время обработки этих 4-х байт "unsigned long" и получим кривые данные, надо курить обработчик micros().


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 08 апр 2014, 20:10 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
micros() это Timer0
просто возвращается значение.

у меня же 2 аппаратных прерывания, в int1 считаю длину импульса по micros(), а int0, которое детектор нуля, уже полюбому не может произойти? тоесть произойдёт сразу после...

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

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 13 апр 2014, 22:49 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
проект временно завис

ИК сенсор требует припаивания резисторов для работы.
даже незнаю что проще, паять или дождаться ик датчика китайского за 60 рублей?

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

вобщем паяние деталей меня огорчает безмерно

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 30 апр 2014, 09:49 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
заказал датчик
Изображение
аж 54 рубля за всё удовольствие, и светодиодики мигающие, и подстроечный резистор.
http://www.ebay.com/itm/New-Obstacle-Av ... 5af736dd18

светодиоды перепаяю на проводки и запихну в корпус мотора.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 07 июл 2014, 13:30 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
получил датчик.
скопипастил чужой проектик и сбацал другой скетч управления.
https://codebender.cc/sketch:37067
но всё никак не дойдут руки проверить в железе
я уже успел найти второй пылесос с регулятором и выковырять оттуда ещё одну платку управления.

заодно нашёл крутецкую микруху TDA1085

при всей простоте и полезности, почему-то не нашёл китайского драйвера на её базе.. :(

Добавлено спустя 18 минут 9 секунд:
кстати, что внутри вот такого регулятора?
http://www.ebay.com/itm/Asg-Precision-A ... 2c746d93f6

Изображение
судя по картинке и описанию он с поддержкой оборотов

может там на выходе симистор и его мона перепаять на мощный?

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: arduino DC motor. управление мотором 220 ардуиной.
СообщениеДобавлено: 22 июл 2014, 15:18 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
вчерась вечером пытался собрать в кучу тиристор энкодер и ардуину.
как умная маша наклеил на вал мотора бумажку, рядом с ротором, половину закрасил в чёрный цвет.
проверил - работает, на белом сигнал есть, на чёрном пропадает.

собрал в корпус - всё время сигнал есть...
походу внутри в корпусе мотора ИК свет отражается от корпуса и попадает на фототранзистор.
надо всё разбирать и надеть термоусадку чёрную на излучатель и приёмник, чтоб работало только в луче.
тьфу прям.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO