Технический форум по робототехнике.
Костя » 31 мар 2014, 17:51
Помогите пожалуйста написать программу на языке программирования С++ на у правление сервоприводом при нажатие кнопки, или подскажите как написать эту программу, мне надо что бы нажав первую кнопку сервопривод про крутился на 10 градусов при нажатие на вторую кнопу он про крутился на 20 градусов и так далее, Схему я скинул в программе Proteus. У меня большая просьба помогите мне. Мне очень сильно нужна ваша помощь помогите пожалуйста!!!
- Вложения
-
схема1.rar
- В Proteus
- (23.06 КиБ) Скачиваний: 0
Madf » 31 мар 2014, 20:21
опять горящий проект по учебе..)
Костя » 31 мар 2014, 20:30
скажем просто я студент с меня много не возьмешь и не из богатой семьи я так что так сразу ответить не магу=( хотелось бы что бы мне помогли хотя бы простеньким примером что бы я понял примерно как она пишется, я много не прощу. Тут как вы сами захотите, но нормальных денег я вам дать не могу!!!Так что сами решайте как поступить вам помочь мне или нет!!!
Добавлено спустя 7 минут:Madf ты угадал вот только мне дали то чего я не проходил, а сам пытался разобраться и сейчас пытаюсь но не получается, просто похожие программы написаны во FlowCode а компиляцию в с++ с него я понять не могу, по этому и прошу о помощи в небольшом хотя бы примере как на сервопривод пишется программа для атмеге128. Заставить я вас не могу но может кто захочет помочь мне по доброте душевной, правда я не надеюсь на многое ну по пробовать стоило. Если кто согласится большое вам спасибо=)!!!

avr123.nm.ru » 31 мар 2014, 21:12
Костя писал(а):помогите мне.
посмотрите пример управления servo - довольно просто -
http://www.proavr.narod.ru/z13.htm 
Изначально серва как установлена - по центру?
А при отпускании кнопок что происходит?
Может он-лайн урок тут забацать?

Костя » 31 мар 2014, 21:37
За примеры большое спасибо попробую разобраться если еще что то будет или что то случайно найдете напишите сюда пожалуйста.
Костя » 02 апр 2014, 14:44
Народ больше нечего нет случаем???
avr123.nm.ru » 02 апр 2014, 15:32
Вы сами то что сделали? Чего вам больше?

Костя » 10 апр 2014, 15:40
Вот что я сделал, я заставил сервопривод крутиться на своей схеме но не могу понять как мне это заставить делать от кнопок на AVR GCC написана программа.
#include <avr/io.h>
#include <util/delay.h>
//Simple Wait Function
void Wait()
{
uint8_t i;
for(i=0;i<10;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).
DDRB|=(1<<PB4)|(1<<PB5); //PWM Pins as Out
DDRB|=(1>>PB4)|(1>>PB5);
while(1)
{
OCR1A=194;
Wait();
OCR1A=201;
Wait();
OCR1A=208;
Wait();
OCR1A=215;
Wait();
OCR1A=222;
Wait();
OCR1A=229;
Wait();
OCR1A=236;
Wait();
OCR1A=245;
Wait();
OCR1A=252 ;
Wait();
OCR1A=252 ;
Wait();
OCR1A=245;
Wait();
OCR1A=236;
Wait();
OCR1A=229;
Wait();
OCR1A=222;
Wait();
OCR1A=215;
Wait();
OCR1A=208;
Wait();
OCR1A=201;
Wait();
OCR1A=194;
Wait();
}
}
avr123.nm.ru » 10 апр 2014, 16:41
Костя писал(а):Вот что я сделал, я заставил сервопривод крутиться на своей схеме но не могу понять как мне это заставить делать от кнопок
Отлично!
вот так попробуйте -
https://www.google.ru/search?q=%D0%BA%D ... 3&ie=UTF-8
Костя » 12 апр 2014, 16:56
спасибо попробую
Добавлено спустя 1 час 28 минут 3 секунды:
#include <avr/io.h>
#include <util/delay.h>
//Simple Wait Function
void Wait()
{
uint8_t i;
for(i=0;i<10;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).
DDRB|=(1<<PB4)|(1<<PB5); //PWM Pins as Out
DDRB|=(1>>PB4)|(1>>PB5);
DDRF = 0x00;
while(1)
{
if (bit_is_set(PIND,0)) {
if (bit_is_clear(PIND,1)){
OCR1A=194;
Wait();
// Ñäåëàòü ÷òî-íèáóäü êîãäà áèò 0 ïîðòà Â ðàâåíî "1", à áèò 1 ðàâåí "0".
}
}
if (bit_is_set(PIND,1)) {
if (bit_is_clear(PIND,2)){
OCR1A=201;
Wait();
}
}
if (bit_is_set(PIND,2)) {
if (bit_is_clear(PIND,3)){
OCR1A=208;
Wait();
}
}
if (bit_is_set(PIND,3)) {
if (bit_is_clear(PIND,4)){
OCR1A=215;
Wait();
}
}
if (bit_is_set(PIND,4)) {
if (bit_is_clear(PIND,5)){
OCR1A=222;
Wait();
}
}
if (bit_is_set(PIND,5)) {
if (bit_is_clear(PIND,6)){
OCR1A=229;
Wait();
}
}
if (bit_is_set(PIND,6)) {
if (bit_is_clear(PIND,7)){
OCR1A=236;
Wait();
}
}
}
}
Добавлено спустя 59 секунд:
всем спс щас еще лсд икран подключу так что всем большое спасибо за потсказки
Добавлено спустя 22 минуты 44 секунды:
скинь те плиз сылку где можно посматрерть насчет ЛСД экрана как мне сделать чтобы показывались номер этажа!!!Пожалуйста если я сам найду до этого то сразу отпешусь
avr123.nm.ru » 12 апр 2014, 23:22
попробуйте изменить запрос в гугл
Костя » 14 апр 2014, 17:28
пробывал не помогает=( я понимаю что вам надоел=( у меня еще одна проблема в протеусе серво привод останавливается а на Микроконтролере он крутится постаянно только когда кнопку нажмеш он повернется на определенное количество градусов и опять начинает крутится в обратную сторону что можно сделать программа написанна на AVR Studio GCC, простно намекните или просто напишите команду которой можно воспользоваться=)
avr123.nm.ru » 14 апр 2014, 17:40
Надо видеть код программы. Лучше выложите код в тегах КОД и приложите архив с прожектом.
и ЗАКЛИНАЮ ВАС зырьте в гугл -
https://www.google.ru/search?q=winavr+l ... 3&ie=UTF-8