roboforum.ru

Технический форум по робототехнике.

Нужна помошь в освоении proteus.

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 06 янв 2012, 16:17

Да, я так исправил. Точно!! Я на мастер классе был , там показывали как светофор сделать.

Re: Нужна помошь в освоении proteus.

Vovan » 06 янв 2012, 16:24

Если моторы подправил - писать прогу, заливать в МК и запускать симуляцию.
Вперед! :)
Светодиоды, фотодиоды или еще чего - это все потом.
Схему построили? Надо запустить!

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 06 янв 2012, 16:31

Начальный значения на PB(0-3) = 0? На PB(6,7) = 1 На PD(0-3)= 0 На PD(4,5)= 1?

Re: Нужна помошь в освоении proteus.

Vovan » 06 янв 2012, 16:50

Выводы МК которые на кнопки: все - входы; все с 1.
Выводы МК на IN-ы L298: все - выходы; все с 0.
Выводы МК на EN: все выходы, а 0 или 1 зависит от программы. Если сразу старт то тогда 1. Если старт как-то оттягивается или планируются остановки какие-либо то 0, а уже в программе менять...
EN у L298 - предназначен, чаще всего, для ШИМ (правда есть и другие применения, но не в этом случае).
Если на EN 0 - моторы не поедут. Если на EN 1 - можно рулить моторами используя только IN-ы.
Вывод: пока что на EN-ы предлагаю сориентировать выводы МК как выхода и повесить постоянно 1.

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 06 янв 2012, 22:10

While(1)
{
If (PINB.0==1)
{PORTD.0=1
PORT.1=0}

While(2)
{
If (PIND.1==1)
{PORTD.0=0
PORTD.1=1}
}

While(3)
{
If (PIND.2==1)
{PORTD.2=1
PORTD.3=0} }

While(4)
{
If (PIND.3==1)
{PORTD.2=0
PORTD.3=1}
}

Re: Нужна помошь в освоении proteus.

Vovan » 06 янв 2012, 22:29

Хорошо бы тег "Code" в таких случаях :wink:
Хорошо бы комменты писать, сам бы заметил где лажа :wink:
Хорошо бы вопрос сформулировать, или сообщить что то-то и то-то у меня получилось :wink:
Вот нет комментов, сразу у меня вопрос (хоть я в си ни бум-бум :roll: )
If (PINB.0==1) почему?
и ещё:
PORT.1=0} - чё это??? :shock:

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 06 янв 2012, 22:44

А где 7.2 напряжение взять

Добавлено спустя 1 минуту 17 секунд:
Я ,наверно не понимаю алгоритм кнопок. Если их нажимаешь то порт с которым соединяется кнопка активируется?

Добавлено спустя 2 минуты 39 секунд:
В магазине есть нашел уже)

Добавлено спустя 25 секунд:
А почему именно на 7.2 ,а не на ровно 7 или 8

Re: Нужна помошь в освоении proteus.

Vovan » 06 янв 2012, 22:55

А где 7.2 напряжение взять
в смысле? Если в железе то 6 акков по 1,2в 6х1.2=7.2(металгидридных или кадмиевых), или 2 литийионных или литийролимерных 3.6х2=7.2.Можно и больше, но не больше чем выдержат моторы и не больше чем выдержит 7805.
7в и 8в - найдутся такие акки? :shock: Ну если найдутся - на здоровье! :D
Если кнопка между портом и GND, это значит: что при нажатии кнопки порт обнуляется; если порт сконфигурирован как вход и установлен в 1.
Таким образом код должен быть что-то типо того:
Код: Выделить всёРазвернуть
если сработала кнопка на PORTB,0;
идём включать PORTD,x;
и PORTD,y;
а иначе идём снова проверять кнопку;

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 07 янв 2012, 12:58

Vovan писал(а):Если кнопка между портом и GND, это значит: что при нажатии кнопки порт обнуляется; если порт сконфигурирован как вход и установлен в 1.

А если порт установлен в 0?

Добавлено спустя 29 секунд:
С Рождеством Вас!!

Добавлено спустя 5 минут 39 секунд:
Если на порт установлено out это выход? Если in то это вход? True соответствует 1 , False соответствует 0?

Добавлено спустя 3 минуты 34 секунды:
Код: Выделить всёРазвернуть
While(1)

{
{If (PINB.0==1)
{PORTD.0=1
PORTD.1=0}}

{If (PIND.1==1)
{PORTD.0=0
PORTD.1=1}}

{If (PIND.2==1)
{PORTD.2=1
PORTD.3=0}}

{If (PIND.3==1)
{PORTD.2=0
PORTD.3=1}}
}


Бесконечны цикл с 4 условиями.

Re: Нужна помошь в освоении proteus.

Vovan » 07 янв 2012, 18:52

Отвечу по порядку:
Если порт установлен в 0, установка в 0 не изменит его состояния. Т.е. если посмотреть внимательно на мой пост <Если кнопка между портом и GND> это значит, что нажатие кнопки обнулит порт, т.е. нужно чтобы была 1-ца, а замыкание порта с 0-лём, посредством кнопки, обнуляет его. Если на порте 0 обнуляй его хоть сто порций - что изменится?
Так, первое я сказал, теперь второе: если порт установлен в 0 значит менять его состояние нужно чем? - правильно 1-цей! А 1-ца это что? правильно - это +5в.
Поэтому если порт установлен в 0 то, кнопки нужно вешать на +5в, дабы на порте после замыкания кнопки появилась 1-ца, но для этого нужно во-первых по другому подключить кнопки (между портом и +5в), а во-вторых на порт повесить 0.
Вывод: т.к. на схеме кнопки повешены между GND и портами, значит порты обязательно нужно ориентировать в 1-цу, чтоб кнопкой обнулить.
Примеч.: была бы другая схема, например было бы по другому, тогда другое дело. Однако схема составлена намано, поэтому ничего делать, кроме написания проги под эту схему, не надо. Сорри за много букаф, ненужное (уже известное - не читать :wink: ).
Про установку портов вроде хило-бедно объяснил... Да? :wink:
<С Рождеством Вас!!> спасибо за внимание :) , но увы не праздную, ибо имхо не правильно это, причем обосновано, но не в этой теме. Однако за внимание ещё раз спасибо :)
<Если на порт установлено out это выход?> Да (out сокращенно output = выход)
<Если in то это вход?> Да (in сокращенно input = вход)
<True соответствует 1> не в курсе насчет других языков, по мне дак это правда, или сквозь(в радиотехнике)
<False соответствует 0?> по мне - это ложь или мимо(в радиотехнике)....
мождь кто-то другой ответит, тут я пас :oops:

Что касается кода: почему всюду if=если, причем на порте Д (выходах) :shock: ???? - хоть я и не пишу на си :roll: , но прочесть кое как умею :oops:
ИМХО: схему в Протеусе не трогать; писать прогу по предварительно написанному алгоритму на русском, пример см. выше, повторюсь: если ТО, то ЭТО, а иначе ТУДА, а там ДЕЙСТВУЕМ ТАК-ТО и выходим либо туда откуда зашли либо по конкретному адресу.
ЗЫ: настоятельно рекомендую прочесть внимательно сей пост, размышляя над каждым предложением :)
ЗЫЫ: Без обид, ок? :wink: вроде все по теме :oops:

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 08 янв 2012, 15:34

duplicate part reference
Выдает эту ошибку.

Добавлено спустя 21 секунду:
Спасибо)

Re: Нужна помошь в освоении proteus.

Vovan » 08 янв 2012, 15:56

Круто! :D
Что-то мне это напоминает? :wink:
О, вспомнил, ребенок (лет 2-х - 3-х) частенько так действует:
-Мааааамааааа! У меня не полуцается :cry:
-что? где? не получается? что ты вообще делаешь?
-ницегоооо непалуцаецаааааа, нигдеееее :cry:

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 08 янв 2012, 16:06

Все получилось, просто мотором дал одинаковые имена, а ISIS этого не любит.

Re: Нужна помошь в освоении proteus.

Vovan » 08 янв 2012, 19:05

Хорошо! :) Значит всё работает? :wink:

Re: Нужна помошь в освоении proteus.

INDEPENDENT » 08 янв 2012, 21:34

Нет, ISIS зависает и вылетает. Думаю что программу в Cvavr не правильно написал.
Код: Выделить всёРазвернуть
while(1) {
{if (PINB.0==0)
{PORTD.0=1 ;
PORTD.1=0;}}

{if (PIND.1==0)
{PORTD.0=0 ;
PORTD.1=1;}}

{if (PIND.2==0)
{PORTD.2=1;
PORTD.3=0;}}

{if (PIND.3==0)
{PORTD.2=0 ;
PORTD.3=1;}}


Rambler\'s Top100 Mail.ru counter