роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  


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

> Без описания
Billi
Отправлено: 06 Января, 2016 - 15:54:11
Post Id


Рядовой


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





[quote=Петр Киселев][/quote] В том-то и дело, что моё устройство будет делать когда дверь закроется? А она (дверь) закроется. Программа то работает некоторое время и после закрытия двери. Придётся городить одновибратор с перезапуском, а это лишняя" логика".
 
 Top
killgur
Отправлено: 06 Января, 2016 - 16:15:03
Post Id



Гуру


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





Billi пишет:
Петр Киселев пишет:
В том-то и дело, что моё устройство будет делать когда дверь закроется? А она (дверь) закроется. Программа то работает некоторое время и после закрытия двери. Придётся городить одновибратор с перезапуском, а это лишняя" логика".



Петр дело говорит, у микроконтроллера есть "ресет" вот его и нажимайте а программа помигает и закончится и бесконечный цикл тогда не нужен программа кончилась до следующего рестарта (тут можно и в спячку уйти кстати).
 
 Top
Billi
Отправлено: 06 Января, 2016 - 16:45:21
Post Id


Рядовой


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





Как вариант, с Reset. Ну а для будущего развития для меня(это не последняя же разработка) какие строчки надо добавить в код программы для опроса ноги порта, какие библиотеки добавить.
 
 Top
killgur
Отправлено: 06 Января, 2016 - 17:09:11
Post Id



Гуру


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





Billi пишет:
Как вариант, с Reset. Ну а для будущего развития для меня(это не последняя же разработка) какие строчки надо добавить в код программы для опроса ноги порта, какие библиотеки добавить.


Вам сюда http://easyelectronics.ru/avr-uc...-si-chast-1.html

и пока не стало поздно переходите с CodeVisionAVR на AVR студию

(Отредактировано автором: 06 Января, 2016 - 17:10:44)

 
 Top
Billi
Отправлено: 07 Января, 2016 - 12:00:17
Post Id


Рядовой


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





Охотно приму во внимание совет по переходу. Но сейчас, уже 90% девайса готово, помогите с таким "не удобным" компилятором. Написание новой программы в новом компиляторе отодвинет финал еще на месяц.
 
 Top
Billi
Отправлено: 08 Января, 2016 - 22:54:57
Post Id


Рядовой


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





Идея с Reset вдохновила: на время работы программы PORTC.3 поддерживает ресет в единице. Даже если дверка закрывается. С помощью диодов- резисторов схема"или". Конечно хотелось изящней но и так вроде работает. Пока на бумаге, завтра проверю.
 
 Top
Billi
Отправлено: 09 Января, 2016 - 20:26:41
Post Id


Рядовой


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





Работает. Поскольку форум не для новичков гибридную схему не выкладываю. Мне гордиться нечем.

(Отредактировано автором: 09 Января, 2016 - 20:55:46)

 
 Top
Antenna88
Отправлено: 22 Мая, 2016 - 03:38:53
Post Id



Рядовой


Сообщений всего: 12
Дата рег-ции: Март 2016  





НЕ СТАНУ СОЗДАВАТЬ НОВУЮ ТЕМУ. Один вопросик плиз. Имеется три вещи - макет.плата, 2 серво, Атмега8 (DIP28). И еще скачал готовую программу (приведена чуть ниже)
Нужно чтоб все это заработало. Атмегу8 прошил. Вопрос - 1) куда подключать белый(оранжевый) провода обоих сервоприводов (название ножки МК) ?? (в схемах которые нахожу в сети не могу разобраться . Замешательство Ламер )
2) правильно ли догадываюсь для питания нужны же два отдельных источника - один для МК другой для серво ?? И в частности нужно ли куда нибудь подключать ножку RESET ??
Кроме этого скудного набора штучек (МК, серво и батарейка) нужно ли еще что либо (в обязательном порядке) (резисторы и т.п.) ?? Не хотелось бы сжечь МК и серво.
Благодарен.

Вот программа :

