|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
||||||
Управление сервоприводом11.01.2013, 00:56. Показов 8762. Ответов 11
Метки нет (Все метки)
Снова нужна помощь сообщества :) Пытаюсь прикрутить к коду, представленному ниже, управление ШИМом, чтобы рулить сервомотором. От кнопки должно прилетать прерывание, после чего включается светодиод и серв устанавливается в какое-нибудь заданное положение. Никак не получается сдвинуть серво. Очень хочу понять как управлять им на примере приведённого кода.
0
|
||||||
| 11.01.2013, 00:56 | |
|
Ответы с готовыми решениями:
11
Управление сервоприводом по Wi-Fi Управление сервоприводом (мой вариант) Управление сервоприводом |
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
||||||
| 11.01.2013, 03:19 | ||||||
|
Ага, вроде разобрался. Код:
0
|
||||||
|
Sir60
|
|
| 13.01.2013, 01:37 | |
|
Бит режима энергопотребления выставлен правильно. Если ожидается прерывание только от порта и генераторы не нужны для таймерож и пр. во время сна, то МК можно погрузить в режим LPM4. Токопотребление снизится существенно.
А по поводу приема кода с клавиатуры, в Интернете полно информации. В конце концов, возьмите код для любого другого МК и адаптируйте его к MSP430. Главное - понять принцип. |
|
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
||
| 13.01.2013, 22:25 | ||
Буду копать код в сторону аврок.
0
|
||
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
|
| 14.01.2013, 00:48 | |
|
Сколько не искал, все прошивки только ан асме( Есть тут неплохой пример http://sxim.net/mc/ms130.php , но код слишком наворочен для меня.
0
|
|
|
Sir60
|
|
| 16.01.2013, 01:34 | |
|
Я так понял, что Вы не читаете код на асме для AVR. Тогда посмотрите здесь для х51. Там все разжевано в смысле функционирвания и даже есть блок-схема алгоритма. Могу прислать свой код на асме для х51, если поможет. На MSP430 программировать клавиатуру мне пока не нужно было.
http://www.edsym51.com/8051Not... tml#keypad |
|
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
||
| 16.01.2013, 19:06 | ||
0
|
||
|
Sir60
|
|
| 16.01.2013, 21:43 | |
|
Посмотрите еще здесь:
http://www.ti.com/lit/an/slaa139/slaa139.pdf Секцию 5.5.5 в http://www.ti.com/lit/an/slaa024/slaa024.pdf и главу 7.2.2 в книге "MSP430 Microsontroller Basics" , Johm H. Davies. Где-то видел ее в сети для скачивания. |
|
|
Sir60
|
|
| 17.01.2013, 04:39 | |
|
Поразмыслив еще на досуге над Вашим вопросом и перечитав его внимательно, мне кажется, что я его не так понимал ранее. Вам нужно в зависимости от комбинации нажатия 3-х кнопок повернуть серво на определенный угол. Если обозначить кнопки через A,B,C, то, скажем, комбинация OOS должна соответствовать одному углу, а, например, BCA - другому. Если так, то для 3-х кнопок будет всего 27 различных комбинаций. Заведем массив длины 27, в котором будут находиться коды, посылаемые на серво. Задача таким образом, сводится к вычислению индекса массива (от 0 до 26) в зависимости от комбинации нажатий 3-х кнопок.
Присвоим кнопке А число 0, кнопке B - число 1, и кнопке C - число 2. Тогда комбинации OOS из примера выше будет соответствовать число 002, а комбинации BCA - число 230. Будем рассматривать это число как число представленное в троичной системе счисления. Для вычисления индекса массива нужно будет просто перевести его в десятичную систему. Вычисления производятся по формуле index = K1*9 + K2*3 + K3, где К1,К2,К3 - числа, соответствующие первой, второй, и третьей нажатым кнопкам, соответственно. Например, для комбинации OOS получим index = 0*9 + 0*3 + 2 = 2, а для комбинации BCA получим index = 1*9 + 2*3 + 0 = 15. |
|
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
|
| 17.01.2013, 19:23 | |
|
Вот! Всё казалось бы так просто, но до чего я так и не смог додуматься! В итоге можно сделать даже из двух кнопок, а третью нажимать, когда хотим ввести код. Получается в обработчике прерываний можно применить метод switch case. Вот только у меня пока трудности с синтаксисом СИ и не знаю как присвоить кнопке какое-то значение. Почему-то на примерах, которые я встречал, нигде не видел такого или видел, но не понял ничего.
И ещё вопрос: почему именно такая формула для вычисления индекса? Ну то есть я понимаю почему 27 значений, но с выводом формулы чего-то разобраться не могу.
0
|
|
|
Sir60
|
|||||||||||
| 17.01.2013, 20:30 | |||||||||||
|
Формула эта вытекает из алгоритма перевода чисел их троичной системы в десятичную. Почитайте Википедию про системы счисления. Вот примерный код для вычисления индекса:
|
|||||||||||
|
x-omtr
|
|
| 29.01.2013, 15:02 | |
|
Я так понял МК будет в спящем режиме? тогда пусть он будет просыпаться от прерывания от порта. В обработчике смотрим с какой ноги порта пришел запрос, ну и записываем соответствующее значение куда-либо.
Касательно сервы. Нужны 2 положения? Тоесть, динамического изменения ее положения не будет? Тогда советую ШИМ повесить на таймер, а положение переключать сменой значения в регистре таймера. А 27 комбинаций из 3 кнопок вытекают из освнов комбинаторики (имеем 3 знакоместа, для каждого из которых имеем по 3 возможных значения) Хотя я что-то затупил, автор использует ногу МК в качестве вывода PWM. Я же привык писать 1-2 ШИМ канала вручную в обработчике прерывания от таймера. а импульсы на все сервы одинаковые должны быть (разве что плюсминус маленькие проценты) частота ШИМа 50-100 Гц (моя и на 200 работала))) и вычислить длину импульса несложно опытным путем (опять же при писанине вручную) вот теория и числа |
|
| 29.01.2013, 15:02 | |
|
Помогаю со студенческими работами здесь
12
управление сервоприводом кнопкой Аналоговое управление сервоприводом управление сервоприводом используя геймпад от ps2 работа сервоприводом Проблема с сервоприводом Arduino Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|