Maker Pro

Build a TV Touch Remote Using Arduino

July 28, 2018 by the lonely programmer Rahul

This is a fun project. I wished I could control television using a touch remote. 

I made a touch remote using Arduino.

Things used in this project:

Hardware components

  • Arduino UNO & Genuino UNO × 1
  • IR receiver (generic) × 1
  • LED (generic) × 1
  • Resistor 100 ohm × 6
  • Jumper wires (generic) × 1


Touch Remote using Arduino

In this video, I'll show you the working of touch remote. This is a fun project. I wished I could control television using a touch remote. So I decoded my TV remote and used aluminum foil as touchpads.

Since many suggested to add the explanation, I had added a voice over. Hope you like this video. Thank you all!

the project:

More projects

Chakra Healing Harmonizer using Arduino:

Arduino Tutorial: J.A.R.V.I.S v1 | How to make a Home Automation:

Arduino Tutorial: Mini Piano:

Tamil Library for 16x2 LCD - தமிழ் எழுத்துக்கள்: 

Subscribe to YouTube

Never miss a video:

Any suggestions/ideas for new projects, do comment them below.

Thank you all! Like & subscribe for more ?

Circuit diagram

Block Diagram 

#define analogPin      0          // analog pin for measuring capacitor voltage
#define chargePin      13         // pin to charge the capacitor - connected to one end of the charging resistor
#define dischargePin   11         // pin to discharge the capacitor
#define resistorValue  10000.0F   // change this to whatever resistor value you are using
                                  // F formatter tells compliler it's a floating point value

unsigned long startTime;
unsigned long elapsedTime;
float microFarads;                // floating point variable to preserve precision, make calculations
float nanoFarads;

void setup(){
  pinMode(chargePin, OUTPUT);     // set chargePin to output
  digitalWrite(chargePin, LOW);  

  Serial.begin(9600);             // initialize serial transmission for debugging

void loop(){
  digitalWrite(chargePin, HIGH);  // set chargePin HIGH and capacitor charging
  startTime = millis();

  while(analogRead(analogPin) < 648){       // 647 is 63.2% of 1023, which corresponds to full-scale voltage 

  elapsedTime= millis() - startTime;
 // convert milliseconds to seconds ( 10^-3 ) and Farads to microFarads ( 10^6 ),  net 10^3 (1000)  
  microFarads = ((float)elapsedTime / resistorValue) * 1000;   
  Serial.print(elapsedTime);       // print the value to serial port
  Serial.print(" mS    ");         // print units and carriage return

  if (microFarads > 1){
    Serial.print((long)microFarads);       // print the value to serial port
    Serial.println(" microFarads");         // print units and carriage return
    // if value is smaller than one microFarad, convert to nanoFarads (10^-9 Farad). 
    // This is  a workaround because Serial.print will not print floats

    nanoFarads = microFarads * 1000.0;      // multiply by 1000 to convert to nanoFarads (10^-9 Farads)
    Serial.print((long)nanoFarads);         // print the value to serial port
    Serial.println(" nanoFarads");          // print units and carriage return

  /* dicharge the capacitor  */
  digitalWrite(chargePin, LOW);             // set charge pin to  LOW 
  pinMode(dischargePin, OUTPUT);            // set discharge pin to output 
  digitalWrite(dischargePin, LOW);          // set discharge pin LOW 
  while(analogRead(analogPin) > 0){         // wait until capacitor is completely discharged

  pinMode(dischargePin, INPUT);            // set discharge pin back to input


the lonely programmer Rahul

Passionate Techie ! Robotics | Electronics | Programming  - Worked with Arduino, PIC and ARM Controllers

Related Content



You May Also Like