роботы робототехника микроконтроллеры


 Страниц (2): [1] 2 »   

> Без описания
happyend Post Id


Рядовой


Сообщений всего: 15
Дата рег-ции: Янв. 2012  



наконец пришли сервы ,но не знаю как им управлять на Atmega8.Весь инет перерыл ,все как-то не понятно.Может кто-нибудь пошагово объяснить,Пример кода простого.И сколько можно всего их подключать ?Пользуюсь AlgorithmBuilder и Programmers Notepad [WinAVR].Спасибо.
 
 Top
Петр Киселев Post Id



Гуру


Сообщений всего: 2397
Дата рег-ции: Окт. 2012  



happyend, посмотри по этой ссылке:

http://dvrobot.ru/ardu_servo_potenc

Разберись!
 
 Top
happyend Post Id


Рядовой


Сообщений всего: 15
Дата рег-ции: Янв. 2012  



Петр Киселев Код с этой статьи у меня не работает .не создается hex файл=\
 
 Top
Петр Киселев Post Id



Гуру


Сообщений всего: 2397
Дата рег-ции: Окт. 2012  



Попробуйте сделать следующее:
1. В гугле или яндексе наберите DV ROBOT.
2. Войдите на этот сайт.
3. Войдите там на форум и зарегистрируйтесь.
4. Задайте свой вопрос.

Можно чуть иначе:
На сайте DV ROBOT в разделе Микроконтроллеры находите Драйвер 2А и кликаете по нему.
Там находите скетчи от Максима Грач. На второй странице есть скетч по работе с сервой.
Успеха!
(Добавление)
А вообще-то по ссылке удалось до статьи Максима Грач добраться?
(Добавление)
И еще. Я не спросил, какой МК вы используете? Может быть вам Ардуино и не подойдет.
 
 Top
happyend Post Id


Рядовой


Сообщений всего: 15
Дата рег-ции: Янв. 2012  



Да до статьи добрался.Ардуино нет. использую atmega8

(Отредактировано автором: 11 Августа, 2013 - 17:27:27)

 
 Top
Петр Киселев Post Id



Гуру


Сообщений всего: 2397
Дата рег-ции: Окт. 2012  



Ардуино организовано на АТмегах. Разберись со скетчами и вперед!
 
 Top
happyend Post Id


Рядовой


Сообщений всего: 15
Дата рег-ции: Янв. 2012  



вот только их коды мне не подходят.
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



happyend пишет:
вот только их коды мне не подходят.



http://www.avislab.com/blog/serva/

написано на WINAVR для atmega8
 
 Top
Петр Киселев Post Id



Гуру


Сообщений всего: 2397
Дата рег-ции: Окт. 2012  



happyend, не забудь killgurу "Спасибо" сказать!
И я благодарю! За напоминание. Скачал уже давно, но у меня АТмеги8 в кроватках и я успешно об этой статье забыл. Да и зациклился сейчас на Ардуино.
 
 Top
happyend Post Id


Рядовой


Сообщений всего: 15
Дата рег-ции: Янв. 2012  



да вам спасибо всем ,эту статью я видел,прошивал,но серва почему-то крутиться всегда в одну сторону..

(Отредактировано автором: 12 Августа, 2013 - 21:47:43)

 
 Top
happyend Post Id


Рядовой


Сообщений всего: 15
Дата рег-ции: Янв. 2012  



Всем привет.Помогите с кодом разобраться. Как сделать ,что бы светодиод несколько раз моргал,и каждое моргание было тускнее, пока совсем не погаснет.

CODE:



#include <avr/interrupt.h>
#include <avr/io.h>

volatile char pwm_counter,pwm_r,pwm_g,pwm_b;

/*** прерывание по переполнению Т0 ***/
ISR (TIMER0_OVF_vect)
{
if (pwm_counter++ > 63)
{
PORTB = 0x00;
pwm_counter = 0;
}
if (pwm_counter > pwm_r)
PORTB |= (1 << PB1);
if (pwm_counter > pwm_g)
PORTB |= (1 << PB2);
if (pwm_counter > pwm_b)
PORTB |= (1 << PB3);
}

/*** процедура задержки в микросекундах ***/
void delay_us(unsigned char time_us)
{ register unsigned char i;

for(i = 0; i < time_us; i++) // 4 цикла
{ asm (" PUSH R0 "); // 2 цикла
asm (" POP R0 "); // 2 цикла
// 8 циклов = 1 us для 8MHz
}
}
/*** процедура задержки в миллисекундах ***/
void delay_ms(unsigned int time_ms)
{ register unsigned int i;

for(i = 0; i < time_ms; i++)
{ delay_us(25);
delay_us(25);
delay_us(25);
delay_us(25);

}
}
/*** красный цвет ***/
void red (unsigned int time)
{
for (char a = 0; a<165; a++)
{
pwm_r = 164 - a; //увеличение
pwm_g = 164;
pwm_b = 164;
delay_ms(time);
}
for (char a = 0; a<165; a++)
{
pwm_r = a; //уменьшение
pwm_g = 164;
pwm_b = 164;
delay_ms(time);
}
}



/*** красный цвет 2***/
void red2 (unsigned int time)
{
for (char a = 0; a<165; a++)
{
pwm_g = 164 - a; //увеличение
pwm_r = 164;
pwm_b = 164;
delay_ms(time);
}
for (char a = 0; a<165; a++)
{
pwm_g = a; //уменьшение
pwm_r = 164;
pwm_b = 164;
delay_ms(time);
}
}



int main (void)
{
DDRB = (1 << PB3)|(1 << PB2)|(1 << PB1);
// PB3,2,1 - выходы
TIMSK |= (1 << TOIE0);
// разрешение прерывания
TCCR0 |= (0 << CS02)|(0 << CS01)|(1 << CS00);
// без предделителя
sei();// глобальное разрешение прерываний

while(1)
{
red(5);
red2(5);



}
}

 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



happyend так а что за изначальная частота? мега8 может от 1 до 16, а мегах8 до 24 (проверено, на понижено\повышенном питании).
Смотри как делоаю я- (ну я не хвастался, да)- каждую строчку коментируй по руски. Ведь забудешь через месяц, на себе проверенно Улыбка))
(Добавление)
заодно скажите как будет оперпатор XOR in C -^= ?
(Добавление)
Пани которые разбираются в микроконтроллерах-
/*** процедура задержки в микросекундах ***/
В тактах может кто умеет писать?
(Добавление)
Не пани, а парни, айм сори
(Добавление)
happyend вот так и рождается мегафлуд, ты уж извини
 
 Top
happyend Post Id


Рядовой


Сообщений всего: 15
Дата рег-ции: Янв. 2012  



cjA Код не мой.Вот пытаюсь разобраться)
 
 Top
Петр Киселев Post Id



Гуру


Сообщений всего: 2397
Дата рег-ции: Окт. 2012  



cjA, ты пишешь:
cjA пишет:
Пани которые разбираются в микроконтроллерах-
/*** процедура задержки в микросекундах ***/


А может, все-таки в коде правильно было?
happyend пишет:
/*** процедура задержки в миллисекундах ***/


Следует указывать где правильно, а где - нет!
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



Петр Киселев пишет:
А может, все-таки в коде правильно было?
А кто спорит? Что показывют прочитаные фьюзы. Какая частота ? Это к тебе, happyend
(Добавление)
Ты новый МК покупал? Может и нет. Тут приводились факты. Кусок пластика и металические лапки, на брюхе фирма какая-то, внутри- пластилин
(Добавление)
happyend, мне нужно сделать шим моторов на тележку к весне, так вот выдам секрет- как это делать аппаратно я не понял, как люди музыку слушают- ваще не верю, я буду делать программно (наверное в каком то из таймерных прерываний, но может и в основном цикле
happyend пишет:
for (char a = 0; a<165; a++)
{
pwm_r = 164 - a; //увеличение
pwm_g = 164;
). говорит о том что прога заточена под определенную частотуту
 
 Top
Страниц (2): [1] 2 »
« Делимся опытом »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru