roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 12 фев 2009, 16:25

realsystem писал(а):Все в принципе понятно, но почему-то среднее положение сервы получилось 0.48 гр.

Тут вроде как раз смотрели мёртвую зону у серв недавно, получалось 10мкс, при разбеге от 1000мкс до 2000мкс ширины импульса - это не более 100 гарантированных положений, значит, при 90° качания, 0.5° - это нормальная погрешность может оказаться.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение realsystem » 12 фев 2009, 16:26

Duhas писал(а):есть вероятность что при вашем кварце невозможно абсолютно точно дать нужный сигнал... хотя чорт его разбери что там за причина ...

кварца пока нет, все от внутреннего генератора. Да и особая точность не нужна. Может просто пренебречь этим углом? Все равно когда будет реальная серва - нужно будет под нее отлаживаться.
realsystem
 
Сообщения: 629
Зарегистрирован: 01 фев 2009, 01:32
Откуда: Саратов
Skype: realsystem_stas
прог. языки: C, Bash, Perl
ФИО: Станислав

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 12 фев 2009, 16:27

=DeaD= писал(а):при разбеге от 1000мс до 2000мс

в 1000 раз меньше
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение =DeaD= » 12 фев 2009, 16:34

Точно! :) в моих 1000-2000 читать не "мс", а "мкс" :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение realsystem » 16 фев 2009, 14:42

Господа, надо совет. Есть у меня сейчас два проекта: шим из примера переделанный под мои нужды и управление сервой из примера урезанный до одной сервы. Они оба используют один таймер №1 и одни порты (OCR1A, OCR1B). Как лучше объединить эти два проекта в один? Подскажите хоть примерно, незнаю от чего оттолкнуться. Проц Atmega8.
Вложения
servo1.rar
(59.19 КиБ) Скачиваний: 9
regul3.rar
(95.93 КиБ) Скачиваний: 12
realsystem
 
Сообщения: 629
Зарегистрирован: 01 фев 2009, 01:32
Откуда: Саратов
Skype: realsystem_stas
прог. языки: C, Bash, Perl
ФИО: Станислав

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 16 фев 2009, 15:06

realsystem писал(а):Они оба используют один таймер №1 и одни порты (OCR1A, OCR1B). Как лучше объединить эти два проекта в один?

Точно так как в задаче 8 - http://avr123.nm.ru/z8.htm

Проблема в том что на серве наверно регулировка слишком грубой станет. Так как ШИМ на servo очень маленький всегда. Можно просто не использовать ножки ШИМ для серво.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение realsystem » 16 фев 2009, 15:32

Т.е. использовать один 1ый таймер для обоих задач?
realsystem
 
Сообщения: 629
Зарегистрирован: 01 фев 2009, 01:32
Откуда: Саратов
Skype: realsystem_stas
прог. языки: C, Bash, Perl
ФИО: Станислав

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 16 фев 2009, 15:47

Возможно. В прервании таймера (по задаче 6 - по переполнению или по досчету значения) нужно вставить счетчик и когда обн будет насчитывать некоторое число вормировать управл импульст на серву.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение realsystem » 17 фев 2009, 13:42

Так, решил пока не мучаться с объединением и отладить для начала регулятор. Собрал наконец-то платку, проверил просто с delay - все работает, и смена скорости вращения двигателя и смена полярности (в смысле шим на delayях :)). Теперь самое интересное, подсовываю аппаратный шим из примера выше(regul3) - двигатель крутится с одинаковой максимальной скоростью. В чем дело? В протеусе естесственно все нормально работает :) В чем могут быть грабли?
realsystem
 
Сообщения: 629
Зарегистрирован: 01 фев 2009, 01:32
Откуда: Саратов
Skype: realsystem_stas
прог. языки: C, Bash, Perl
ФИО: Станислав

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 17 фев 2009, 13:46

В схеме в коде - много еще в чем. Показывай.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение realsystem » 17 фев 2009, 15:50

Ну программка выше в архиве приложена regul3.rar

Плата собрана точно, перепроверил. Когда без аппаратного шима все прекрасно работает :)

А схема таже

Добавлено спустя 1 час 58 минут 29 секунд:
Кто-нибудь может подсказать?
Вложения
untitled.JPG
realsystem
 
Сообщения: 629
Зарегистрирован: 01 фев 2009, 01:32
Откуда: Саратов
Skype: realsystem_stas
прог. языки: C, Bash, Perl
ФИО: Станислав

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 17 фев 2009, 15:54

Проверь есть ли шим и какой он. Можно мотор отключить, заменить на резситор ом на 100 и тоже померить ШИМ. Если частота ШИМ не высокая то можно звуковую плату как осцил использовать.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение realsystem » 17 фев 2009, 16:12

avr123.nm.ru писал(а):Проверь есть ли шим и какой он. Можно мотор отключить, заменить на резситор ом на 100 и тоже померить ШИМ. Если частота ШИМ не высокая то можно звуковую плату как осцил использовать.

А до какой частоты можно использовать звуковик как осцил? У меня все как в примере, настройки не менял вроде :)
realsystem
 
Сообщения: 629
Зарегистрирован: 01 фев 2009, 01:32
Откуда: Саратов
Skype: realsystem_stas
прог. языки: C, Bash, Perl
ФИО: Станислав

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение avr123.nm.ru » 17 фев 2009, 16:16

Звуковухи разные. До трети или четверти частоты дискретизации карты можно понять что с сигналом.

Можно делитель использовать на логике - счетчик какой нибудь.

Можно просто резистор 10 кОм прицепить и конденсатор 0.1 мкФ на землю - напруга на нем будет примерно пропорциональна величине ШИМ.

Изголится всяко можно. Конечно Осциллограф поудобней.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: МикроКонтроллеры начинающим - общие вопросы

Сообщение boez » 17 фев 2009, 16:37

Измерь уровень ШИМ просто тестером на выходе OC1A (в режиме постоянного напряжения, к примеру если ШИМ 25%, то на этом выходе вольтметр покажет четверть питания). Если ШИМ нормальный - ищи проблемы в управлении ЛД-шкой по остальным портам, если не нормальный - ищи проблемы в настройке управляющих регистров таймера и ШИМ, попробуй другие режимы ШИМ к примеру. На глаз вроде все нормально.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Пред.След.

Вернуться в Микроконтроллеры

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 8