роботы робототехника микроконтроллеры


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

> Без описания
mrbin Post Id


Капитан


Сообщений всего: 50
Дата рег-ции: Авг. 2013  



Добрый день! подскажите как написать задержку перед началом програмы что бы робот не сзазу начинал движение а секунд через пять мигнув диодом?
 
 Top
Predator Супермодератор Post Id


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


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



у вас наверняка есть примерно такая конструкция:

CODE:

main()

{
io_init();
motor_init();
vsa_figna_init();
while(1)
{
смотреть куда ехать и ехать куда не надо...
};
};


так вот перед этим бесконечным циклом ( while(1) ) надо вставить задержку. Например delayms(5000);
 
 Top
mrbin Post Id


Капитан


Сообщений всего: 50
Дата рег-ции: Авг. 2013  



спасибо за ответ,теперь другая проблема записываю в протеусе,все работает как надо,сначало минает ждет потом едет,записываю в микроконтролер,диод замигал и мигает бесконечно ,робот стоит,микроконтролер мега8515,в чем может быть причина?задержку пишу перед while.
 
 Top
killgur Post Id



Гуру


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



mrbin пишет:
спасибо за ответ,теперь другая проблема записываю в протеусе,все работает как надо,сначало минает ждет потом едет,записываю в микроконтролер,диод замигал и мигает бесконечно ,робот стоит,микроконтролер мега8515,в чем может быть причина?задержку пишу перед while.


уже вроде один раз намекнули что надо код показать...
 
 Top
mrbin Post Id


Капитан


Сообщений всего: 50
Дата рег-ции: Авг. 2013  



#include <mega8515.h>
#include <delay.h>
#include <io.h>
#include <stdlib.h>



