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


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

> Описание: первый проэкт на микроконтроллере
rain_cbc Post Id



Маршал


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



уже 3 перепробовал Грустный
и ничего
 
 Top
nest Администратор Post Id



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


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



а как вы видите "срабатывание" фототранзистора ?
замерте напряжение между коллектором фототранзистора и ПЛЮСОМ источника питания в затемнённом и осветлённом "положении", сколько ?
 
 Top
rain_cbc Post Id



Маршал


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



навожу его на лампу в прямую....потому что ничего не происходит если не навести на яркий свет.....напряжение в темноте 4.14 при срабатывании 0.09
 
 Top
nest Администратор Post Id



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


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



rain_cbc, подключите резистор 50-100 кОм между коллектором и плюсом питания.
 
 Top
rain_cbc Post Id



Маршал


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



типа вот так?
Прикреплено изображение
Безымянный.png

 
 Top
nest Администратор Post Id



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


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



rain_cbc пишет:
потому что ничего не происходит если не навести на яркий свет
"ничего" - в смысле поведение моторчика не меняется?

вот так. только не 50 Ом, а 50..100 кОм (любой от 50 кОм до 100 кОм)
Прикреплено изображение
Безымянный1.png

 
 Top
rain_cbc Post Id



Маршал


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



можно глупый вопросик?это типа ножка выхода к мк? Смущение
Прикреплено изображение
12.png

 
 Top
nest Администратор Post Id



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


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



rain_cbc, в общем - да.
 
 Top
rain_cbc Post Id



Маршал


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



есть вопрос)пытаюсь подружить вот это http://myrobot.ru/stepbystep/r_firstbot1.php
с вот этим http://robozone.su/2008/04/22/mo...ratora-dlja.html
http://robozone.su/mrc28/19-modul-ik-datchika-na-osnove-tsop2136.html
возникает много вопросов.....по идее в мк как я понимаю должно быть задействовано 2 ножки....1 по которой передается программа с подачей импульсов...а вторая для приема состояния тсопа....но там вроди идет только 1 ножка.почему так?или я чтото не правельно понимаю?
подключал как там показано но не подсоединял к мк просто питание подавал заметил такую штуку...когда препятствия нету на out тсопа показывает гдето 2.85,когда приближаеш преграду ничего не происходит.....но когда она поевляется рывкон(очень быстро) тогда падает около -2.8
кто-то может подсказать как мне это все привести в порядок? Смущение
 
 Top
ОЛЕГ Супермодератор Post Id



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


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



rain_cbc пишет:
когда препятствия нету на out тсопа показывает гдето 2.85,когда приближаеш преграду ничего не происходит.....но когда она поевляется рывкон(очень быстро) тогда падает около -2.8
кто-то может подсказать как мне это все привести в порядок?

Все точно так и происходит. Сигнал нужно слать пачками, тогда все будет в порядке.

Если у Вас есть МК, зачем тогда использовать внешний генератор?
Какую программу и куда Вы хотите передавать?

Нарисуйте схематично (просто блоками, где что происходит и что на что влияет), как Вы себе представляете согласование устройств, ссылки на которые Вы привели.
 
 Top
rain_cbc Post Id



Маршал


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



я хотел сделать бампер))тоесть насколько теперь понял то сигнал можно генерировать мк не подключая гениратор?
если все так как понял то должно быть так?:
Прикреплено изображение
Безымянный56.png

 
 Top
nest Администратор Post Id



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


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



если есть МК, то тогда уж так:
Прикреплено изображение
3535.png

 
 Top
rain_cbc Post Id



Маршал


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



ну да....на моем рисунке ик датчик это http://robozone.su/mrc28/19-modu...ve-tsop2136.html
я в програмировании еще полный чайник...поэтому нашол похожий код и немного его переделал...он компилируется но ничего не происходит((((кто-то может подсказать в чем проблема?
вот код
#include <avr/io.h>
#include <avr/delay.h>

int main( void )
{
//конфигурация портов
DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы

while( 1 )
{
//цикл подачи пачки импульсов ик светодиодом
for( char i = 0; i < 30; i++ )
{
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
}

PORTD &= ~0x01;

if(!(PINC & (1<<PINC5))) // проверка: если на ноге PC5 (к ней TSOP подключен) ноль (есть сигнал)
{
PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
}
else // если нет сигнала
{
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
}
_delay_us( 1000 ); //пауза между пачками импульсов
}

return 0;
}

Смущение
 
 Top
ОЛЕГ Супермодератор Post Id



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


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



rain_cbc пишет:
for( char i = 0; i < 30; i++ )
{
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
}

PORTD &= ~0x01;


Так не получится.
Раз Вы решили поступить таким образом, то тогда лучше вот так:

CODE:

for( char i = 0; i < 30; i++ )
{
PORTD &= ~0x01;
_delay_us(14); // задержка 14 микросекунд, чтобы получилась частота примерно 36 кГц
PORTD ^= 0x01; // начало импульса
_delay_us(14);
}


Мне кажется, Вам придется поиграть задержкой для того, чтобы поточнее подстроить частоту.
И следует обратить внимание, что после генерации очередной пачки МК должен успеть "метнуться" к TSOP, а на том все еще должен быть "0".

И я не уверен по поводу _delay_us(14);
 
 Top
nest Администратор Post Id



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


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



ОЛЕГ пишет:
после генерации очередной пачки МК должен успеть "метнуться" к TSOP, а на том все еще должен быть "0"
или завести его на прерывание.

Весь алгоритм с пояснениями (хоть и почти на асм) с использованием прерывания и всеми расчётами я уже приводил как то :) >>>
 
 Top
Страниц (4): « 1 2 [3] 4 »
« Программирование микроконтроллеров »


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





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