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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.10.2010, 20:23   #1
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
По умолчанию Датчик препятствий или автоматический выключатель

Перепробовал несколько вариантов датчика из интернет, все работают не правильно, чувствительность низкая срабатывают на разные помехи, например на пульты ДУ или энергосберегающие лампы.
Решил написать свой код, теперь у меня можно настроить чувствительность датчика от 1 см до нескольких метров и при этом не стабатывает на помехи.
Чувствительность регулируется резитором в цепи ИК диода, у меня примерно 1к и слабый ИК светодиод от старой мышки , срабатывают на расстоянии 30см от препятствия . Пробовал на оконном стекле (брызгал водой ) срабатывает стабильно. На автомобильном стекле еще не проверял. arduino nano с нижеприведеным кодом работать самостоятельно без ПК. Индикатор (L) начинает светиться при срабатывании. Датчик ИК и ИК светодиод должны быть полностью изолированы друг от друга светонепроницаемым материалом. С таким датчиком выключатель будет включенным даже если вы не двигаетесь.

ИК приемник использовал, работающий в диапазоне 38кГц


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

void setup() 
{
  
pinMode (irLedOUTPUT); // разъём 10 на вывод
  
pinMode(LedOUTPUT);   //разъём 13 на вывод
  
pinMode(tsopINPUT);   // разъём 11 на ввод
  
Serial.begin(115200);
}

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

delay(30); //пауза между пакетами.  
  // Serial.println(val, DEC);

Название: NANO_Rain_sens.PNG
Просмотров: 5973

Размер: 7.9 Кб
Admin вне форума   Ответить с цитированием
Старый 04.04.2013, 23:27   #2
Arsenid
Junior Member
 
Регистрация: 22.03.2013
Адрес: Нижний Новгород
Сообщений: 8
Вес репутации: 0
Arsenid is an unknown quantity at this point
Отправить сообщение для Arsenid с помощью ICQ
По умолчанию

У меня не работает этот пример,ик диод может не тот?

Последний раз редактировалось Arsenid; 04.04.2013 в 23:32.
Arsenid вне форума   Ответить с цитированием
Старый 04.04.2013, 23:34   #3
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
По умолчанию

Если посмотреть на ИК диод через камеру, он светится?
Admin вне форума   Ответить с цитированием
Старый 05.04.2013, 03:44   #4
Arsenid
Junior Member
 
Регистрация: 22.03.2013
Адрес: Нижний Новгород
Сообщений: 8
Вес репутации: 0
Arsenid is an unknown quantity at this point
Отправить сообщение для Arsenid с помощью ICQ
По умолчанию

Да моргает,но слабо,нашёл решение - датчик присутствия без датчиков совсем,работает от нескольких сантиметров до 2-3 метров вот пример:
int ledPin = 13; // Светодиод на 13 порту
int inPin = 3; // кусок проволоки длинна подбирается экспериментально на макетке около 4 сантиметров
void setup()
{
pinMode (ledPin, OUTPUT);
pinMode (inPin, INPUT);
}
void loop()
{
if (digitalRead(inPin) ==HIGH)
{
digitalWrite(ledPin, HIGH);
delay (3000);//время свечения светодиода
digitalWrite (ledPin, LOW);
}
}

Последний раз редактировалось Arsenid; 05.04.2013 в 03:50.
Arsenid вне форума   Ответить с цитированием
Старый 05.04.2013, 11:50   #5
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
По умолчанию

И будет этот датчик на все помехи срабатывать
Есть статейка про емкостной датчик
Admin вне форума   Ответить с цитированием
Старый 08.04.2013, 17:45   #6
Arsenid
Junior Member
 
Регистрация: 22.03.2013
Адрес: Нижний Новгород
Сообщений: 8
Вес репутации: 0
Arsenid is an unknown quantity at this point
Отправить сообщение для Arsenid с помощью ICQ
По умолчанию

Да согласен помехи не исключены,а какой всё же ик диод вы использовали?
Arsenid вне форума   Ответить с цитированием
Старый 08.04.2013, 18:14   #7
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
По умолчанию

Я использовал светодиод от пульта дистанционного управления телевизора
Admin вне форума   Ответить с цитированием
Старый 13.04.2013, 13:45   #8
Arsenid
Junior Member
 
Регистрация: 22.03.2013
Адрес: Нижний Новгород
Сообщений: 8
Вес репутации: 0
Arsenid is an unknown quantity at this point
Отправить сообщение для Arsenid с помощью ICQ
По умолчанию

Перепробовал всё не работает пример ,ик диоды разные ставил сопротивление менял
Arsenid вне форума   Ответить с цитированием
Старый 13.04.2013, 14:17   #9
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
По умолчанию

А ИК приемник какой используется? Какая плата Arduino?
Admin вне форума   Ответить с цитированием
Старый 13.04.2013, 15:06   #10
Arsenid
Junior Member
 
Регистрация: 22.03.2013
Адрес: Нижний Новгород
Сообщений: 8
Вес репутации: 0
Arsenid is an unknown quantity at this point
Отправить сообщение для Arsenid с помощью ICQ
По умолчанию

Arduino Nano V7,ик приёмник тсоп как в проекте на вид по крайней мере,пробовал подключал ик диод без резистора еле моргает
Arsenid вне форума   Ответить с цитированием
Ответ


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

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

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

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

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


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


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