#include <avr/io.h>
#include <avr/interrupt.h> //подгружаем прерывание
volatile unsigned int Danie_1Servo = 0,Danie_2Servo = 0,Sot = 0;
ISR (TIMER1_COMPA_vect) //формируем угол здвига 1 сервопривода
{
PORTA &=~(1<<0); // завершаем импульса для 1 сервопривода
OCR1A = Danie_1Servo;
}
ISR (TIMER1_COMPB_vect) // формируем угол здвига 2 сервопривода
{
PORTA &=~(1<<1); // завершаем импульса для 2 сервопривода
OCR1B = Danie_2Servo;
}
ISR(TIMER1_OVF_vect) //формеруем 20мс. 50гц
{
PORTA |=(1<<0); //начяло импульса для 1 сервопривода
PORTA |=(1<<1); //начяло импульса для 2 сервопривода
Sot++;
}
//*******************//
//*******************//
int main(void)
{
DDRA |=(1<<0)|(1<<1);
ICR1 = 5000; //формеруем 20мс. для 16Мгц.
OCR1A = 150;
OCR1B = 150;
TCCR1B |= (1 << ICES1)|(1<<CS10)|(1<<CS11)|(1<<WGM12)|(1<<WGM13); //пределитель 64,старший бит режим FastPWM (сброс при совпадении)
TCCR1A |=(1<<WGM11); // младшие бит режим FastPWM
TIMSK |=(1<<TOIE1)|(1<<OCIE1A)|(1<<OCIE1B); // разрешаем работу прерываниям

asm( sei );
//===========//
while(1)
{
if ( Sot == 100)
{
Danie_1Servo = 500; // данные для 1 сервопривода
}
if ( Sot == 200)
{
Danie_1Servo = 150; // данные для 1 сервопривода
Sot = 0;
}
asm( nop );

(Отредактировано автором: 22 Мая, 2016 - 03:41:38)

 
 Top
Петр Киселев
Отправлено: 22 Мая, 2016 - 09:54:55
Post Id



Гуру


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





Antenna88, хочу поделиться своим небольшим опытом в работе с сервами. Если они в работе постоянно, то через некоторое время начинают греться. Питание для них лучше делать отдельное, например, 3 батарейки по 1,5 В или 4 акка по 1,2 В. Если серв 3 и более, то только так. Отдельный источник потребовался у нас и при работе с блютузом.
По "резет" и коду, лучше дождаться комментариев наших мэтров -killgur и Роботова. Я сто лет тому назад пробовал поставить к "резет" R/C цепочку, но ничего не получилось.
 
 Top
Роботов
Отправлено: 22 Мая, 2016 - 21:44:52
Post Id



Гуру


Сообщений всего: 1340
Дата рег-ции: Июнь 2011  





Antenna88:
1.
Antenna88 пишет:
правильно ли догадываюсь для питания нужны же два отдельных источника - один для МК другой для серво ??
Желательно, но не обязательно. Причем для МК желательно стабилизированное питание.
2.
Antenna88 пишет:
И в частности нужно ли куда нибудь подключать ножку RESET ??
Не обязательно. Но можно подтянуть к питанию резистором 5-10 кОм. Хуже не будет.
3.
Antenna88 пишет:
Кроме этого скудного набора штучек (МК, серво и батарейка) нужно ли еще что либо (в обязательном порядке) (резисторы и т.п.) ??

По питанию емкости надо ставить. Электролит и керамику. Если питание МК не превысит 5,5 В, то не сгорит (если ножки не коротить).
Серву сжечь легко, достаточно на долгое время оставить неподвижно под большой нагрузкой.
 
 Top
Antenna88
Отправлено: 24 Мая, 2016 - 07:14:20
Post Id



Рядовой


Сообщений всего: 12
Дата рег-ции: Март 2016  





Ну а самый главный вопрос - куда подключать желтые провода обоих сервомоторов ??
 
 Top
soob
Отправлено: 24 Мая, 2016 - 12:56:43
Post Id



Полковник


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





Antenna88 пишет:
Ну а самый главный вопрос - куда подключать желтые провода обоих сервомоторов ??

Если не ошибаюсь к выводам PB1 и PB2
 
 Top
Роботов
Отправлено: 24 Мая, 2016 - 15:42:27
Post Id



Гуру


Сообщений всего: 1340
Дата рег-ции: Июнь 2011  





soob пишет:
Если не ошибаюсь к выводам PB1 и PB2

... или РА0 и РА1
 
 Top
soob
Отправлено: 24 Мая, 2016 - 17:34:53
Post Id



Полковник


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





Если речь идёт о ATMega8, то у него ведь нет порта A.
По коду задействованы OCR1A и OCR1B.
На обычном DIP корпусе это 15 и 16 ножки

Поправьте если не прав Улыбка
Прикреплено изображение
atmega8_p1.gif

 
 Top
killgur
Отправлено: 24 Мая, 2016 - 19:08:12
Post Id



Гуру


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





soob пишет:
Если речь идёт о ATMega8, то у него ведь нет порта A.
По коду задействованы OCR1A и OCR1B.
На обычном DIP корпусе это 15 и 16 ножки

Поправьте если не прав Улыбка



PAO PA1

потому что программа для меги 16 с кварцем на 16МГц и зачем то дергают ногами на порте А генерируя импульсы для управления сервомашинкой.

Порт B не задействован в программе сигналы таймера наружу не выходят

можно порт А заменить на порт С просто изменением буквы если очень надо запустить на меге8

(Отредактировано автором: 24 Мая, 2016 - 19:10:57)

 
 Top
Страниц (3): « 1 [2] 3 »
« Программирование микроконтроллеров »


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





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown