Датчик жестов APDS 9960.
- Войдите на сайт для отправки комментариев
Всем привет дорогие профессионалы. Такой вопрос. Делаю светильник, который меняет цвета от жестов с помощью датчика APDS9960. Проект создаю в FLPROG. Датчик жестов работает корректно.
Когда происходит жест, например слева на права ( жест RIGHT) то включается первый светодиод. Когда делаю еще один жест такойже (RIGHT). то нет смены на новый цвет. Смена цвета происходит когда делаю любой другой жест и затем сноваделаю жест RIGHT.
Принцып работы датчика мне ясен - при обработке жеста (напр. RIGHT) - сигнал лог. единицы ны выходе держится всегда. Сигнал на ноль переводится любым другим жестом. Тоесть чтобы переключить на смену цвета надо махать туда сюда.
Мне бы хотелось чтобы делать жест в одну сторону и поочередно была смена цветов.
Помогите с проблемой.
Думаю если при обработке жеста единица менялась бы на ноль допустим через задержку то был бы желаемый результат. Но как сделать это незнаю. В программировании языка С не силен.
Здесь фрагмент кода как обрабатываются жесты. Может здесь можно установить ту самую задержку с единицы на ноль.
if (Gesture_70103259_3 == ("UP" )) { UP__70103259_3 = 1;} else {UP__70103259_3 = 0;} if (Gesture_70103259_3 == ("DOWN")) { DOWN__70103259_3 = 1;} else {DOWN__70103259_3 = 0;} if (Gesture_70103259_3 == ("LEFT")) { LEFT__70103259_3 = 1;} else {LEFT__70103259_3 = 0;} if (Gesture_70103259_3 == ("RIGHT")) {RIGHT__70103259_3 = 1;} else {RIGHT__70103259_3 = 0;} if (Gesture_70103259_3 == ("NEAR")) {NEAR__70103259_3 = 1;} else {NEAR__70103259_3 = 0;} if (Gesture_70103259_3 == ("FAR")) {FAR__70103259_3 = 1;} else {FAR__70103259_3 = 0;} if (Gesture_70103259_3 == ("NONE")) {NONE__70103259_3 = 1;} else {NONE__70103259_3 = 0;}
Схема в FL PROG. Счетчик CTU работает на увилечение.
Заранее большое спасибо за помошь.