Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.02.2014, 23:50   #11
age0811
Member
 
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0
age0811 is an unknown quantity at this point
По умолчанию Re: Датчик препятствий или автоматический выключатель

Пример из первого поста работает. Но настроить более, чем на 60-80 см резистором мне не удалось.

Задача перекрывать зону и включать подсветку при подходе к рабочей зоне на кухне. Примерно 2,3 метра длина зоны.

Идея такова- каким либо датчиком определять присутствие человека в зоне.

Вопросы к автору:

1. Можно ли переделать скетч, чтобы он работал не на отражение, а на перекрытие луча. Т.е. расположить передатчик и приемник по противоположным стенам кухни? Если "да", что поправить?
Будет эффект перекрытия луча?

2. Второй вариант обдумываю на уз-датчике расстояния hc-sr04. Жду посылку от китайцев.
age0811 вне форума   Ответить с цитированием
Старый 10.02.2014, 01:12   #12
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Датчик препятствий или автоматический выключатель

дЛЯ УВЕЛИЧЕНИЯ РАССТОЯНИЯ, НУЖНО ДОПОЛНИТЕЛЬНО ИСПОЛЬЗОВАТЬ ТРАНЗИСТОР

1-можно
2-Ультазвук как то влияет на нервную систему человека, хотя это и не доказано
Admin вне форума   Ответить с цитированием
Старый 15.02.2014, 23:52   #13
age0811
Member
 
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0
age0811 is an unknown quantity at this point
По умолчанию Re: Датчик препятствий или автоматический выключатель

Решил отказаться от идеи использовать отражение и остановиться на прерывании луча.

Разнес фотоприемник и светодиод. С помощью транзистора удалось увеличить расстояние уверенного срабатывания до 120 см.

Вопрос №1; Куда поставить в скетче задержку, чтобы 13 выход оставался высоким еще 5 сек. после отсутствия причины срабатывания.

Код:
byte tsop = 11;   //tsop 
byte irLed = 10;  //ик-светодиод  
byte Led = 13;   //осветодиод(L) на плате 
byte i;     // счётчик 
byte num=20; //число периодов несущей 38кГц в посылаемом пакете 
byte impulse=10;  // длительность полупериода 
byte val, old_val;   //переменная для хранения сигнала с ИК приемника 

void setup()  
{ 
  pinMode (irLed, OUTPUT); // разъём 10 на вывод 
  pinMode(Led, OUTPUT);   //разъём 13 на вывод 
  pinMode(tsop, INPUT);   // разъём 11 на ввод 
  Serial.begin(115200); 
} 

void loop() 
{ 
  for(i=0; i<num; i++) //цикл несущей 
  { 
    digitalWrite(irLed, HIGH); //зажигаем ик-диод 
    delayMicroseconds(impulse); //положительный полупериод 
    digitalWrite(irLed, LOW); //гасим ик-диод 
    delayMicroseconds(impulse-1); //выравниваем скважность
    } 
   
 val=digitalRead(tsop);//Прочитать показания датчика 
 if (val==old_val)     //сравнить показания с предидущей посылкой 
 { 
  digitalWrite(Led,(val==HIGH) ? HIGH:LOW);
  if (val==LOW)   delay(300); //время свечения светодиода (L) при срабатывании 
 } 
old_val=val; 

delay(60); //пауза между пакетами.   
  // Serial.println(val, DEC);
 }
Вопрос №2: Есть идеи, как еще увеличить расстояние уверенного срабатывания до 2-2,5 м?

Вопрос №3: Возможно, нужно переделать скетч, вследствии того, что изменился метод определения присутствия?

Прошу прощения за, возможно, глупые вопросы. В программировании ноль...

Последний раз редактировалось age0811; 16.02.2014 в 00:39.
age0811 вне форума   Ответить с цитированием
Старый 16.02.2014, 01:18   #14
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Датчик препятствий или автоматический выключатель

Цитата:
Разнес фотоприемник и светодиод. С помощью транзистора удалось увеличить расстояние уверенного срабатывания до 120 см.
Покажите схему. Какой ток в цепи ИК диода?
Admin вне форума   Ответить с цитированием
Старый 16.02.2014, 11:44   #15
age0811
Member
 
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0
age0811 is an unknown quantity at this point
По умолчанию Re: Датчик препятствий или автоматический выключатель

Цитата:
Сообщение от Admin Посмотреть сообщение
Покажите схему. Какой ток в цепи ИК диода?
Спасибо за наводку. Возможно что-то было с транзистором. Ток в цепи диода был где-то в микроамперах...

Выкинул транзистор, поставил последовательно с диодом резистор 56 ом. Ток сейчас 20 мА.

Сейчас разнесенный диод и фотоприемник срабатывают на расстоянии около 4,5 метров. С запасом!

Диод поставил TSAL5100 (ИК-светодиод, 5 мм, 940 нм, 130 мВт, угол 20°, Uпр.=1.35В (при 100мА), Imax(пост./имп.)=200мА/1500мА, -40..+85°С ).

Большое спасибо за помошь!

Был бы очень благодарен за правку скетча с точки зрения задержки выключения диода при пропадании причины срабатывания!

