Da wir nur das Arduino haben ohne der RBG-Led, wurde dieser Teil im Code entfernt
int mittelwert = 10;
int counter = 0;
int kalibriere(int sekunden) { // Wir kalibrieren die Messung, damit wir die
// Veränderungen der Leitfähigkeit gut sehen
// können, denn darauf kommt es ja an - auf die
// Veränderungen
int messungen_pro_sekunde = 10;
int num_messungen = messungen_pro_sekunde * sekunden;
double sum_werte = 0;
for (int i = 0; i < num_messungen; ++i) {
// set_pixel(i % 2);
sum_werte += analogRead(A1);
delay(int(1000 / messungen_pro_sekunde));
}
return int(sum_werte / num_messungen);
}
void setup() {
pinMode(A1, INPUT);
Serial.begin(115200);
Serial.println("Kalibriere");
mittelwert = kalibriere(5);
}
void loop() {
float reading = analogRead(A1) - mittelwert;
reading = (5. * reading) / 1.023;
if (counter % 10 == 0) {
Serial.print(reading);
Serial.println(" mV");
}
counter++;
delay(10);
}
Nur sieht das Ergebnis mehr nach einem EKG aus als nach einer schönen Messkurve an der man "Lügen" erkennen könnte
Selbst wenn pinMode(A1, INPUT) auf pinMode(A1, INPUT_PULLUP) gesetzt wird
Ich habe den Code nur überflogen und das Video nicht ganz gesehen. Bei einer Zigarette fiel mir aber ein, dass Du einen Analogpin mit Dingen initialisierst, die man sonst mit Digitalpins macht. Ich kenne mich damit bislang nicht aus, aber ich vermute, dass sich der Pin dadurch nicht wie ein Analog- sondern wie ein Digitalpin verhält. Lass Dir den gelesenen Wert mal auf der seriellen Schnittstelle ausgeben oder benutze den „seriellen Plotter“ (in der Arduino-IDE im Werkzeug-Menü).
Schaue mal den Beitrag #3 nochmal an. Da wurde darauf hingewiesen dass du die Werte auf A1 ausliest, aber auf A0 deinen Draht hast. Das kann eigentlich nicht funktionieren. Entweder A0 Auslesen nicht A1, oder dn Draht auf A1 stecken.
stimmt. war mein Fehler - habe es zuerst am A0 gemacht (war auch im Cocde auf A0) -- habe es danach mit A1 probiert obwohl es keinen Unterschied geben sollte
Um es richtigzustellen - Draht wird immer an der PIN anghängt welche im Code angesteuert wird.
Es gibt ja ein Standard-Bespiel in der Software - da wird genau dasselbe gemacht, jedoch ohne ein "Kalibrierung" vorzunehmen.
/*
ReadAnalogVoltage
Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*/
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}
Seufz:
Mir ist aber aufgefallen, dass selbst wenn die Drähte nicht berührt werden, irgendetwas gemessen wird.
Wenn ich den Draht vom analogen Eingang abstecke ist dann ruhe im Haus - ansonsten scheint der Draht irgendwelche Signale als Antenne rein zubekommen
Von diesem Effekt kann ich ein Lied singen ...
Ich hatte mal die Idee, ein super-einfaches Oszi zu bauen. Theoretisch war das eine feine Sache. Blöderweise hatte ich jedes Mal schon dann „Signale“, obwohl die Tastköpfe noch nichts zu tasten hatten. Schon Handbewegungen reichten aus, um irgendwas „zu empfangen“ oder den Empfang zu verändern. Jetzt schlummert das halbfertige Minimal-Oszi seit ein paar Monaten in der „zu erledigen“-Kiste.