Proiectul „Arduino Lie Detector” folosește un Arduino Uno R3 pentru a integra și demonstra măsurători multiprotocol (OneWire, I2C, ADC) și interfațare hardware (LED, buzzer, LCD) într-un sistem care detectează modificările electrodermice (EDA), ritmul cardiac și temperatura. La apăsarea butonului sau automat la pornire, dispozitivul realizează o fază de stabilizare, apoi măsoară răspunsul la întrebări și afișează verdictul („FALS”/„ADEVĂRAT”) pe un display LCD I2C, cu semnal sonor și feedback luminos.
Dispozitivul include:
Arduino Uno R3 (ATmega328P) ca unitate de control
Senzor EDA (fybrid foil) pe pin A1, cu rezistor de pull-down 2 kΩ către GND
Modul puls KY-039 pe pin A3, calibrare 5 s pentru prag hardware
Senzor DS18B20 pe magistrala OneWire (pin D2)
Display LCD I2C (address 0x27) pe SDA (A4) și SCL (A5)
LED-uri roșu/verde pe D8/D9 cu rezistențe 220 Ω
Buzzer pasiv pe D6
Dispozitivul rulează o mașină de stări: calibrare puls, stabilizare EDA, așteptare răspuns, verdict. În paralel, transmite date de temperatură (°C), BPM și EDA raw spre Serial Plotter.
Măsurarea EDA (Electrodermal Activity) prin doi electrozi pe degete (analog A1)
Măsurarea pulsului cu modul KY-039 (analog A3 + calibrare automată)
Măsurarea temperaturii cu DS18B20 (OneWire, pin D2)
Afișaj verdict și interfață pe LCD I2C 16×2 (pini A4=SDA, A5=SCL)
Feedback vizual prin LED roșu și verde (pini D8, D9)
Feedback audio prin buzzer pasiv (pin D6), ton lung pentru „FALS” și trei bipe pentru „ADEVĂRAT”
Vizualizare grafică a temperaturii, pulsului (BPM) și EDA în Serial Plotter la 500 ms interval
Componente și legături
EDA electrode (2× folie aluminiu)
A1
Măsurare electrodermală (include 2 kΩ la GND)
= KY-039 AO =
A3
Semnal analogic pentru puls
KY-039 DO (opțional)
D2
Semnal digital prag (calibrare externă)
= DS18B20 =
D2
OneWire temperatură
LCD I2C
A4 (SDA), A5(SCL)
Afișaj verdict
LED roșu
D8
Feedback minciună (digital)
LED verde
D9
Feedback adevărat (digital)
Buzzer pasiv
D6
Feedback audio
GND, 5 V
GND, 5 V
Alimentare și referință
Protocoale utilizate
ADC: EDA și puls (A1, A3), conversie 10 biți
OneWire: DS18B20 pe D2
I2C: LCD pe A4/A5
GPIO: LED-uri și buzzer
Bill of Materials (BOM)
Componentă
Tip
Pin Arduino
Cantitate
Arduino Uno R3
MCU
-
1
EDA electrodes (folie)
Electrod analogic
A1
2
KY-039
Senzor puls analog
A3
1
DS18B20
Senzor temperatură
D2
1
LCD I2C 16×2
Display
A4/A5 (I2C)
1
LED 5 mm roșu/verde
Indicator vizual
D8, D9
1/1
Rezistențe 220 Ω
Limitator LED
-
2
Rezistor 2 kΩ
Pull-down EDA
-
1
Buzzer pasiv
Audio
D6
1
Fire Dupont jumper
Conexiuni
-
câte 1
ADC: EDA și puls (A1, A3), conversie 10 biți
OneWire: DS18B20 pe D2
I2C: LCD pe A4/A5
GPIO: LED-uri și buzzer
Mașina de stări
PULSE_CAL: calibrare 5 s senzor puls (min/max) → prag = media
EDA_STAB: stabilizare 10 s măsurare EDA base
EDA_RESP: așteptare 10 s răspuns, calcul Δ EDA și verdict
DONE: verdict afișat pe LCD, LED, buzzer
Bucla principală
Serial Plotter la 500 ms: Serial.println(tempC, “\t”, lastBPM, “\t”, edaRaw)
Detecție puls: eșantionare 100 Hz, rising edge peste prag și now - lastBeat >= 300 ms → beatCount++
Calcule BPM la fiecare 15 s: BPM = beatCount * 60000 / 15000
Funcții și variabile cheie
minVal, maxVal, threshold pentru senzor puls
edaBase pentru EDA
lastState, lastBeatTime, beatCount pentru puls
Calibrare automată a senzorului puls
Măsurători EDA și BPM integrate
Verdict analogic: „FALS” sau „ADEVĂRAT” cu LED și sunet
Afișare verdict pe LCD I2C
Vizualizare grafică în Serial Plotter
Proiectul demonstrează integrarea senzorilor electrodermal, puls, temperatură și a interfețelor I2C, OneWire și ADC pe Arduino Uno R3, oferind un sistem funțional de detecție a stărilor emoționale. Poate fi extins cu salvare de date pe card SD sau transmitere wireless.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Resurse Hardware
Arduino Uno R3 (ATmega328P) – pagina oficială Arduino
KY-039 Heart Rate Sensor Module
DS18B20 Digital Temperature Sensor
Modul LCD I²C (HD44780/PCD8544)
Rezistor 2 kΩ, rezistențe 220 Ω
Resurse Software
Arduino IDE – mediu de dezvoltare oficial Arduino
LiquidCrystal_I2C – librărie pentru LCD I²C
OneWire & DallasTemperature – librării pentru DS18B20
Tone, noTone, Serial – funcții din Arduino Core
Exemple Serial Plotter – documentație Arduino pentru afișare grafică
Alte referințe
Electrodermal Activity (GSR) – Wikipedia
Polygraph – Wikipedia
Piezo Buzzer Connection – tutoriale online