Можно на "ты". На "CompCar" и "РССаr" с 2009 г. на "ты".
age0811 вне форума   Ответить с цитированием
Старый 16.02.2014, 12:16   #16
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Датчик препятствий или автоматический выключатель

Все что тебе нужно, все в этом куске кода

Код:
{ 
  digitalWrite(Led,(val==HIGH) ? HIGH:LOW); //  включаем/выключаем лампочку 
  if (val==LOW)  delay(300); //время свечения лампочки при срабатывании 
 }
Admin вне форума   Ответить с цитированием
Старый 16.02.2014, 12:20   #17
age0811
Member
 
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0
age0811 is an unknown quantity at this point
По умолчанию Re: Датчик препятствий или автоматический выключатель

Цитата:
Сообщение от Admin Посмотреть сообщение
Все что тебе нужно, все в этом куске кода

Код:
{ 
  digitalWrite(Led,(val==HIGH) ? HIGH:LOW); //  включаем/выключаем лампочку 
  if (val==LOW)  delay(300); //время свечения лампочки при срабатывании 
 }
Я понимаю, что в этом. Меня удивило вчера, что замена 300 на 3000 эффекта не дает... Сейчас еще попробую.

Магнитные бури, что-ли вчера были... Похоже, скетч правленный на закачался вчера.

Все!!! Вопрос закрыт! Осталось прилепить фоторезистор на измерение уровня освещенности и можно все оформлять в виде отдельного устройства на кухню.

В "Атмегу-8" влезет, наверное, этот код?

Последний раз редактировалось age0811; 16.02.2014 в 12:34.
age0811 вне форума   Ответить с цитированием
Старый 16.02.2014, 12:54   #18
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Датчик препятствий или автоматический выключатель

Цитата:
В "Атмегу-8" влезет, наверное, этот код?
Влезет, только нужно скомпилировать его под Атмегу8
Admin вне форума   Ответить с цитированием
Старый 18.03.2014, 00:34   #19
age0811
Member
 
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0
age0811 is an unknown quantity at this point
По умолчанию Re: Датчик препятствий или автоматический выключатель

Вопрос к автору.

Сейчас скетч у меня выглядит следующим образом
Код:
byte tsop = 11;   //tsop 
byte irLed = 10;  //ик-светодиод  
byte Led = 13;   //осветодиод(L) на плате 
byte i;     // счётчик 
byte num=20; //число периодов несущей 38кГц в посылаемом пакете 
byte impulse=10;  // длительность полупериода 
byte val, old_val;   //переменная для хранения сигнала с ИК приемника 
int sensorPin = A0;            // устанавливаем входную ногу для АЦП
unsigned int sensorValue = 0;  // цифровое значение фоторезистора

void setup()  
{ 
  pinMode (irLed, OUTPUT); // разъём 10 на вывод 
  pinMode(Led, OUTPUT);   //разъём 13 на вывод 
  pinMode(tsop, INPUT);   // разъём 11 на ввод 
  Serial.begin(9600); 
} 

void loop() 
{ 
sensorValue = analogRead(sensorPin);  // считываем значение с фоторезистора
if(sensorValue<340)   //Если освещенность меньше 340 то выполняем основной цикл
{                      
      for(i=0; i<num; i++) //цикл несущей 
  { 
    digitalWrite(irLed, HIGH); //зажигаем ик-диод 
    delayMicroseconds(impulse); //положительный полупериод 
    digitalWrite(irLed, LOW); //гасим ик-диод 
    delayMicroseconds(impulse-1); //выравниваем скважность 
  } 
   val=digitalRead(tsop);//Прочитать показания датчика 
 if (val==old_val)     //сравнить показания с предидущей посылкой 
 { 
  digitalWrite(Led,(val==HIGH) ? HIGH:LOW); //если сигнал низкий то зажигаем светодиод 
  if (val==HIGH)   delay(5000); //время свечения светодиода (L) при срабатывании 
 } 
old_val=val; 
delay(30); //пауза между пакетами.   
  // Serial.println(val, DEC); 
}
else digitalWrite(Led, LOW);
}
Детектируем не на отражение луча, а на пересечение.

Добавил анализ освещенности. Работает четко.

Но есть один вопросик. Бывает, что не срабатывает задержка 5сек. на выключение. Т.е. выключается=(LOW) практически сразу.

При этом если луч перекрыт, то все нормально=(HIGH). И если в течение 5сек. после пересечения луча несколько раз создаешь и нарушаешь условие, тоже все в норме=(HIGH)!

Может быть использовать вторую ИК-пару для надежности?

Если это может дать эффект большей надежности, то как поправить скетч?

Спасибо!

Последний раз редактировалось age0811; 18.03.2014 в 00:43.
age0811 вне форума   Ответить с цитированием
Старый 29.03.2014, 08:55   #20
Casper
Junior Member
 
Регистрация: 20.12.2013
Сообщений: 27
Вес репутации: 0
Casper is an unknown quantity at this point
По умолчанию Re: Датчик препятствий или автоматический выключатель

А подскажите для TSOP на 36кГц код такой же будет?
Casper вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:00. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика