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


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

> Описание: ФТ-1К и L-53F3C
Xummppa Post Id


Лейтенант


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



У меня такая стоваттка на потолке висит, без люстры, яркая пипец.
Направил на нее транзисторы, нет реакции.
 
 Top
nest Администратор Post Id



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


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



Xummppa пишет:
стал поярче гореть
что значит "стал поярче гореть" ? ИК излучение не видно глазу. Если у вас ИК фотодатчик, вы и используйте к нему ИК светодиод.
 
 Top
Xummppa Post Id


Лейтенант


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



Я смотрю через камеру мобильника, там все видно.
 
 Top
nest Администратор Post Id



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


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



вы фототранзистор от белого света как нибудь изолировали то ?
он у вас прозрачный - значит ловит весь свет, и на общем фоне не видит ИК лучи.
поставте ИК светофильтр. Можно попробовать красную плёнку или красное стёклышко от "телека"...

а почему вы хотите именно ИК фотосенсор ?
 
 Top
Xummppa Post Id


Лейтенант


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



Проверял в потемках, ничего нового.

Ну а какой еще можно попробовать? Мне в принципе без разницы, главное, чтобы хоть что-то заработало. TSOP пока не хочу, лепить его некуда. Позже поставлю его.
 
 Top
ruPaladin Post Id


Великий стратег


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



А вы полярность фототранзистора, случайно, не перепутали?
 
 Top
nest Администратор Post Id



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


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



ну поставте ОУ усилителем (подойдёт и LM358). Но порог подбирать придётся (R2), что бы отгородиться от фоновой засветки.

Только новых тем больше не создавайте.
Прикреплено изображение
fotorele.png

 
 Top
Xummppa Post Id


Лейтенант


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



Черт! Паладин, ты получаешь Оскар ))
(Добавление)
nest Спасибо, но я и вправду поставил новые транзисторы неправильно, перевернул, тот, что на усилителе отлично "видит" отраженный сигнал с 10-15 см.
Постов на эту тему больше создавать не буду, Ту тему про ИК можете удалить.

(Отредактировано автором: 15 Февраля, 2010 - 23:13:12)

 
 Top
ruPaladin Post Id


Великий стратег


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



Сам также ошибся, потом долго ноги у фототранзистора выпаивал Подмигивающий
 
 Top
Xummppa Post Id


Лейтенант


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



Все было замечательно, все работало, но вдруг решил я модифицировать прошивку (убрать постоянно горение диодов в ожидании срабатывания датчика) и все, МК больше не принимает сигнал с портов (кроме нулевых), возвращал старую прошивку, результата нет.


вот код:

PORTC=0xFF; //+ на порт С
DDRC=0x00; // вход

PORTD=0xFF; //+ на порт Д
DDRD=0x00; // вход

while (1)
{
if (!(PIND & (1<<PIND.2))) // проверяем сигнал на 2-ой ноге порта Д
{
// мигаем
PORTB=0xFF;
delay_ms(100);
PORTB=0x00;
delay_ms(100);
}
if (!(PINC & (1<<PINC.3))) // проверяем сигнал на 3-ей ноге порта С
{
// мигаем
PORTA=0xFF;
delay_ms(100);
PORTA=0x00;
delay_ms(100);
}
};

Срабатывание идет только при заземлении PORTD.0 или PORTC.0. Кстати, при срабатывании двух датчиков у меня общая скорость мигания всегда была ниже в два раза, это нормально?
(Добавление)
Припаял датчики к нулевым портам, ответа нет, замыкаю те, куда были припаяны до этого (которые в прошивке) - все работает. Что-то я ничего не пойму.
(Добавление)
Вернул датчики на ноги (что в прошивке) и опять реакция только на нулевые.
(Добавление)
Вынул из гнезд ик-приемники, срабатывать стало на первые порты. Ох.

(Отредактировано автором: 19 Февраля, 2010 - 19:56:12)

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



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


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



Xummppa, каждая строчка кода должна быть прокомментирована, так проще и вам и другим.
 
 Top
Xummppa Post Id


Лейтенант


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



nest пишет:
Xummppa, каждая строчка кода должна быть прокомментирована, так проще и вам и другим.

Поправил, но думаю не в коде дело.
 
 Top
nest Администратор Post Id



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


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



Xummppa, нет такого "+ на порт С". есть такое: "подтянуть portC" (означает подтянуть к плюсу).
Вы не соединяете порт С с плюсом. вы его подтягиваете к плюсу.
Лучше всегда указывать, к чему подтягиваете/притягиваете, т.к. притягивать можно и к минусу. Тут с русским языком не совсем однозначно :)

либо на-английский манер:
Pull-UP = подтянуть к плюсу, т.е. НАВЕРХ - означает установить там логическую единицу.
Pull-DOWN = притянуть к минусу, т.е. ВНИЗ - означает установить там логический нуль.

дальше:
"проверяем сигнал на 2-ой ноге порта Д" - не пойдёт. Что проверяем, сигнал ? какой сигнал? проверять мы тут можем либо единицу, либо нуль (низкий лог.уровень или высокий).

ещё:
Если вы мигаете на PORTA или PORTB, то вы его должны сконфигурировать на выход путём записи "1" в биты регистров DDRx этих портов.
(Добавление)
Xummppa пишет:
при срабатывании двух датчиков у меня общая скорость мигания всегда была ниже в два раза, это нормально?
если проверка и мигание исполняется последовательно, как у вас, то так нормально.

В остальном - ищите ошибку, где то у вас нессответствует прошивка и схема друг с другом :)
 
 Top
Xummppa Post Id


Лейтенант


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



Переписал код так, чтобы было самому понятно. Все заработало.

#include <mega16.h>
#include <delay.h>

void main(void)
{
DDRA=0xFF; // конфигурируем порты на выход
PORTA=0x00; // устанавливаем логический ноль

DDRB=0xFF; // конфигурируем порты на выход
PORTB=0x00; // устанавливаем логический ноль

DDRC=0x00; // конфигурируем порты на вход
PORTC=0xFF; // включаем подтягивающие резисторы (ставим логическую единицу)

DDRD=0x00; // конфигурируем порты на вход
PORTD=0xFF; // включаем подтягивающие резисторы (ставим логическую единицу)

while (1)
{
if (PIND.2==0) // проверяем, есть ли логический ноль на Д.2
{
// чередуем 1 и 0 на портах Б
PORTB=0xFF;
delay_ms(100);
PORTB=0x00;
delay_ms(100);
}
if (PINC.3==0) // проверяем, есть ли логический ноль на С.3
{
// чередуем 1 и 0 на портах А
PORTA=0xFF;
delay_ms(100);
PORTA=0x00;
delay_ms(100);
}
};
}

Вопрос возник, а как сделать проверку и мигание параллельно? На самом деле я так и не понял, откуда задержка =/
 
 Top
nest Администратор Post Id



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


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



Xummppa пишет:
я так и не понял, откуда задержка
нарисуйте диаграмму алгоритма и всё станет понятно. (например такую: Диаграмма алгоритма )
Xummppa пишет:
как сделать проверку и мигание параллельно?
ввести флаги (попытался как то объяснять тут ). Сначала проверять ноги портов, в зависимости от этого выставлять или сбрасывать флаги. А потом в зависимости от состояния флагов - мигать или не мигать.
 
 Top
Страниц (5): « 1 2 [3] 4 5 »
« Делаем роботов »


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





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