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

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

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

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

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

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


 
Опции темы
Непрочитано 23.09.2012, 02:28  
Андрей1
Прохожий
 
Регистрация: 13.08.2012
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Андрей1 на пути к лучшему
По умолчанию Как управлять рулевой сервомашинкй

Всем привет ..
Хочу разобраться с рулевой сервомашинкой, только незнаю как программно реализовать управляющий сигнал (этот который подаэться на управляющий вход сервомашинкы)
я знаю какой должен быть сигнал, а вот как его программно написать незнаю как.. (
Для написания программы пользуюсь CodeVisionAVR V2.05.0, микроконтроллер ATMega16..
Можете просто бросить кусок кода с рус коментариями, или просто объяснить как ее написать ...
Реклама:
Андрей1 вне форума  
Непрочитано 23.09.2012, 04:11  
ILYA1111
Прохожий
 
Регистрация: 28.08.2012
Адрес: Москва
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
ILYA1111 на пути к лучшему
По умолчанию Re: как управлять рулевой сервомашинкй

Очень распространённый вопрос. Гугл на запрос "ATMega PWM servo source" выдал, например, следующее:

с http://extremeelectronics.co.in/avr-...crocontroller/

/************************************************** ****************************

Program to demonstrate the use servo motors with AVR Microcontrollers.

For More Details Visit: http://www.eXtremeElectronics.co.in

Copyright (c) 2008-2010
eXtreme Electronics, India

Servo Motor: Futaba s3003
Servo Control PIN (white): To OC1A PIN
Crystal: 16MHz
LOW Fuse: 0xFF
HIGH Fuse: 0xC9

Compiler:avr-gcc toolchain
Project Manager/IDE: AVR Studio

NOTICE
--------
NO PART OF THIS WORK CAN BE COPIED, DISTRIBUTED OR PUBLISHED WITHOUT A
WRITTEN PERMISSION FROM EXTREME ELECTRONICS INDIA. THE LIBRARY, NOR ANY PART
OF IT CAN BE USED IN COMMERCIAL APPLICATIONS. IT IS INTENDED TO BE USED FOR

HOBBY, LEARNING AND EDUCATIONAL PURPOSE ONLY. IF YOU WANT TO USE THEM IN
COMMERCIAL APPLICATION PLEASE WRITE TO THE AUTHOR.


WRITTEN BY:
AVINASH GUPTA
me@avinashgupta.com

************************************************** *****************************/
#include ‹avr/io.h›

#include ‹util/delay.h›

//Simple Wait Function
void Wait()
{
uint8_t i;
for(i=0;i‹50;i++)
{
_delay_loop_2(0);
_delay_loop_2(0);
_delay_loop_2(0);
}

}

void main()
{
//Configure TIMER1
TCCR1A|=(1‹‹COM1A1)|(1‹‹COM1B1)|(1‹‹WGM11); //NON Inverted PWM
TCCR1B|=(1‹‹WGM13)|(1‹‹WGM12)|(1‹‹CS11)|(1‹‹CS10); //PRESCALER=64 MODE 14(FAST PWM)

ICR1=4999; //fPWM=50Hz (Period = 20ms Standard).

DDRD|=(1‹‹PD4)|(1‹‹PD5); //PWM Pins as Out

while(1)
{

OCR1A=97; //0 degree
Wait();

OCR1A=316; //90 degree
Wait();

OCR1A=425; //135 degree

Wait();

OCR1A=535; //180 degree
Wait();
}
}
ILYA1111 вне форума  
Непрочитано 23.09.2012, 04:17  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: как управлять рулевой сервомашинкй

Сообщение от Андрей1 Посмотреть сообщение
просто бросить кусок кода с рус коментариями, или просто объяснить как ее написать
Сообщение от Андрей1 Посмотреть сообщение
бросить кусок кода с рус коментариями, или просто объяснить как ее написать
Слишком сложная задача для этого форума.
1. Трудно подобрать именно с русскими каментами (английский не пройдет?)
2. Объяснять просто о сложном, не зная на каком уровне слушатель - пустая затея.
3. Есть спец. форумы по этой тематике. Здесь помогут кратко и емко - ШИМ. Но ведь пойдут другие вопросы, не так ли?
__________________
С уважением,
Vic / ut1wpr

Последний раз редактировалось ut1wpr; 23.09.2012 в 04:19.
ut1wpr вне форума  
Непрочитано 23.09.2012, 19:26  
Андрей1
Прохожий
 
Регистрация: 13.08.2012
Сообщений: 7
Сказал спасибо: 2
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Андрей1 на пути к лучшему
По умолчанию Re: как управлять рулевой сервомашинкй

а как мне сделать ШМИ с помощью автоматического генератора в CVAVR?
Андрей1 вне форума  
Непрочитано 23.09.2012, 20:37  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: как управлять рулевой сервомашинкй

Сообщение от Андрей1 Посмотреть сообщение
а как мне сделать ШМИ с помощью автоматического генератора в CVAVR?
Волшебные слова Буратины на поле Чудес. В стране, ну, в общем, там...
"Крэкс-Пэкс-ШМИкс!"
"Учиться, учиться и еще раз учиться!" (С) ВИЛ
Начните с изучения возможностей примененного (того, что вы решили использовать, или он вас..) МК. В нем есть много интересного, вовнутрях.
Целый мир откроете. Мир таймеров, мир тактов, мир регистров. Сделав из них смесь по своему вкусу можно получить и ШМИ.
Вы хоть что-то знаете? Что-то уже где-то читали?
Или вы считаете, что ряды Фурье запросто в первом класе 3-го сентября можно?..
Извините, но на эту тему, да еще и с AVR стооолько информации везде.
Подбирайте под свой уровень сами. Нам он неизвестен. Впрочем, приблизительно ясно..
__________________
С уважением,
Vic / ut1wpr

Последний раз редактировалось ut1wpr; 23.09.2012 в 22:38.
ut1wpr вне форума  
Непрочитано 23.09.2012, 21:33  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,797
Сказал спасибо: 2,913
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: как управлять рулевой сервомашинкй

Сообщение от Андрей1 Посмотреть сообщение
а как мне сделать ШМИ с помощью автоматического генератора в CVAVR?
Накликать.
ForcePoint вне форума  
Непрочитано 28.09.2012, 16:59  
Barmaley13
Частый гость
 
Регистрация: 04.09.2005
Сообщений: 19
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Barmaley13 на пути к лучшему
По умолчанию Re: Как управлять рулевой сервомашинкй

Насчет PPM. Имею бесколлекторный двигатель, тот, что используется в моделях. Контроллер двигателя управляется именно PPM. Нужно было его включить. Реализовал на Tiny13. Тактировала сама себя 9,6 МГц. 3 кнопки - стоп, средние обороты, максимальные обороты. Импульсы формировались в прерывании таймера. Функций больше никаких не требовалось - тупо включала-выключала двигатель.
Прерывание таймера:
Код:
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
    TCNT0 = 241;
    if (f)
    {
        if (c==a)
        {
            c=0;
            f=!f;            
        } 
    }            
    else
    {
        if (c==(200-a))
        {
            c=0;
            f=!f;            
        }
    }
    PORTB.0=f;
    c++;
}
Основной цикл:

Код:
void main(void)
{
CLKPR=0x80;
CLKPR=0x00;
PORTB=0x00;
DDRB=0x01;

TCCR0A=0x00;
TCCR0B=0x03;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

GIMSK=0x00;
MCUCR=0x00;

TIMSK0=0x02;

#asm("sei")
a=11;
if (PINB.1==0) a=11;
if (PINB.2==0) a=15;
if (PINB.3==0) a=18;

while (1)
      {
        if (PINB.1==0) a=11;
        if (PINB.2==0) a=15;
        if (PINB.3==0) a=20;
      }
}
Да, еще...
Код:
unsigned int a;  
unsigned int c; 
bit f;
__________________
Фарш невозможно провернуть назад,
И мясо из котлет не восстановишь...
Barmaley13 вне форума  
Непрочитано 30.09.2012, 20:10  
=GM=
Прописка
 
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
=GM= на пути к лучшему
По умолчанию Re: Как управлять рулевой сервомашинкй

Сообщение от Barmaley13 Посмотреть сообщение
Прерывание таймера:
Код:
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
 TCNT0 = 241;
  if (f)
  {
    if (c==a) с=0;
  }            
  else
  {
   if (c==(200-a)) c=0;
  }
  f=!f; 
  PORTB.0=f;
  c++;
}    
Основной цикл:
f=1;
while (1)
{
  if (PINB.1==0) a=11;
  if (PINB.2==0) a=15;
  if (PINB.3==0) a=20;
}
В основном цикле надо бы защититься от смены переменной а при любом значении переменной с. Например, при значении (200-а)=189, если значение с станет равным 181, 182,..,188, а переменная а в это время сменится с 11 на 20, то тогда значение (200-а) будет меньше текущего значения с, так что период f=1 будет длиться 65535. Ну и значение f хорошо бы определить перед входом в main на всякий пожарный.

А прерывание можно сделать попроще
Код:
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
 TCNT0=241;
 c++;
 if(c==a) PORTB.0=0;
 if(c==199)
 {
  c=0;
  PORTB.0=1;
 }
}

Последний раз редактировалось =GM=; 30.09.2012 в 20:17.
=GM= вне форума  
Непрочитано 01.10.2012, 12:48  
Barmaley13
Частый гость
 
Регистрация: 04.09.2005
Сообщений: 19
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Barmaley13 на пути к лучшему
По умолчанию Re: Как управлять рулевой сервомашинкй

Согласен! Я выложил весь свой код. У меня просто стояла задача включить и выключить мотор... А для более серьезной задачи проверки необходимы.
__________________
Фарш невозможно провернуть назад,
И мясо из котлет не восстановишь...
Barmaley13 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как управлять таким частотником ? gilera Производственное оборудование 26 24.01.2012 20:24
Как управлять микросхемой FT232? Magadan69 Цифровые сигнальные процессоры 17 04.10.2011 11:33
Как управлять аналоговым тюнером xoz Видеотехника 4 19.05.2011 02:36
Как правильно управлять мотором? DropSoft Автоматика и аппаратура связи 15 12.10.2010 16:35
[Решено] Как управлять лучом лазера? Гость Делимся опытом 81 26.04.2005 18:53


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


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