If you need to add user input without using a button, then a capacitive touch interface might be the answer. The AT42QT1010 Capacitive Touch Breakout offers a single capacitive touch button with easy-to-use digital I/O pins.
The AT42QT1010 is a dedicated, single-button capacitive sense chip. The chip handles monitoring a conductive area for touch. As long as a touch (e.g. from a finger) is detected, the AT42QT1010 keeps the output line high. Otherwise, the line is kept low. You just need to provide a power source (1.8V - 5V) and ground for the AT42QT1010 to work. SparkFun's breakout board contains an on-board electrode capable of detecting touches. Additionally, a PAD pin is available if you would like to create your own external electrode.
This tutorial will show you how to connect the AT42QT1010 Breakout Board to an Arduino along with some example code to read the board's output. Additionally, alternative ways to use the board will be shown, such as mounting it to an acrylic panel and creating your own capacitive sensing pad.
If we look at the front of the board, we see a large, circular pad (the "electrode") and several pins. The on-board electrode will detect touches when pressed with a finger as long as the board is powered.
GND should be connected to the ground of the host circuit.
OUT is the output of the AT42QT1010. HIGH on touch, LOW otherwise.
VDD is the power supply for the AT42QT1010 and needs to be connected to a voltage between 1.8V - 5V.
LED controls the operation of the on-board LED. By default, it is connected to the OUT pin. If you de-solder the "LED Enable" jumper on the back side, you can independently control the LED.
PAD is located in the upper-left corner and allows you to connect to an external electrode. Note that there is a small surface mount pad on the back side by the PAD pin hole. If you want to mount the board flush, you can solder a wire directly to the surface mount pad.
Take a look at the back side of the board.
The AT42QT1010 chip is located on the right side of the board. It uses a resistor and a capacitor network to adjust the sensitivity of the electrode. High frequency pulses are sent to the pad. When a fleshy object (such as a finger) approaches the pad, it acts like a very small capacitor and changes the shape of the pulses. When the AT42QT1010 detects these slight changes, it raises the OUT line to HIGH, indicating a touch is present. Once the pulses return to normal (i.e. the fleshy object is moved away from the pad), the AT42QT1010 drives the OUT line LOW.
The output from the AT42QT1010 goes directly to the OUT pin on the board as well as to the transistor (left side), which operates the LED (center of board). By default, the OUT line and LED lines are connected, which means that on a touch, the on-board LED lights up. You can disconnect the LED by de-soldering the jumper labeled "LED Enable." This will cause the LED to no longer light up on a touch, but you can still drive the LED using the LED pin on the board.
On the right side of the board, you will also notice a jumper labeled "Mode" with "L" and "F" markers. By default, the center pad and the "F" pad are connected, which puts the AT42QT1010 in "Fast" mode. In Fast mode, the chip is more responsive to touch events but draws 200µA - 750µA in normal operation. If you de-solder this jumper and connect the center pad to the "L" pad, the AT42QT1010 will be in "Low Power" mode. In this mode, the chip is slightly less responsive to events but only uses 15µA - 75µA.
If you are not planning to mount the board flush to a panel, you can solder either wires or break away headers to the 4 header holes on the board.
On the other hand, if you wish to mount the AT42QT1010 to a panel, you can solder a 4-pin male header to the SMD pads.
For an Arduino, make the following connections with jumper wires:
(AT42QT1010 → Arduino)
One advantage of capacitive touch boards is their ability to be mounted to panels and detect touch through thin plastic, cardboard, etc. Using a drill or laser cutter, cut four 0.125 inch holes in the same pattern as the mounting holes on the breakout board.
Attach the board to the panel using #4-40 screws and #4-40 nuts.
You can create your own electrode by using foil, copper tape, or any other conductive material. Cut or shape the electrode and attach a wire between the electrode and the PAD pin on the AT42QT1010 breakout board. The electrode can be almost any shape and size.
Open the Arduino program and paste the following code into the sketch:
language:c
/*
12-23-2013
SparkFun Electronics 2013
Shawn Hymel
This code is public domain but you buy me a beer if you use this
and we meet someday (Beerware license).
Description:
This sketch shows how to use the SparkFun AT42QT1010 Breakout
Board. If you touch the Capacitive Touch area on the breakout
board, the LED attached to the Arduino will light up (in addition
to the LED on the AT42QT1010 breakout board).
Simply connect power and ground to the breakout board,
and the AT42QT1010 handles all the capacitive touch functions.
By default, the board will light up the green LED when the pad
is touched. A wire may also be connected from OUT on the
breakout board to a digital input pin on an Arduino. This signal
is normally LOW but goes HIGH on a touch detection.
The "LED Enable" solder jumper may be de-soldered in order to
control the LED directly from the LED pin. This is useful if you
want to light up a button that the user needs to push.
Hardware connections:
Uno Pin AT42QT1010 Board Function
+5V VDD Power supply
GND GND Ground
2 OUT Capacitive touch state output
*/
// Constants
const int TOUCH_BUTTON_PIN = 2; // Input pin for touch state
const int LED_PIN = 13; // Pin number for LED
// Global Variables
int buttonState = 0; // Variable for reading button
void setup() {
// Configure button pin as input
pinMode(TOUCH_BUTTON_PIN, INPUT);
// Configure LED pin as output
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// Read the state of the capacitive touch board
buttonState = digitalRead(TOUCH_BUTTON_PIN);
// If a touch is detected, turn on the LED
if (buttonState == HIGH) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
Plug in the Arduino and upload the code. You should see the LED on the AT42QT1010 board and the LED on the Arduino light up when you touch the electrode.
The AT42QT1010 is a great way to add a single capacitive touch button to a project. For example:
If you need more than one capacitive touch button in your project, you might want to look at some other products:
learn.sparkfun.com | CC BY-SA 3.0 | SparkFun Electronics | Niwot, Colorado