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


 Страниц (17): « 1 [2] 3 4 5 6 7 8 9 ... » В конец    

> Без описания
zatmenie
Отправлено: 10 Января, 2010 - 21:25:02
Post Id



Генерал


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





вот не могу догнать как подключать и куда.
lamakazzz пишет:
Можете обратить внимание на
http://window.edu.ru/window_cata...68&p_page=13 - тут в виде html, а PDF версию смотрите выше, либо http://window.edu.ru/window_cata...file=stup081.pdf

Спасибо за книжку
Скачать файл: Рабочий стол.rar
Скачан раз: 241
 
 Top
SNEGOK23
Отправлено: 12 Января, 2010 - 06:47:37
Post Id


Главнокомандующий


Сообщений всего: 259
Дата рег-ции: Сент. 2009  





zatmenie пишет:
у avr 3 положения: вход, выход и отключено

а что, ноги мк еще и отключаются? 0_о
 
 Top
zatmenie
Отправлено: 12 Января, 2010 - 18:54:55
Post Id



Генерал


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





SNEGOK23 пишет:
zatmenie пишет:
у avr 3 положения: вход, выход и отключено
а что, ноги мк еще и отключаются? 0_о

Незнаю, я читал в книге
 
 Top
zatmenie
Отправлено: 12 Января, 2010 - 19:14:48
Post Id



Генерал


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





Вот как я подключил. по другому не знаю.
Скачать файл: Рабочий стол.rar
Скачан раз: 250
 
 Top
nest Администратор
Отправлено: 13 Января, 2010 - 01:29:05
Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  





SNEGOK23 пишет:
а что, ноги мк еще и отключаются?
если их "выставить" в режиме входа, то они приобретают так называемое "высокоимпендансное состояние" или "Z-состояние". Т.е. состояние высокого сопротивления. Это "почти" то же самое, что и отключение.
Кстати, многие микросхемы "твоёрдой" логики (логические микросхемы) имеют управляющий вход, переводящий определённые выводы (обычно ножки выходов) в Z-состояние.

zatmenie, что то я погорячился с диодной логикой. немного не складывается схема.
Вам нужно из трёх состояний ножки выделить три сигнала:
Для этого нужно подать с ноги МК на цепь из двух резисторов (как на картиинке тут внизу).
и оттуда же - как у вас подключена L293 (к IN1 - напрямую, IN2 - через инвертор). Этим вы получите разное направление вращения. Логические состояния спокойно "перетянут" резисторы (они должны быть одинаковые!).
Кроме того туда же нужно подключить двухпороговый компаратор, схематично обозначен как "У1" (на эту роль по всем параметрам подходит LM293 или LM2903), а его выход подключить к выводу ENABLE драйвера L293.
Когда на ножке МК "1" или "0", компаратор будет вы давать на ENABLE лог. единицу.
А когда нога окажется "повешенной в воздухе" (отключена), там установится уровень средний, между "0" и "1". В этом случае на выходе компаратора должен появиться логич. "0", который выключит драйвер двигателя и мотор остановится.
Про двухпороговый компаратор хорошо описано тут: "Основы схемотехники. Анало говые компараторы" Рисунок 7.
Прикреплено изображение
3434.png

 
 Top
zatmenie
Отправлено: 13 Января, 2010 - 18:12:56
Post Id



Генерал


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





Тааак теперь вопросы по программе. Теперь как программно сделать из выхода вход? Нужно так: если кнопка 1 и кнопка 2 нажаты, тогда PORTB.0 становится входом и ножка "повисает в воздухе". Если кнопка 1 нажата, то PRTB.0 становится как 1. Если кнопка 2 нажата то PORTB.0 становится как 0.
Вот программа которая "получилась". Как и следовало ожидать она не работает потому что не доделана и потому что я чайник!
#include <tiny2313.h>

#include <delay.h>

#define OUT PORTB
#define motor_f 0
#define motor_b 0
#define motor_s 0

#define IN PIND
#define but_1 0
#define but_2 1

enum {F, B, S};

void go(unsigned char direction){

switch (direction) {
case F:
OUT.motor_f=1;
break;

case B:
OUT.motor_b=0;
break;

}
}

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func2=In Func1=In Func0=In
// State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=0
PORTB=0x00;
DDRB=0x01;

// Port D initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

while (1)
{
if((but_1==0)&&(but_2==0)) //Если but_1 и but_2 равно 0, тогда PORTB.0 делаем как вход ???????????????
if(but_1==1)go(F); //Если but_1 равен 1, тогда PORTB.0 равен 1
if(but_2==1)go(B); //Если but_2 равен 1, тогда PORTB.0 равен 0

};
}
 
 Top
