Lie Detector and Biofeedback Arduino Based





Introduction: Lie Detector and Biofeedback Arduino Based

This tutorial will explain how to build a machine for biofeedback. But first a bit of theory.

What is biofeedback?

[Font: Wikipedia |]

Biofeedback is the process of gaining greater awareness of many physiological functions primarily using instruments that provide information on the activity of those same systems, with a goal of being able to manipulate them at will. Some of the processes that can be controlled include brainwaves, muscle tone, skin conductance, heart rate and painperception.
Biofeedback may be used to improve health, performance, and the physiological changes that often occur in conjunction with changes to thoughts, emotions, and behavior.

Step 1: List of Materials

Step 2: Mount the LCD Screen

First we begin to build the electronic circuit on breaboard. We put all the components starting from the LCD.

We pay attention to where we insert the display on the breadboard.

This kind of LCD work on 5V with 16 columns and 2 rows. You can also use this module with keypad.

Follow the image to link the 10 pin to VCC, GROUND, POTENTIOMETER and 6 Arduino pin.

When you have connected the LCD to the Arduino board try to this LCD Example sketch and see the result. Go to and download the sketch.

Step 3: Mount Sensors

Ok now you can mount the sensors. The TMP36 have 3 pin. Two for alimentation VCC and GND, and une for measurement. You can put the VCC pin and GND pin on the breadboard's VCC-GND pin. After put the measurement pin on the Arduino's A1 pin.

Step 4: GSR Sensor

After this mounting you can create a GSR sensor. You can use two copper pieces. If you live in Europe, you can use the 1 or 2 euro money like in figure.

Put the pin of the copper pieces like in figure. Use a 220k Ohm resistor between GND and A0 Arduino pin.

Step 5: Upload the Sketch

Double check that everything is ok in the electronic circuit. Check especially the pins VCC and GND. Check that they are not reversed. Take your time for this control. The risk is to burn Arduino and electronic components used. When you finish this stage you just have to upload the sketch on the Arduino board. Click the link: Go Upload!

Step 6: Operating Instructions

When away from the Arduino biofeedback appear on the screen you'll see the welcome screen. Keep your fingers between the temperature sensor TMP36 and supports the index finger and ring finger on the copper pieces. And then you can see how the device will begin to measure your vital signs like temperature and heart skin conductance.

On the screen you can read the current GSR temperature value, the maximum value GSR skin conductance and the time elapsed since the machine.

You can open the serial port of your computer and read the value on the screen. After 1 second the value are updated. You can create the report of entire measurement session. Like in photo.

Also on Arduino Biofeedback Github repository you can find a Processing sketch for use a Processing graphical interface. View the GSR view value on the X Y diagram.

2 People Made This Project!


  • Clocks Contest

    Clocks Contest
  • Casting Contest

    Casting Contest
  • Woodworking Contest

    Woodworking Contest

We have a be nice policy.
Please be positive and constructive.


1 Questions

so we have the project working but on the lcd it had the GSR which we understand, but what is the GM

GSR max value


sir can i ask what is the value of potentiometer? Thanks in advance

1 reply

The LCD contrast potentiometer is 10K

there is an error in processing sketch in the line

myPort = new Serial(this, Serial.list()[3], 9600);

the error says:


please help...

i m waiting...

2 replies

This is the number of your serial port. Try 0 or 1 or 2

i already tried that but in vain..:(

I'm using atnega 16 A for this project.. can you guide meabout the corresponding code for that..

1 reply

I tink it's the same code...

I did not check the baud rate but I am starting over from scratch this time double checking the baud...I believe the project was working fine except for the graph plotting...I was getting output values on the 16 x 2 lcd with all three sensors responding appropriately to both temperature and skin conductivity .

1 reply

This Arduino sketch print the data on serial. But you can't use this with serial plotter, but you can use serial monitor.


thank you alot for everything

I wonder what the usefulness of a MAX GSR value ?

2 replies

and i wanna ask if there is an any limti of gsr value that we can understand that the subject is lying ?
and what is the unit of gsr value is ohm or what ?

thank you

Dear, I don't know the gsr limits. But I think that the focus of the question is the rapid change of value after a lie.

I'm using a DHT 11 SENSOR, how's the code going to change for that.

2 replies

You can use the Adafruit sensor Library and DHT-11 library. Try Test Example.

Can you tell me step by to do it

I cannot get my output to the serial monitor. I copied and pasted sketch as suggested but I only see output on 16 x 2 lcd display, Can anyone help ?

1 reply

Have you settingup the serial to 9600 baud?

In that's the coding going to differ..and is there anything we can add to it..i mean..another feature...actually i wana make it my btech project

1 reply

If you want use DHT-11 you can use the Adafruit DHT Arduino Library

I mean what apart from tmp 35/36 ..