PIC16F627A Touchpad circuit

31,431

Circuit Image Circuit Image

This board layout was created using the SOIC version of a PIC16F627A without drawing the usual schematic first. Most of the part values are etched on the Layout. The SIP resistor packs I used are 10k ohm, some experimentation with this value may be useful. Three pins are provided for 5 volts, ground, and TTL serial output on a standard 3pin/0.1 inch connection. The actual data from the touch sensors is quite erratic and requires some software processing. More: Basically you create a pulse for each of the ports and read the data with the instruction following the pulse signal rise. Then read the ports the same way looking for a gap of 0.1 seconds with no data detected. This does the 'debounce'. This results in fairly clean data capture from the sensors. Mostly, this is just an example of how to make your own control panels. The system can be extended to more inputs depending on how many your micro has. This design provides a telephone style layout and is programmed to send out values in 9600 baud ascii.

The board layout described utilizes a PIC16F627A microcontroller in a Small Outline Integrated Circuit (SOIC) package, which allows for compact design while still providing essential functionalities. The layout omits a traditional schematic representation, relying instead on etched values for components directly on the board. This approach can streamline the design process but requires careful attention to ensure accuracy in component placement and values.

The SIP resistor packs, specifically rated at 10k ohms, play a critical role in interfacing with the touch sensors. These resistors can be adjusted based on experimentation to optimize performance for specific applications. The layout includes a three-pin connector that supplies 5 volts and ground, as well as a TTL serial output. This standard 3-pin/0.1 inch connection facilitates easy integration with other systems or microcontrollers.

Data acquisition from the touch sensors is managed through a pulse generation mechanism. Each port is pulsed sequentially, and data is captured immediately following the rising edge of the pulse signal. This timing is crucial as it allows for accurate readings of sensor states. To mitigate the erratic nature of the sensor outputs, a debounce method is implemented, which involves monitoring the ports for a 0.1-second interval of inactivity. This technique effectively filters out noise and transient signals, resulting in cleaner data capture.

The design is flexible and can be scaled to accommodate additional inputs, contingent upon the available I/O ports on the microcontroller. This adaptability makes it suitable for various applications, including custom control panels. The system is configured to transmit data at a baud rate of 9600 in ASCII format, ensuring compatibility with a wide range of serial communication devices and software. Overall, this layout exemplifies an efficient design for a touch sensor interface while providing a foundation for further development and customization.This board layout was created using the SOIC version of a PIC16F627A without drawing the usual schematic first. Most of the part values are etched on the Layout. The SIP resistor packs I used are 10k ohm, some experimentation with this value may be useful. Three pins are provided for 5 volts, ground, and TTL serial output on a standard 3pin/0.1 inch connection.

The actual data from the touch sensors is quite erratic and requires some software processing. Basically you create a pulse for each of the ports and read the data with the instruction following the pulse signlal rise. Then read the ports the same way looking for a gap of 0.1 seconds with no data detected. This does the 'debounce'. This results in fairly clean data capture from the sensors. Mostly, this is just an example of how to make your own control panels. The system can be extended to more inputs depending on how many your micro has. This design provides a telephone style layout and is programmed to send out values in 9600 baud ascii.

🔗 External reference