Building a Stress Meter with the Galvanic Response Sensor

Theo Chemel

In this tutorial, we will build a stress meter that uses the galvanic response sensor to display the user's stress level on a dial using a mini servo.


BOM

  1. Arduino Uno R3
  2. Galvanic Response Sensor
  3. Mini Servo
  4. Breadboard
  5. DuPont connector cables


Wiring

Begin by connecting all of the components following the diagram above. Take extra care to connect the 5V and GND connectors properly.

Code


#include <Servo.h>


#define SERVO_MIN 0
#define SERVO_MAX 179
#define GALVANIC_MAX 240
#define GALVANIC_MIN 0


#define SERVO_PIN 3
#define GALVANIC_PIN A0


#define BUF_SIZE 100
long buf[BUF_SIZE];
int bufIndex;
long avg;


Servo servo;


void setup() {
  Serial.begin(9600);


  pinMode(SERVO_PIN, OUTPUT);
  pinMode(GALVANIC_PIN, INPUT);


  servo.attach(SERVO_PIN);
}


void loop() {
  int galvanicReading = analogRead(GALVANIC_PIN);


  Serial.print("galvanic = ");
  Serial.print(galvanicReading);
  
  buf[bufIndex] = galvanicReading;
  bufIndex++;
  bufIndex %= BUF_SIZE;


  avg = 0;
  for(int i = 0; i < BUF_SIZE; i++) {
    avg += buf[i];
  }
  avg /= BUF_SIZE;


  Serial.print("\t avg = ");
  Serial.println(avg);




  int servoPos = map(avg, GALVANIC_MIN, GALVANIC_MAX, SERVO_MAX, SERVO_MIN);


  servo.write(servoPos);


  delay(10);
}