Featuring an advanced integrated touch sensor IC placed in a robust housing, able to sense the touch even when the hands are wet or when certain types of gloves are used, Button ALARM click represents an ideal solution for the development of interfaces for public gaming consoles and slot machines, media players, interfaces for various home appliances and other consumer equipment, and similar applications that can benefit from using a durable touch sensor in an attractive enclosure.
How does it work?
Button ALARM click is equipped with the CTHS15CIC05ALARM , a capacitive touch sensor display, by VCC (Visual Communications Company). This sensor is an all-in-one solution, an providing a capacitive touch sensing in an appealing housing, with the backlit power symbol icon on the top. There is a minimum number of pins used on this device: only four pins are exposed to the user. Besides the power supply pins (VCC and GND), two more pins are used. The touch detection is indicated by a HIGH logic level on the OUT pin of the CTHS15CIC05ALARM sensor, while the IN pin is used as the power supply for two internal LEDs, which are connected in the common cathode configuration. The forward voltage of the LEDs is 3.2V typically. The OUT pin of the sensor is routed to the INT pin of the mikroBUS™, while the IN pin of the sensor is routed to the PWM pin of the mikroBUS™.
The alarm symbol icon on the top of the touch sensor is visible even when the backlight is off, thanks to the LEXAN™ polycarbonate film with an inverse print of the icon, placed on a top of the sensor. When the internal LEDs are turned ON, the light will pass through the translucent power symbol icon, resulting in a uniformly lit power symbol icon. An interesting lighting effect can be designed when touched, by applying a PWM signal to the IN pin.
The sensor IC, along with the sensing pad and two integrated LEDs, is enclosed in a small square casing, measuring 15mm by 15mm by 11mm. It forms a compact and robust touch button, which has many advantages over a mechanical button: it is not subject to wear since there are no moving parts, it does not exhibit any bouncing or chattering effect, it is durable and resistant to weather elements, etc. However, it can't be used to close an electrical circuit, only to produce a logic signal, which is translated to appropriate action by the host MCU.
The sensor can be operated even with wet hands or while using certain types of gloves. The touch sensor can also be placed behind a clear glass or a plastic layer such as polycarbonate or acrylic, up to 3mm thick. Although the sensor will perform self-calibration after being powered, it is best to test its functionality in these cases, if the position is going to be fixed.
Specifications
Type |
Capacitive |
Applications |
An ideal solution for the development of various public gaming console and slot machine interfaces, media players, appliances and various consumer equipment interface applications, and similar applications that can benefit from using a durable touch sensor in an attractive housing |
On-board modules |
CTHS15CIC05ALARM, a capacitive touch sensor display, by VCC (Visual Communications Company)
|
Key Features |
An advanced integrated touch sensor IC placed in a robust and visually appealing housing with the backlit alarm symbol icon, able to sense the touch even when the hands are wet or when certain types of gloves are used. It can sense touch even behind a plastic layer or thin glass
|
Interface |
GPIO,PWM |
Click board size |
M (42.9 x 25.4 mm) |
Input Voltage |
3.3V |
Pinout diagram
This table shows how the pinout on Button ALARM click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes |
Pin |
|
Pin |
Notes |
---|
|
NC |
1 |
AN |
PWM |
16 |
PWM |
LED Anodes |
|
NC |
2 |
RST |
INT |
15 |
INT |
Touch Detection |
|
NC |
3 |
CS |
RX |
14 |
NC |
|
|
NC |
4 |
SCK |
TX |
13 |
NC |
|
|
NC |
5 |
MISO |
SCL |
12 |
NC |
|
|
NC |
6 |
MOSI |
SDA |
11 |
NC |
|
Power Supply |
3.3V |
7 |
3.3V |
5V |
10 |
NC |
|
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
Onboard settings and indicators
Label |
Name |
Default |
Description |
---|
LD1 |
PWR |
- |
Power LED Indicator |
Software Support
We provide a library for the Button ALARM Click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library covers all the necessary functions to control Button ALARM Click board. The library contains a function that checks and returns the state of the alarm button - whether it is pressed or not. Using the PWM function, you can adjust the LED light of the alarm button.
Key functions:
uint8_t buttonalarm_getButtonState()
- Gets state of the alarm button function.
Examples description
The application is composed of three sections :
- System Initialization - Initializes GPIO and LOG structures, set INT pin as input and start write log.
- Application Initialization - Initialization driver enable's - GPIO, PWM initialization set PWM duty cycle and PWM frequency, start PWM, also to write log.
- Application Task - (code snippet) This is a example which demonstrates the use of Button ALARM Click board. This example shows the automatic control of the alarm button. When we press and hold button, button stops blinking and start dimming. Results are being sent to the Usart Terminal where you can track their changes. All data logs on usb uart for aproximetly every 1 sec when the data value changes.
void applicationTask()
{
buttonState = buttonalarm_getButtonState();
cnt = 0;
while ( ( cnt < 200 ) && ( buttonState == _BUTTONALARM_BUTTON_STATE_OFF ) )
{
buttonState = buttonalarm_getButtonState();
buttonalarm_pwmSetDuty( _BUTTONALARM_DUTY_CYCLE_ON );
cnt++;
Delay_ms( 1 );
}
cnt = 0;
while ( ( cnt < 200 ) && ( buttonState == _BUTTONALARM_BUTTON_STATE_OFF ) )
{
buttonState = buttonalarm_getButtonState();
buttonalarm_pwmSetDuty( _BUTTONALARM_DUTY_CYCLE_OFF );
cnt++;
Delay_ms( 1 );
}
if( buttonState )
{
mikrobus_logWrite(" Button is pressed ", _LOG_LINE);
while ( dutyCycle < _BUTTONALARM_DUTY_CYCLE_ON )
{
dutyCycle += 200;
buttonalarm_pwmSetDuty( dutyCycle );
if ( dutyCycle > _BUTTONALARM_DUTY_CYCLE_ON )
{
dutyCycle = _BUTTONALARM_DUTY_CYCLE_OFF;
buttonalarm_pwmSetDuty( dutyCycle );
Delay_ms( 100 );
}
Delay_ms( 50 );
}
dutyCycle = _BUTTONALARM_DUTY_CYCLE_OFF;
mikrobus_logWrite( "---------------------", _LOG_LINE );
}
}
Additional Functions :
uint32_t buttonalarm_pwmInit( uint16_t freq )
Initializes the Timer module in PWM mode.
void buttonalarm_pwmSetDuty( uint16_t duty )
The function changes PWM duty ratio.
void buttonalarm_pwmStart()
Starts appropriate PWM module.
void buttonalarm_pwmStop()
Stops appropriate PWM module.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This Click board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.
Resources
Downloads