nest Администратор
Отправлено: 13 Января, 2010 - 22:39:19
Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  





zatmenie пишет:
как программно сделать из выхода вход?
почитайте в даташите (или ещё где) про ругистры DDRA, DDRB...
 
 Top
zatmenie
Отправлено: 14 Января, 2010 - 00:40:34
Post Id



Генерал


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





Кто может посоветовать мне самую хорошую книгу по AVR? Для начинающего. Что бы было все подробно и понятно изложено, с примерами на Си.

И другой вопрос. Как выставить режим совместимости 90s2313 с tiny2313?
 
 Top
zatmenie
Отправлено: 14 Января, 2010 - 19:49:13
Post Id



Генерал


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





nest пишет:
почитайте в даташите (или ещё где) про ругистры DDRA, DDRB...

Чето искал, искал и ничего не нашел, ну и ладно. я тут подумал и возможно нашел решение: что бы мотор не крутился нужно примерно 1000 раз в секунду менять 0 и 1 и мотор не успеет крутанутся. Вот! Как моя идея?
 
 Top
nest Администратор
Отправлено: 14 Января, 2010 - 19:55:52
Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  





zatmenie пишет:
Как моя идея?
плохо.
1) всё это время мотор и драйвер будет потреблять энергию
2) всё это время некоторые моторы будут "пищать" с выбраной частотой
3) в даташите на любой МК семейства AVR содержится минимум 10 раз упоминание о DDRA, DDRB, DDRC, DDRD ...
 
 Top
zatmenie
Отправлено: 14 Января, 2010 - 21:01:52
Post Id



Генерал


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





nest пишет:
плохо.
1) всё это время мотор и драйвер будет потреблять энергию
2) всё это время некоторые моторы будут "пищать" с выбраной частотой

Я знаю что плохо. я у своей училки спросил как можно сделать. она сказала что одной ногой никак. можно поставить лог.элемент или. Входы подключить к кнопкам, а выход к Енейбл1. тогда при нажатии какой либо кнопки енейбл1 быдет включен а МК будет выбирать направление вращения.
nest пишет:
3) в даташите на любой МК семейства AVR содержится минимум 10 раз упоминание о DDRA, DDRB, DDRC, DDRD ...

Проблема в том что я не знаю английский
 
 Top
ОЛЕГ Супермодератор
Отправлено: 14 Января, 2010 - 21:12:54
Post Id



Супермодератор


Сообщений всего: 1732
Дата рег-ции: Нояб. 2008  





Вам нужна книжка Евстифеева.
Практически даташит, но на русском.
Есть в сети в свободном доступе.
 
 Top
nest Администратор
Отправлено: 14 Января, 2010 - 23:04:41
Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  





zatmenie пишет:
у своей училки спросил как можно сделать. она сказала что одной ногой никак.
вот эта схема и будет работать на три состояния: лево, право, отключить
 
 Top
zatmenie
Отправлено: 15 Января, 2010 - 17:08:34
Post Id



Генерал


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





ОЛЕГ пишет:
Вам нужна книжка Евстифеева.
Практически даташит, но на русском.
Есть в сети в свободном доступе.

Микроконтроллеры AVR семейства Classic
Микроконтроллеры AVR семейства Mega
Микроконтроллеры AVR семейства Tiny и Mega
Микроконтроллеры AVR семейства Tiny
Эти?

nest пишет:
вот эта схема и будет работать на три состояния: лево, право, отключить

Чето не врублюсь как подключить входы компоратора
Скачать файл: ScreenShot00094.rar
Скачан раз: 233
 
 Top
nest Администратор
Отправлено: 15 Января, 2010 - 19:20:39
Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  





zatmenie пишет:
как подключить входы компоратора

вы вообще файл "Основы схемотехники. Анало говые компараторы" заглядывали ? (Рисунок 7. U1 и U2 брать с потенциометра между Uпит и GND.

Но если вам не нравится с компараторами, можно использовать и вашу идею с "дёрганьем" ножки. для этого можно взять ту же блок-схему:


убрать резисторы, а в качестве "У1" взять схему одновибратора с перезапуском (например, К555АГ3 / 74LS123. Более подробно об одновибраторах: Интернет Университет: "Одно вибраторы и генераторы" ). Тогда, если на ножке появиятся импульсы - однобибратор "отфильтрует" их и подаст на вход ENABLE драйвера двигаетелей низкий лог. уровень, и это выключит мотор. Длина импульса одновибратора должна быть чуть больше длины периода "дёрганья" ножки.
 
 Top
Страниц (17): « 1 [2] 3 4 5 6 7 8 9 ... » В конец
« Программирование микроконтроллеров »


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





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