void main(void)
{
int i; // объявляем переменную i




DDRD = 0xFF; // все выводы порта D сконфигурировать как выходы
DDRC = 0x00; // все выводы порта C сконфигурировать как входы


PORTC = 0xff; // установить "1" на всех выводах порта D,




for (i = 1; i <= 10; i++) // цикл "для", повторяющийся 10 раз
{

PORTD |= 1<<5; // установить "1" (высокий уровень) на выводе PD5,
//зажечь светодиод

delay_ms(250); // ждем 0.25 сек.

PORTD &= ~ (1<<5); // установить "0" (низкий уровень) на выводе PD5,
//погасить светодиод

delay_ms(250); // ждем 0.25 сек.

}

while(1) // Бесконечный цикл.

{
//ВРАЩАЕМ МОТОРЫ ВПЕРЕД.

PORTD&=~(1<<1); //PORTD.1=0; // установить "0" на линии 2 порта D
PORTD|= 1<<2; //PORTD.2=1; // установить "1" на линии 1 порта D `
PORTD&=~(1<<3); //PORTD.3=0; // установить "0" на линии 2 порта D
PORTD|= 1<<4 ; //PORTD.4=1; // установить "1" на линии 3 порта D





// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА PORTC.1

if (!(PINC & (1<<PINC1))) // проверить "0" на линии 1;
{

// ПРИ ПОСТУПЛЕНИИ СИГНАЛА Н/У PORTC.1/ МИГНУТЬ ДИОДОМ ...

PORTD.6=1;
delay_ms(50);
PORTD.6=0;
delay_ms(50);
PORTD.6=1;
delay_ms(50);
PORTD.6=0;
delay_ms(50);
PORTD.6=1;
delay_ms(50);
PORTD.6=0;

//СТОП МОТОРЫ.

PORTD&=~ (1<<1); //PORTD.1=0; // установить "0" на линии 1 порта D ; `
PORTD&=~ (1<<2); //PORTD.2=0; // установить "0" на линии 2 порта D ;
PORTD&=~ (1<<3); //PORTD.3=0; // установить "0" на линии 3 порта D ;
PORTD&=~ (1<<4); //PORTD.4=0; // установить "0" на линии 4 порта D ;
delay_ms(500);

//ЗДАТЬ НАЗАД.

PORTD|= 1<<1; //PORTD.1=1; // установить "1" на линии 1 порта D
PORTD&=~(1<<2); //PORTD.2=0; // установить "0" на линии 4 порта C
PORTD|= 1<<3; //PORTD.3=1; // установить "1" на линии 2 порта D
PORTD&=~(1<<4); //PORTD.4=0; // установить "0" на линии 4 порта C
delay_ms(1000);

//РАЗВЕРНУТСЯ НА ПРАВО.

PORTD|= 1<<1; //PORTD.1=1; // установить "1" на линии 1 порта D
PORTD&=~(1<<2); //PORTD.2=0; // установить "0" на линии 4 порта C
PORTD&=~(1<<3); //PORTD.3=0; // установить "0" на линии 4 порта C
PORTD|= 1<<4; //PORTD.4=1; // установить "1" на линии 2 порта D
delay_ms(700);

}
(Добавление)
вот код
 
 Top
Роботов Post Id



Гуру


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



Скорее всего, если в протеусе работает, значит происходит сбой во время включения моторов, МК сбрасывается и начинается всё сначала. Короче копайте в питании. попробуйте запитать МК от отдельного источника. Почти всегда помогает.
 
 Top
mrbin Post Id


Капитан


Сообщений всего: 50
Дата рег-ции: Авг. 2013  



Спасибо буду пробовать,и еще вопрос lm358,в нем же два усилителя,собираю на нем да фотодатчика,подключаю,первый раз срабатывают оба,потом один работает второй просо горит,и хоть что ты делай ни чего не помогает,один работает другой нетю
 
 Top
mrbin Post Id


Капитан


Сообщений всего: 50
Дата рег-ции: Авг. 2013  



НЕ ПОМОГЛО ТАКАЯ ЖЕ ЕРУНДА
 
 Top
Роботов Post Id



Гуру


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



mrbin пишет:
НЕ ПОМОГЛО ТАКАЯ ЖЕ ЕРУНДА

Емкости по питанию стоят? Электролит и керамика обязательно.
Reset к плюсу подтянут? Через резистор 10 кОм. желательно.
Чем питаемся-то вообще?
 
 Top
Петр Киселев Post Id



Гуру


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



Желательно, чтобы mrbin выложил схему питания своего устройства!
(Добавление)
mrbin пишет:
PORTD|= 1<<1; //PORTD.1=1; // установить "1" на линии 1 порта D
PORTD&=~(1<<2); //PORTD.2=0; // установить "0" на линии 4 порта C
PORTD&=~(1<<3); //PORTD.3=0; // установить "0" на линии 4 порта C
PORTD|= 1<<4; //PORTD.4=1; // установить "1" на линии 2 порта D
delay_ms(700);

Роботов, все ли здесь правильно? Интуитивно мне тут кое-что не нравится!
 
 Top
Роботов Post Id



Гуру


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



Петр Киселев пишет:
Интуитивно мне тут кое-что не нравится!

В комментариях порт D и порт С перепутаны? Ну это на скорость не влияет)
 
 Top
mrbin Post Id


Капитан


Сообщений всего: 50
Дата рег-ции: Авг. 2013  



ну а правильное питание схему можно,да кондецаторы стоят перед крен и после,возле ноги нет,а схему правильного питания можно?
(Добавление)
[quote=mrbin]ну а правильное питание схему можно,да кондецаторы стоят перед крен и после,возле ноги нет,резет к плюсу подтянут через 50килоом
 
 Top
Роботов Post Id



Гуру


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



От КРЕН-ки только МК питается? Какое напряжение подается на КРЕН? Должно быть больше 7,5 вольт
 
 Top
mrbin Post Id


Капитан


Сообщений всего: 50
Дата рег-ции: Авг. 2013  



больше 7.5,контролер,драйвер двигателя питается от крен
 
 Top
Роботов Post Id



Гуру


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



Если двигатели питаются от другого источника, то должно быть всё нормально. Разве что какая-то мощная помеха от движков всё таки пролазит. Хорошо бы осцилографом посмотреть цепи питания на предмет просадки.
 
 Top
Страниц (2): [1] 2 »
« Программирование микроконтроллеров »


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





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru