Подключение Sharp GP1U521Y (LIGHT DETECTING UNITS)
- Войдите на сайт для отправки комментариев
Имеется датчик (Sharp GP1U521Y) (доки http://kazus.ru/datasheets/pdf-data/3244764/SHARP/GP1U521Y.html)
Подключен к 9 пину, 5вольт (Arduino Duemilanove, Atmega 328).
Код (стаднартный) "
#include "IRremote.h"
IRrecv irrecv(9); // Указываем пин, к которому подключен приемник
decode_results results;
void setup()
{
Serial.begin(9600); // Выставляем скорость COM порта
irrecv.enableIRIn(); // Запускаем прием
}
void loop() {
if (irrecv.decode(&results)){ // Если данные пришли
Serial.println(results.value, HEX); // Отправляем полученную данную в консоль
irrecv.resume(); // Принимаем следующую команду
}
}
". На нажатие пульта реагирует, но на компьютер приходят такие значения как(FFFF) или эти значения одинаковы на каждую кнопку и с каждым нажатием я получаю не то что хотелось.
Вывод "
25AE7EE0
FFFFFFFF
FFFFFFFF
5A33C757
25AE7EE0
FFFFFFFF
FFFFFFFF
FFFFFFFF
191A4029
FFFFFFFF
E09F2533
FFFFFFFF
----ИНАЯ КНОПКА
FFFFFFFF
591B80E9
FFFFFFFF
FFFFFFFF
5A33C754
1A1A41BA
FFFFFFFF
"
Что делается не правильно, может уникальность датчика или не совсем правильное подключение
FF - обычно означает удержание нажатой кнопки. То есть, если нажать и держать кнопку - сначала выдаётся её уникальный код, а потом просто символы повтора. Но вывод у Вас всё же несколько странный...
Вот вывод еще, нажималась одна единственная клавиша STOP
"25AE7EE0
25AE7EE0
25AE7EE0
FFFFFFFF
57D22308
DBC8CB72
57D22308
A0F22FDA
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
5A33C757
25AE7EE0
FFFFFFFF
25AE7EE0
3AF2B941
24AE7D4F
"
Поиграйте типо передающего устройства. там в библиотеке IRRemote есть разные типы.
Выводите в монитор в двоичном коде (BIN). Увидите, что при нажатии разных кнопок меняются только несколько разрядов. Остальные для данного пульта неизменны и информации не несут. Вот пример кода генератор управляемый ПДУ. Правда там немного урезанная библиотека ИР приема NECIRrcv.h .
В строках 49-55 опрос кодов пульта и удаление лишней информации
Еще не сказал, пульт TACTICS, шел вместе с GP1U521Y.
Код что-то слижком большой, и пугающий. Про бинарные данные поищю в апи.
Строки 82-99 можете удалить, они выводят на дисплей. Получится генератор от 1 Гц до 8 МГц, ввод частоты с ПДУ.
для просмотра двоичного кода клавиши вставьте строку
еще проще измените строчку в Вашей программе
только HEX замените на BIN
1110000101110000101000001011000
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
1110000101110000101000001011000
1100001001111100010000011011111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11110101111010101110111001111111
11111111111111111111111111111111
11111111111111111111111111111111
1001010101100001111011110110101
Биты получены, кнопка одна и тажа.
Странно, повтор нажатий идет нормально 32 бита едениц, а код нажатия 31 и разный. Что-то не так, возможно ИР приемник не стыкуется с пультом или библиотека глючит. У меня неустойчиво работало в двух случаях - когда пульт слишком близко к премнику и он перегружается или когда очень далеко.
Попробуйте другие пульты, которые есть в хозяйстве.
если убрать строки повтора, то некая закономерность прослеживается
Вы попробовали поиграть типом пульта, как я советовал? Что-нибудь дало?
Пока не пробовал, щяс пытаюсь вывод понять.
взял иной пульт, даже удивился что он подошел.
"
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
"
Пульт от PHILIPS. одни еденицы.
Пульт BBK "101011010010001010011011100000
11111111111111111111111111111111
1110001101110000101000111101111
11111111111111111111111111111111
11010001101100010010100011000111
11111111111111111111111111111111
1111001000111111011000010010110
11111111111111111111111111111111
1110001101110000101000111101111
11111111111111111111111111111111
110000110100011001101101111110
11111111111111111111111111111111
1110001101110000101000111101111
110000110100011001101101111110
1110001101110000101000111101111
"
Помоему чего-то в схеме не хватает, иза этого мусор? или сама библиотека?
BBK КНОПКА CANCEL
"
11111111111111111111111111111111
1101011101001000111000011101111
11111111111111111111111111111111
1110001101110000101000111101111
11111111111111111111111111111111
1110010001010110000010010110111
1101010101001000110111101011000
11111111111111111111111111111111
1001100101100001111101011011101
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
1110001101110000101000111101111
1111100000111111011010101001111
"
Всего два совпадения 4-я сверху и 2-я снизу, а пульт другой?
Попробуй библиотеку из моего скетча. Она не универсальная, а только для кодирови NEC. Использует таймер 2 и прерывание с 2 пина.
Скетч:
Библиотеку могу скинуть. https://yadi.sk/d/z8AL3p9h32w2L3
Да пульт другой (BBK фирма пульта и его видика, TACTICS родной пульт).
Библиотеку "
NECIRrcv" не могу найти..
Ок, обновил страницу вижу, пробую.
Скинул на яндекс диск. Смотри выше.
Реакции нету
выход приемника на 2 пине?
Да, по коду на втором, вот и он на втором.
А если другие пульты попробовать?
Три пульта) от разных устройств.
Странно, библиотека использует аппаратный таймер, и у меня по сравнению с о стандартной работает более устойчиво.
Тактовая частота ардуино 16 МГц?
Кварц на 16. Приемник 38 khz
Непонятно. Может еще кто подключится.
"Внимание! Если код кнопки будет считываться с ошибками, либо не считываться совсем, необходимо собрать схему с фильтром:" Нашел схему http://student-proger.ru/2013/03/arduino-upravlenie-svetom-s-pulta-dista... Как думаете стоит?
В принципе помочь может. Там собран фильтр по питанию и дополнительная подтяжка выхода. А у Вас осциллографа нет. Глянуть, что на выходе приемника. Приемник фельдеперсовый, по даташиту питание 6.3 В. Что у него на выходе одному богу известно.
Нашел еще статью "http://webstrannik.ru/podklyuchenie-infrakrasnogo-priemnika-k-Arduino.html" знаете я узнал свой датчик (тот в железной коробке, и распиновка почти тажа) И там есть схема.
Вобщем спаял я все это дело и странно, пульты старые родные работать перестали, а вот пульт от PHILIPS который вообще отказывался изначально работать вдруг начел адекватные значения выдавать!!
"
1000A
1000A
A
A
1000A
1000A
A
A
1000A
1000A
A
A
1000A
1000A
ИНАЯ КНОПКА
1005C
1005C
5C
1005C
5C
" Правда странный он видите иногда от 100 плюсует, иногда бывает у него и FF, и мусор но это редко. Спасибо всем за помощь! Особенно svm.
Поздравляю с успехом. Чтобы легчеразобраться смотри в BIN. Там разница между кодами визуально видна.