КОНСТАНТИН239 , у вас что программа кривая , что схема , что описание.
Во первых , чего вы хотите от этого устройства ? Это некий ИК бампер ?
Если да то бросьте его и купите TSOP.
Во вторых , неужели сложно нарисовать хотябы ЧИТАЕМУЮ схему ?
В третьих 1Ком для подтяжки маловат . Ставьте 10КОм.
В программе вообще пи...ец.
Это у вас фильтрация фоновой завсветки такая ?
Если да , то вы постоянно изменяете одну и ту же пременную. Такая программа работать не будет.
Нужно использовать три переменных .
Первая - показания при включеном светодиоде.
Вторая при выключеном.
Третья = первая - вторая.
По значению третьей переменной и строится алгоритм рекции на датчик.
Хотя , скорее всего у вас проблемы с фототранзистором.
Попробуйте просто опрашивать АЦП фототранзистора и кидать данные в сериал.
Если ноль то :
1.Неправильная подтяжка.
2.Смените полярность фототранзистора
3.паленый фототранзистор.
Можно померить его сопротивление , при свете и без света . Если не меняется - паленый.
(Добавление)
Кстати , вспомнил.
Когда я начинал , тоже такой дурью маялся.
Вот программка , РАБОТАЕТ 100% (сохранил же я ее!).
CODE:
int val3=0;
int val=0;
int val2=0;
void setup()
{
pinMode(10, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
val=analogRead(14);
digitalWrite(10,HIGH);
delayMicroseconds(30);
val2=analogRead(14);
digitalWrite(10,LOW);
delay(1);
val3=val-val2;
Serial.print(val3);
if(val3>0)
{
digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
if(val3>=30)
{
digitalWrite(13,LOW);
}
}
и вот схема включения.
Фототранзистор пришлось усиливать эмитерным повторителем.
НО , это устройство очень нестабильно работает.
TSOP намного лучше. |