Воскресенье, 19.05.2024, 02:25
| RSS
[SEARCH_TITLE]
[SEARCH_FORM]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 8
  • «
  • 1
  • 2
  • 3
  • 4
  • 7
  • 8
  • »
Архив - только для чтения
Форум » Мастерская » Новичкам » ик бампер
ик бампер
DoniakДата: Пятница, 20.02.2009, 21:03 | Сообщение # 16








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
Схему вы привели выше сами, а вот прога до безобразия простая её даже непишут.
 
sashaДата: Пятница, 20.02.2009, 21:22 | Сообщение # 17








Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
можете написать что бы понять?
Я понялв программирование что назначаем порты и время их ткрытия и закрытия, и аттини (проверка) прокомпилирвал чеи ошибку выдает! sad


-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
 
DoniakДата: Пятница, 20.02.2009, 21:24 | Сообщение # 18








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
где и на чём пишеш?
 
sashaДата: Среда, 25.02.2009, 15:57 | Сообщение # 19








Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
на CVAVR

Добавлено (25.02.2009, 15:57)
---------------------------------------------
можете написать что бы понять? help


-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
 
DoniakДата: Среда, 25.02.2009, 21:54 | Сообщение # 20








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
Quote
можете написать что бы понять? help

Помойму я тебе в ПМ писал дай более подробную информацыю что надо, что есть и я тебе напишу а ещё лутче составь схему в протеусе и я под неё напишу.
 
sashaДата: Четверг, 26.02.2009, 12:55 | Сообщение # 21








Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
а первую схему не надо программировать как аттини? просто напишу когда 0(есть припятствие) и открываю порт? так?

Добавлено (26.02.2009, 12:55)
---------------------------------------------
а можно так программировать?
когда от порта PORTA.1 приходит сигнал первым чем PORTA.2 и PORTA.3?
как это пишеться?


-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
 
DoniakДата: Четверг, 26.02.2009, 13:58 | Сообщение # 22








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
Quote
когда от порта PORTA.1 приходит сигнал первым чем PORTA.2 и PORTA.3?

Это не вопрос это его часть.
 
Chinga92Дата: Пятница, 27.02.2009, 13:26 | Сообщение # 23








Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
я хотел сделать так!
вот собрать схему аудиоусилителя с компоратором (2шт с 4 сторон робота) http://robozone.su/2008/05/31/sdvoennyjj-zvukovojj-sensor-na-baze.html
и запрограммировать так что бы от какой стороны сигнал приходит первым и туда поворачивался!
 
DoniakДата: Пятница, 27.02.2009, 14:26 | Сообщение # 24








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
Code

while (1){
switch  (PORTA) {      /*порт куда подсоединены датчики*/
case 0b00000001:
/* этот код будет выполняться если  сроботал 1ый датчик*/
delay_ms(2000); /*Задержка  */
break;

case 0b00000010:
/* этот код будет выполняться если сработал 2ой датчик*/
delay_ms(2000);
break;

case 0b00000100:
/* этот код будет выполняться если сработал 3тий датчик*/
delay_ms(2000);
break;
    /*Ну и тд до 8го датчика...*/
default:
/* этот код будет выполняться если не один из датчиков не сработал*/

};
};

Осё написал может поможет... Вечный цикл проверяет состояние порта и если срабатывает датчик начинает выполнятся движение, поворот и тд уже сам допишешь.
Если я правильно понимаю датчики будут срабатывать по очереди до полного срабатывания всех, И если программа сверит значение case первым чем сработают 2+ датчика вместе то робот будит выполнять то что уже сам допишешь :)

 
Chinga92Дата: Пятница, 27.02.2009, 15:15 | Сообщение # 25








Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
вы про ик бамперов?
я справился с бамперами! вот мне с ушами проблемы! я хотел с четырех сторон микрофон поставить и откуда сигнал приходит первым туда поворачивался! и еще какая разница между if и case?
 
DoniakДата: Пятница, 27.02.2009, 18:34 | Сообщение # 26








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
Quote
вы про ик бамперов? я справился с бамперами! вот мне с ушами проблемы! я хотел с четырех сторон микрофон поставить и откуда сигнал приходит первым туда поворачивался!

Всё тоже самое что и с ИК бампером. только после того как сработал первый датчик нужно ставить паузы или просто выходить из главного цикла чтобы он перестал реагировать на остальные датчики.
Quote
и еще какая разница между if и case?

IF выполняет какую то часть программы при наличии каких либо условий, а switch позволяет сделать выбор из нескольких вариантов. Вобще разница небольшая но так имхо проще.
http://avr123.nm.ru/05.htm
 
Chinga92Дата: Пятница, 27.02.2009, 19:23 | Сообщение # 27








Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
#include <mega32.h>
#include <delay.h>
void main(void){
PORTA=0x00;
PORTB=0xff;
while (1){
switch (PORTA) { /*порт куда подсоединены датчики*/
case 0b001:
/* этот код будет выполняться если сроботал 1ый датчик*/
PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
PORTB.4=1;
delay_ms(5000); /*Задержка */
break;

case 0b010:
/* этот код будет выполняться если сработал 2ой датчик*/
PORTB.1=0;
PORTB.2=1;
PORTB.3=1;
PORTB.4=0;
delay_ms(5000);
break;

case 0b100:
/* этот код будет выполняться если сработал 3тий датчик*/
PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
PORTB.4=1;
delay_ms(10000);
break;

default:
/* этот код будет выполняться если не один из датчиков не сработал*/

}
}
}

если я 3 усилителя с 3 сторон поставлю (с лева и с права и с зади) прога так пишеться?
робот в одну сторону 5 сек поворачиваеться!

Добавлено (27.02.2009, 19:23)
---------------------------------------------
и еще чють не забыл на робоконтроллерах дросселя обязательно ставить?
а то на схеме есть а на рисунке нет!

 
DoniakДата: Пятница, 27.02.2009, 20:12 | Сообщение # 28








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
Quote
PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
PORTB.4=1;
delay_ms(5000); /*Задержка */

если у тебя єто поворот тогда он у тебя будит только поворачиватся через каждие 5 сек. допиши ещо чтоб ехал вперёд и добавь задержку на время пока он будит ехать.

Quote
и еще чють не забыл на робоконтроллерах дросселя обязательно ставить?

не обязательно
 
Chinga92Дата: Пятница, 27.02.2009, 20:22 | Сообщение # 29








Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
ну мне надо что бы только поварачивался

Добавлено (27.02.2009, 20:22)
---------------------------------------------

Quote (Doniak)
не обязательно

а для чего они вопще нужны?
 
FireFlyДата: Пятница, 27.02.2009, 20:27 | Сообщение # 30








Зарегистрирован 04.04.2008
Группа: Модераторы
Сообщений: 196
Город: Kamyshin
Статус: Offline
Quote (Chinga92)
и еще чють не забыл на робоконтроллерах дросселя обязательно ставить? а то на схеме есть а на рисунке нет!

если питание контроллера и датчиков общее с питанием двигателей (один источник) то обязательно ставить - у тебя таааакая каша будет по питанию без них....


Robozone
 
Форум » Мастерская » Новичкам » ик бампер
  • Страница 2 из 8
  • «
  • 1
  • 2
  • 3
  • 4
  • 7
  • 8
  • »
Поиск: