Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
1

Объемный ИК извещатель Фотон-9 и Arduino UNO

20.01.2016, 18:25. Показов 6325. Ответов 37
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, уважаемые формумчане! У меня возникла проблема, 3 дня уже ломаю голову и не могу разобраться. Ардуинка неверно считывает данные с Фотона в мониторе порта: выдает движение, когда его нет и/или не выдает, когда оно есть. Прошу вашей помощи. Использую вот такой скетч:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int ledPin = 13;  // инициализируем пин для светодиода
int inputPin = 2;  // инициализируем пины для получения сигнала от пироэлектрического датчика движения 
int pirState = LOW;  // начинаем работу программы, предполагая, что движения нет
int val = 0;  // переменная для чтения состояния пина
 
void setup() {
pinMode(ledPin, OUTPUT);  // объявляем светодиод в качестве  OUTPUT
pinMode(inputPin, INPUT);  // объявляем датчик в качестве INPUT
Serial.begin(9600);
delay(1000);
}
 
void loop(){
val = digitalRead(inputPin);  // считываем значения с датчика
if (val == HIGH) {  // проверяем, соответствует ли считанное значение HIGH
digitalWrite(ledPin, HIGH);  // включаем светодиод
delay(10);
if (pirState == LOW) {
Serial.println("Motion detected!");  // выводим на серийный монитор изменение, а не состояние
pirState = HIGH;
}
} 
else {
digitalWrite(ledPin, LOW); // выключаем светодиод
delay(10);
if (pirState == HIGH){
Serial.println("No motion");  // выводим на серийный монитор изменение, а не состояние
pirState = LOW;
}
}
}
P.S: пробовал подключать и другим пинам тоже. Фотон-9 работает исправно, а питается от 12В через VIN и GND Ардуины.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2016, 18:25
Ответы с готовыми решениями:

Ошибка при загрузке кода в Arduino Uno (Китай) - Arduino
В Диспетчере устройств Arduino определяется, как USB-SERIAL CH340 (COM5). При попытке залить...

Arduino UNO. Как работать c RFID-сканнером и Arduino на одном Serial-порту?
Рас уж тут речь зашла об ардуине и многопоточности COM порта, думаю могу обратиться именно сюда за...

Arduino uno + arduino ethernet + delphi для чайников
Доброго времени суток. У меня такая задача нужно реализовать программу на Delphi которая...

Arduino UNO + HC-06. RX
Подключаю модуль HC-06, питание HC-06 от отдельного источника 4.8В. ножки RX и TX модуля, в TX и RX...

Arduino uno
Нужна схема структурная Arduino Uno,перелопатил кучу сайтов,только принципиальные,может кто находил?

37
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
20.01.2016, 23:27 2
Как подключаете к пинам?
1
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
21.01.2016, 10:49 3
Как быстро меняются данные с Фотона?
С задержкой "17 delay(10);" заметить срабатывание нереально.
Для отработки программы и схемы поставьте вместо фотона кнопку.
1
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
21.01.2016, 10:50 4
Цитата Сообщение от Сергей 190 Посмотреть сообщение
Как быстро меняются данные с Фотона?
Сухой контакт у него выход
1
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
21.01.2016, 11:01 5
Значит нужно еще и дребезг контактов отрабатывать...
1
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
21.01.2016, 19:02  [ТС] 6
Цитата Сообщение от Сергей 190 Посмотреть сообщение
С задержкой "17 delay(10);" заметить срабатывание нереально.
Дело в том, что там хоть какую задержку указывай, оно ничего не меняет. Как только запускаю Монитор Порта начинают друг за другом быстро и непрерывно идти надписи "Motion detected" и "No motion". Правильно ли я понял, что когда есть движение, на входной пин Ардуины в качестве сигнала подается 1, а когда его нет, то 0?

Добавлено через 5 минут
Цитата Сообщение от Витальич Посмотреть сообщение
Как подключаете к пинам?
напрямую подключаю питание на VIN и GND, а ШС на 2 пин Arduino. Всё как в схеме подключения датчика с использованием оконечного резистора.

Добавлено через 2 минуты
Цитата Сообщение от Сергей 190 Посмотреть сообщение
Как быстро меняются данные с Фотона?
В первоначальном варианте скетча задержки не было вообще, поэтому там за секунду(на вскидку) раз 5-10 данные менялись...

Добавлено через 11 минут
Цитата Сообщение от Сергей 190 Посмотреть сообщение
Для отработки программы и схемы поставьте вместо фотона кнопку.
Я же могу реализовать эту "кнопку" простым размыканием/замыканием контактов, передающих сигнал, с фотона? если да, то в случае размыкания сигналы не поступают в Монитор порта(как и должно),а в случае замыкания передаются низкие(0) и высокие(1) сигналы, причем совершенно рандомно и независимо от того, есть ли движение, или нет.
0
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
21.01.2016, 19:23  [ТС] 7
Вот как я подключил Фотон к Arduino, может тут накосячил?
Вложения
Тип файла: rar фотон и ардуино.rar (2.35 Мб, 28 просмотров)
0
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
21.01.2016, 19:47  [ТС] 8
Цитата Сообщение от Сергей 190 Посмотреть сообщение
Значит нужно еще и дребезг контактов отрабатывать...
Весьма вероятно. Не подскажите, как избавиться от этого явления?
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
21.01.2016, 20:47 9
Лучший ответ Сообщение было отмечено Wintel как решение

Решение

Цитата Сообщение от Wintel Посмотреть сообщение
напрямую подключаю питание на VIN и GND
сколько вольт?
Пин подключаете вот так (vcc на 5V):
Миниатюры
Объемный ИК извещатель Фотон-9 и Arduino UNO  
1
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
21.01.2016, 21:18  [ТС] 10
Цитата Сообщение от Витальич Посмотреть сообщение
сколько вольт?
Может некорректно выразился, попробую ещё раз. 5В от USB и 12В внешнее питание - это всё на Arduino подается. Потом к её пинам подключаю выводы с Фотона по такой схеме:
Миниатюры
Объемный ИК извещатель Фотон-9 и Arduino UNO  
0
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
21.01.2016, 22:15 11
12 вольт на ардуино НЕЛЬЗЯ. Сгорит.

Добавлено через 3 минуты
Даже "чужие" 5 V плохо. Еще раз про выход фотона: на выходе напряжение появляется или контакты просто замыкаются?
1
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
21.01.2016, 22:20 12
Сухая пара нормально замкнутая.
1
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
21.01.2016, 22:27 13
Дребезг контактов https://ru.wikipedia.org/wiki/Дребезг_контактов
Миниатюры
Объемный ИК извещатель Фотон-9 и Arduino UNO  
1
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
21.01.2016, 22:32 14
В ардуине избавиться от дребезга очень просто.
Поиграться с delay(???)
Если аппаратно, то ставить конденсатор.
1
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
21.01.2016, 23:28  [ТС] 15
Цитата Сообщение от Сергей 190 Посмотреть сообщение
12 вольт на ардуино НЕЛЬЗЯ. Сгорит.
Добавлено через 3 минуты
Даже "чужие" 5 V плохо. Еще раз про выход фотона: на выходе напряжение появляется или контакты просто замыкаются?
Без доп питания Фотон-9 работать не будет, т.к. его рабочее напряжение согласно ТТХ: 10-15В (в идеале 12В). Запитать его отдельно (не через Ардуино) нет возможности.

Добавлено через 4 минуты
Цитата Сообщение от Сергей 190 Посмотреть сообщение
В ардуине избавиться от дребезга очень просто.
Поиграться с delay(???)
Если аппаратно, то ставить конденсатор.
С delay() попробую снова поиграться, а вот аппаратно решить не смогу - руки не из того места...
0
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
22.01.2016, 11:56 16
Я имел ввиду, что нельзя подавать выше 5 V на цифровые и аналоговые входы.
Далее по схеме подключения:


1- Виталич правильно указал – контакт между землей и каким либо цифровым входом.
Откуда у Вас проявился второй цифровой вход?
2- Rez1= Rок. Получается на цифровой вход ардуины приходит 2,5 V. Ни 0 ни 1.
А это и приведет к быстрому и непрерывному переключению "Motion detected" и "No motion".
Зачем вообще нужен Rок? Если Вы всё-таки очень хотите ограничить ток, то Rок должен быть раз в десять меньше Rez1.
Или раз в десять больше, но тогда вместо
if (val == HIGH) { // проверяем, соответствует ли считанное значение HIGH
нужно
if (val == LOW) { // проверяем, соответствует ли считанное значение LOW
ну и далее по всей программе…
Миниатюры
Объемный ИК извещатель Фотон-9 и Arduino UNO  
1
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
22.01.2016, 15:28  [ТС] 17
Цитата Сообщение от Сергей 190 Посмотреть сообщение
Зачем вообще нужен Rок?
Rок - оконечный резистор, обязательный при подключении такого типа извещателей, причем он должен быть именно 4,7 кОм(или 3,9 или 5,6 в зависимости от ПКП). 3 пин должен был бы контролировать целостность Фотона, в случае вскрытия корпуса - подавать сигнал на Ардуино, но это я пока ещё не реализовывал в скетче.
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
22.01.2016, 15:41 18
Цитата Сообщение от Wintel Посмотреть сообщение
оконечный резистор, обязательный при подключении такого типа извещателей
Да ты шо. Кому нужен? Контроллеру сигнализации резистор нужен, для контроля целостности шлейфа Вы же подключаете в ардуине к цифровому пину. Смотрим мою схему. Что бы сделать на Ардуине вход как на охранном контроллере .... (пусть кто нибудь другой напишет)
1
363 / 346 / 74
Регистрация: 18.03.2015
Сообщений: 1,292
22.01.2016, 15:54 19
Открыл паспорт на Фотон-9

Выходные контакты реле замкнуты - извещение “Норма”, ток 30 мА, напряжение 72 В
Микропереключатель - замкнуты при закрытой крышке, ток 30 мА, напряжение 72 В

Считаем: 72V/0.03A=2400 Ω. Откуда именно 4,7 кОм???

Считаем для ардуины: 5V/0.03A=166,6666 Ω.

Если нужно контролировать целостность Фотона отдельно, то такая схема подключения не подойдет.
1
4 / 4 / 0
Регистрация: 20.01.2016
Сообщений: 26
22.01.2016, 16:23  [ТС] 20
P.S. вместо 3 пина подключил к GND - результат тот же, изменение цифр в delay() тоже ни к чему не привело.
0
22.01.2016, 16:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2016, 16:23
Помогаю со студенческими работами здесь

Arduino UNO + ENC28J60
Доброго времени суток. Очень нужна помощь в решении следующей проблемы: "Ардуино выступает как...

Китайский Arduino Uno
Всем приветы о великие ардуинщики) Нужна ваша помощь в осмыслении! Пришла ардуина с ТаоБао, так вот...

Китайская Arduino UNO
Что думаете о китайской версии? Стоит она на порядок дешевле, а как внутри? Стоит ли попытать...

Arduino Uno + Python
Всем привет! Решил попробовать сделать маленькую программу для управления arduino. Отправка...

Arduino Uno + Sim900 + C#
Здравствуйте. Хочу отправлять и получать данные через серийный порт плате с SIM900, стандартный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru