Какую схему подключения использовать? Какие выводы и как будут замыкаться? И может кто подскажет другое решение на QT сенсорах, на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
Подскажите пожалуйста - сенсорные кнопки на QT1011
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
Задача такая: есть плата от USB клавиатуры, нужно сделать сенсорные кнопки реагирующие через стекло 3-5 мм. Т.е. при "нажатии" кнопки должно происходить замыкание контактов на плате-контроллере клавиатуры. Кнопки хотел сделать на QT102. Но никак не могу разобраться, помогите пожалуйста.
Какую схему подключения использовать? Какие выводы и как будут замыкаться? И может кто подскажет другое решение на QT сенсорах, на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
Какую схему подключения использовать? Какие выводы и как будут замыкаться? И может кто подскажет другое решение на QT сенсорах, на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
- Реклама
По моему 3-5 мм очень много. Сенсор должен быть очень чувствительным, а значит он будет реагировать на всякие помехи… Возможны неконтролируемые срабатывания…
Да и сама клавиатура кажется не сенсорная…
Да и сама клавиатура кажется не сенсорная…
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
Про эти датчики - QT101 - более новые версии - QT1010 и QT1011 именно для такого и рассчитаны, как написано на сайте изготовителя - реагируют через стекло 10мм, пластик - 6 мм, дерево и тд.
От клавиатуры остаётся только контроллер - посылающий сигналы компу какие кнопки были нажаты.
Фактически мне нужен совет и схема на QT1011, чтобы при прикосновении к контактной площадке (кнопке) замыкались контакты, которые будут идти на контроллер клавиатуры, который в свою очередь отправит сигнал компу что была нажата определённая клавиша. Вот как-то так)
P.S. Спецы подскажите, сенсорный ёмкостной экран, будет реагировать на палец через 3 мм стекло? Может у кого устройство есть с ёмкостным экраном, проверьте пожалуйста по возможности)
От клавиатуры остаётся только контроллер - посылающий сигналы компу какие кнопки были нажаты.
Фактически мне нужен совет и схема на QT1011, чтобы при прикосновении к контактной площадке (кнопке) замыкались контакты, которые будут идти на контроллер клавиатуры, который в свою очередь отправит сигнал компу что была нажата определённая клавиша. Вот как-то так)
P.S. Спецы подскажите, сенсорный ёмкостной экран, будет реагировать на палец через 3 мм стекло? Может у кого устройство есть с ёмкостным экраном, проверьте пожалуйста по возможности)
да там все просто с этими датчиками, сам работал с QT101A,правда уже давненько,там все подключаешь по даташиту,расстояние срабоки и последующего восстановления зависит от емкости кондера,подбирается в зависимости от толщины,контактная площадка на которой собирается заряд не менее 5x8 мм,и главное чтобы не было посторонней утечки заряда с площадки.
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
А что насчёт Атмеловских датчиков которые для 10 и более кнопок?
ТАм данные по SPI идут, что сделать чтобы комп получал эти сигналы и воспринимал их как нажатия клавиш на клавиатуре?
ТАм данные по SPI идут, что сделать чтобы комп получал эти сигналы и воспринимал их как нажатия клавиш на клавиатуре?
- Реклама
- Сообщения: 2584
- Зарегистрирован: Вт сен 14, 2010 10:27:19
Как в даташите и в апноутах написано.frick писал(а): на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
Будете проходить мимо- проходите!
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
А отчего бы просто не реализовать USB HID клавиатуру? Это не так сложно, как кажется.Т.е. при "нажатии" кнопки должно происходить замыкание контактов на плате-контроллере клавиатуры.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
Дело в том что мне нужны сенсорные емкостные кнопки, чтобы срабатывали через стекло. Задумка такая. Можно поподробней о USB HID клавиатуре?YS писал(а):А отчего бы просто не реализовать USB HID клавиатуру? Это не так сложно, как кажется.
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Посмотрите на примеры с V-USB, там есть HID.Можно поподробней о USB HID клавиатуре?
А кнопки можно прикрутить какие угодно. Главное, ПК будет считать, что это клавиатура.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
Спасибо) Как вариант подойдёт клавиатура на 17 клавиш, только пока не разобрался как контачить на компе это будет. И все ещё открыт вопрос с емкостными клавишами (через стекло 3-5 мм).YS писал(а):Посмотрите на примеры с V-USB, там есть HID.
А кнопки можно прикрутить какие угодно. Главное, ПК будет считать, что это клавиатура.
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
Это конечно круто, но к сожалению не то. Моих знаний не хватает пока для того, чтобы додумать как это подключить к компу, да так чтобы он распознавал сигналы правильно...
Я использую технологию QMatrix, а именно чипы AT42QT2160 http://www.atmel.com/dyn/products/produ ... ly_id=2028. У меня устойчиво работает через 4-мм оргстекло, больше не пробовал. Когда начинал эксперименты - первую партию плат выбросил в мусорное ведро. Проблема в том, что рядом с "кнопками" нельзя размещать полигоны земли. Короче с разводкой платы есть ньюансы. А так, работает очень хорошо - рекомендую 
PS: На сайте написано, что эта микросхема - один слайдер, на самом деле это не так. Она поддерживает 16 сенсоров и ее можно сконфигурить как драйвер клавиатуры 16 кнопок, либо 8 кнопок и слайдер итд. Короче опыт есть, если заинтересовало - спрашивайте, поделюсь.
PS: На сайте написано, что эта микросхема - один слайдер, на самом деле это не так. Она поддерживает 16 сенсоров и ее можно сконфигурить как драйвер клавиатуры 16 кнопок, либо 8 кнопок и слайдер итд. Короче опыт есть, если заинтересовало - спрашивайте, поделюсь.
Все будет только лучше, в крайнем случае - хуже.
Легко. и SPI опрос - ты туда запрос по таймеру, тебе отуда значение-маска по отдельным кнопкам.frick писал(а): Какую схему подключения использовать? Какие выводы и как будут замыкаться? И может кто подскажет другое решение на QT сенсорах, на сайте atmel есть сенсоры поддерживающие 10 и более кнопок, как работать с ними?
а qt1101 просто имитируют обычную кнопку.
Пробовал и qt60168, и qt1101. Для клавиатуры к компьютеру не особо хорошо подходит.
Там расстояние до датчика, точность срабатывания и время срабатывания взаимосвязаны. Т.е. если жать через чтото толстое и более менее без ложных срабатываний, время реакции будет такое, что бегло набирать текст на ней не сможешь.
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
- Сообщения: 16
- Зарегистрирован: Вс мар 15, 2009 00:01:45
coredumped:
Можно ли сделать на этой микрухе такую схему - сенсорное кольцо (фактически слайдер по кругу), прокручивая по часовой стрелке увеличиваем громкость, против часовой - уменьшаем, одиночное касание по центру - play/pause, касания по бокам - следующий/предыдущий? Одной микрухи хватит?
И ещё можно ли прикошачить выключатель небольшой (кнопка микрик) - в качестве блокировки, для отключения этого сенсорного устройства? Хочу сделать мягкую подсветку на эти сенсорные области, и чтобы когда "блокируешь" их подсветка гасла...ну это уже детали) Главное разобраться с слайдером.
Можно ли сделать на этой микрухе такую схему - сенсорное кольцо (фактически слайдер по кругу), прокручивая по часовой стрелке увеличиваем громкость, против часовой - уменьшаем, одиночное касание по центру - play/pause, касания по бокам - следующий/предыдущий? Одной микрухи хватит?
И ещё можно ли прикошачить выключатель небольшой (кнопка микрик) - в качестве блокировки, для отключения этого сенсорного устройства? Хочу сделать мягкую подсветку на эти сенсорные области, и чтобы когда "блокируешь" их подсветка гасла...ну это уже детали) Главное разобраться с слайдером.
Я с слайдерами не экспериментировал, но в доке упоминается подобное "колесико". Там есть возможность отслеживать как касания в определенной области, так и "скольжение" . Думаю все должно получиться. Помните только о принципах разводки платы - строго по даташиту, и возле сенсоров никакой земли и постороних цепей. Насчет софта - я поступил след. образом. У микросхемки есть выход "change" - его я завел на ногу апппаратного прерывания. Как только прерывание "сработало", проверяю состояние кнопок. Можно, конечно, организовать "поллинг" по таймеру, но прерывание, имхо, более эффективно.frick писал(а):coredumped:
Можно ли сделать на этой микрухе такую схему - сенсорное кольцо (фактически слайдер по кругу), прокручивая по часовой стрелке увеличиваем громкость, против часовой - уменьшаем, одиночное касание по центру - play/pause, касания по бокам - следующий/предыдущий? Одной микрухи хватит?
И ещё можно ли прикошачить выключатель небольшой (кнопка микрик) - в качестве блокировки, для отключения этого сенсорного устройства? Хочу сделать мягкую подсветку на эти сенсорные области, и чтобы когда "блокируешь" их подсветка гасла...ну это уже детали) Главное разобраться с слайдером.
Одна микруха в состоянии обслужить 16 сенсоров. Хватит или нет - решать Вам. Слайдер или колесо скушает определенное количество сенсоров (почитайте доку) можно отдать часть, можно все, те только слайдер. Посмотрите на ихний эвалюэйшн. Покупать его не стоит, а вот доку почитать стоит. По крайней мере, технология реально работает.
Все будет только лучше, в крайнем случае - хуже.
В личку меня просили пример кода для AVR под QTouch.
Вот, держите. Все это у меня работает на mega16.
Сперва вызываем kbd_init() - запихиваем нужные значения в регистры, настраиваем прерывание итд.
Чтоб не крутить в цикле опрос регистров, вывод CHANGE AT42QT2160 подан на вход INT0 mega16. При каждом изменении в состоянии кнопок вызывается обработчик прерывания, где собственно и делается обработка. Можете не делать прерываний, а в цикле опрашивать регистр статуса - это как удобней
Библиотечку I2C можете взять любую, хоть с использованием TWI, хоть "софтверную" - дело вкуса.
Вот, держите. Все это у меня работает на mega16.
Сперва вызываем kbd_init() - запихиваем нужные значения в регистры, настраиваем прерывание итд.
Чтоб не крутить в цикле опрос регистров, вывод CHANGE AT42QT2160 подан на вход INT0 mega16. При каждом изменении в состоянии кнопок вызывается обработчик прерывания, где собственно и делается обработка. Можете не делать прерываний, а в цикле опрашивать регистр статуса - это как удобней
Библиотечку I2C можете взять любую, хоть с использованием TWI, хоть "софтверную" - дело вкуса.
Код: Выделить всё
#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "i2c_io.h"
#define I2C_QT_ADDR 0x1A
#define I2C_WRITE 0
#define I2C_READ 1
uint8_t get_qt_reg(uint8_t reg_addr)
{
uint8_t ret;
_delay_ms(1);
ret = i2c_start(I2C_QT_ADDR+I2C_WRITE); // set device address and write mode
if (ret)
{
/* failed to issue start condition, possibly no device found */
// uart_puts("I2C Read error 1\n\r");
i2c_stop();
return 0;
}
else
{
i2c_write(reg_addr); // write address
i2c_stop();
_delay_ms(1);
ret=i2c_start(I2C_QT_ADDR+I2C_READ); // set device address and read mode
if (ret)
{
/* failed to issue start condition, possibly no device found */
// uart_puts("I2C Read error 2\n\r");
i2c_stop();
return 0;
}
ret = i2c_readNak();
i2c_stop();
return ret;
}
}
void set_qt_reg(uint8_t reg_addr, uint8_t data)
{
uint8_t ret;
_delay_ms(1);
ret = i2c_start(I2C_QT_ADDR+I2C_WRITE); // set device address and write mode
if ( ret )
{
/* failed to issue start condition, possibly no device found */
// uart_puts("I2C Write error\n\r");
i2c_stop();
return;
}
else
{
/* issuing start condition ok, device accessible */
i2c_write(reg_addr); // write address // ret=0 -> Ok, ret=1 -> no ACK
_delay_ms(1);
i2c_write(data); // write freq lo byte
i2c_stop(); // set stop conditon = release bus
}
}
ISR(INT0_vect)
{
uint16_t key;
uint8_t tmphead;
cli();
get_qt_reg(2); //clear main status
key = get_qt_reg(3)<<8;
key |= get_qt_reg(4);
if(key) //key pressed
{
//put code here
}
sei();
}
/******************************************************************/
void kbd_init()
{
cli();
i2c_init();
// init QT chip
set_qt_reg(12, 1);
set_qt_reg(13, 1);
set_qt_reg(15, 20);
set_qt_reg(16, 5);
set_qt_reg(17, 3);
set_qt_reg(18, 255);
set_qt_reg(19, 25);
set_qt_reg(20, 0);
set_qt_reg(73, 0x1c); // GPIO set as output
set_qt_reg(10, 1); //send calidrate
// clear status
get_qt_reg(2);
get_qt_reg(3);
get_qt_reg(4);
get_qt_reg(5);
get_qt_reg(6);
MCUCR = _BV(ISC01); //Enable INT0 on falling edge
GICR = _BV(INT0); //Enable external interrupt INT0
sei();
}
Все будет только лучше, в крайнем случае - хуже.
- Сообщения: 7
- Зарегистрирован: Пт май 07, 2010 15:40:11
Ребят, кто подскажет. Планирую сделать клавиатуру на 12 кнопок, сенсор, на базе QT1010. По описанию всё ОК, но как они будут работать группой? Есть ли какие рекомендации по расстоянию между площадками и их расположении? Проблема именно в том чтобы заменить тактовые кнопки в уже готовом устройстве. Иначе взял бы полную микру на 16 кнопок.
Это все описано в даташите.
Достигается все подбором параметров несколькоих резисторов и конденсаторов.
Есть у меня такая плата
на ней колечко-слайдер выложено как раз из кучи сенсорных кнопок ВПРИТЫК. все нормально работает.
Достигается все подбором параметров несколькоих резисторов и конденсаторов.
Есть у меня такая плата

на ней колечко-слайдер выложено как раз из кучи сенсорных кнопок ВПРИТЫК. все нормально работает.


