Arduino Projekte

Baue einen Lügendetektor mit dem Arduino Uno

Pinocchio Quadratisch

Du bist dir nicht ganz sicher, ob du gerade angeflunkert wirst? Dann wird es Zeit für deinen eigenen kleinen Lügendetektor. Deine Testperson muss hierfür nur zwei Kabel in die Hand nehmen und deine Fragen beantworten – und schon weißt du, ob sie lügt oder nicht.

Mit diesem Projekt wirst du natürlich nicht wirklich herausfinden, ob du angelogen wirst. Schließlich sind auch “professionelle” Lügendetektoren nicht fähig, die Wahrheit zuverlässig ans Tageslicht zu bringen. Aber für einen kleinen Spaß unter Freunden reicht es allemal! 🙂

Anfänger

1 Stunde

ca. 5 € plus ggfs. Kosten für den Arduino Uno

Für dieses Projekt benötigst du (Mengen s. Beschreibung):

ARDUINO UNO REV 3 [A000066]
Arduino Uno ist weltweit die am häufigsten verwendete und dokumentierte Platine
20,90 EUR
10 Stück Metallschichtwiderstände 1/4 Watt - 220 Ohm
10 Stück Metallschichtwiderstände 1/4 Watt - 220 Ohm; Dauerspannung max.: 250 V |...
1,73 EUR
10 Stück Metallschichtwiderstände 1/4 Watt - 10 kOhm
10 Stück Metallschichtwiderstände 1/4 Watt - 10 kOhm; Dauerspannung max.: 250 V |...
1,68 EUR
KINGSO 500 Stück 5mm LED Leuchtdioden Dioden set Elektronik komponenten rund 5 Farben(100er Jede Farbe)
KINGSO LEDs ist Energieeffizient & hochwertige, Bitte seien Sie versichert zu kaufen.
AZDelivery Breadboard Kit - 3x Jumper Wire m2m/f2m/f2f + 3er Set MB102 Breadbord inklusive E-Book!
✔️ Steckbrett für schnellen Aufbau elektronischer Schaltungen mit 830 Kontakten.;...
9,99 EUR

So funktioniert der Lügendetektor

Dieses Projekt ist nicht kompliziert: In einen Stromkreis bringst du 3 LEDs unter, die dir anzeigen, wie “nah an der Wahrheit” eine Antwort ist. Der zweite Stromkreis wird geschlossen, indem deine Testperson zwei Kabel in die Hand nimmt.

Je nachdem, wie sehr die Person an den Fingern schwitzt, desto geringer ist ihr Hautwiderstand. Diese kleinen Unterschiede kannst du messen und in deinem Seriellen Plotter nachverfolgen. Nehmen wir an, die Testperson fängt beim Lügen an zu schwitzen: Der Widerstand der Haut verringert sich und sie wird leitfähiger – der Messwert steigt. Bleiben die Finger trocken, so ist der fließende Strom einem größeren Widerstand ausgesetzt – und der Messwert bleibt niedrig.

Der Aufbau

So ungefähr sollte das fertige Projekt aussehen:

Verbinde die Kathoden (kurzes Bein) der drei LEDs mit der “Minusleiste” deines Breadboards, also mit GND. Anschließend verbindest du die Anoden (langes Bein) – mit dazwischengeschalteten 220Ω Widerständen – an die Digitalpins 2 bis 4: Grün an 2, Gelb an 3 und Rot an 4.

Interessant ist der andere Stromkreis, den deine Testperson mit ihren Fingern schließen muss. Hier steckst du ein Kabel (im Bild das rote) an 5V. Das andere kommt in den Analogpin A0 (Violett). Dann lässt du einen Pin an deinem Breadboard frei und steckst in den nächsten Pin ein weiteres Kabel (Oben ebenfalls violett). In den freien Pin kommt ein 10kΩ Widerstand, den du mit der GND verbindest (im Bild das schwarze Kabel).

Letzteres ist ein sogenannter Pull-down-Widerstand. Dieser sorgt dafür, dass dein Arduino am Pin A0 solange LOW (also Null) ausliest, bis der Stromkreis geschlossen ist. Würdest du keinen Pull-down-Widerstand einbauen, würden alle möglichen Werte ausgelesen werden. Sobald deine Testperson den Stromkreis schließt, beginnt dann die Messung.

Der Code für deinen Lügendetektor

In deinem Sketch erwarten dich keine großen Überraschungen. In der Funktion void setup() startest du zuerst deinen Seriellen Plotter und legst die pinModes der Pins für die LEDs fest:

void setup()
{
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
 
}

Anschließend kommen im Loop einige if/else-Abfragen:

void loop()
{
  if (analogRead(A0) > 12)
  {
    digitalWrite(4, HIGH);
  }
  else
  {
    digitalWrite(4, LOW);
  }
  if (analogRead(A0) > 4)
  {
    digitalWrite(2, HIGH);
  }
  else
  {
    digitalWrite(2, LOW);
  }
  if (analogRead(A0) > 9)
  {
    digitalWrite(3, HIGH);
  }
  else
  {
    digitalWrite(3, LOW);
  }

  Serial.println(analogRead(A0));
  delay(20);
}

Hier steuerst du deine LEDs: Ist z.B. der gemessen Wert größer als 12, dann geht die rote LED an – andernfalls bleibt sie aus. Analog dazu die anderen LEDs bei den Werten 9 und 4. Beachte bitte: Eventuell musst du mit diesen Werten in deinem Sketch etwas experimentieren, damit die LEDs sinnvoll aufleuchten.

In den letzten zwei Zeilen gibst du über Serial.println() den gemessenen Wert im Plotter aus. Und der abschließende Delay sorgt dafür, dass alle 20 Millisekunden eine Messung durchgeführt wird.

Und das war es auch schon! Suche dir eine geeignete Testperson und starte dein Verhör! 🙂 Hier der gesamte Sketch zum Herauskopieren:

void setup()
{
  Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
 
}

void loop()
{
  if (analogRead(A0) > 12)
  {
    digitalWrite(4, HIGH);
  }
  else
  {
    digitalWrite(4, LOW);
  }
  if (analogRead(A0) > 4)
  {
    digitalWrite(2, HIGH);
  }
  else
  {
    digitalWrite(2, LOW);
  }
  if (analogRead(A0) > 9)
  {
    digitalWrite(3, HIGH);
  }
  else
  {
    digitalWrite(3, LOW);
  }

  Serial.println(analogRead(A0));
  delay(20);
}

Wie geht es weiter?

Du kannst dein Projekt leicht erweitern: Verwende statt den LEDs z.B. ein TFT-Display, das dir die Messwerte ausgibt. Oder du verwendest einen Servo-Motor und eine Schablone, um dir mit einem Zeiger Wahrheit oder Lüge anzeigen zu lassen.

Letzte Aktualisierung am 30.10.2020 / Affiliate Links / Bilder von der Amazon Product Advertising API

Vielleicht interessiert dich das auch

Kommentare sind nicht verfügbar