Hallöchen liebes Forum!
Ich hab hier einige Verständnisprobleme, ich hoffe ihr könnt mir helfen.
Ich habe folgende Schaltung versucht aufzubauen:
https://simple-circuit.com/arduino-auto-ranging-ohmmeter-lcd/
(Hier wurde dieselbe Schaltung auch schonmal besprochen: https://forum.arduino.cc/t/auto-ranging-ohmmeter-does-not-read-150k-ohm-solved/880215/17)
Ich habe mich rangesetzt und die Schaltung etwas modifiziert:
Der Code ist folgender:
Ohmmeter_multirangeOhm_simple_circuit.ino (4.9 KB)
Kann mir jemand folgende Code-Zeilen erklären? Ich bin da leider ein Noob...
if(volt_image >= 550 && ch_number < 4) {
ch_number++;
ch_select(ch_number);
delay(50);
return;
}
if(volt_image <= 90 && ch_number > 0) {
ch_number--;
ch_select(ch_number);
delay(50);
return;
}
Was genau macht er da, wenn der Wert von A0 größer gleich 550 und "Channel Number" kleiner als 4 ist, soll er was genau machen...? Zählt er da irgendwas hoch und runter?
if(value < 1000.0)
sprintf(_buffer, "%03u.%1u Ohm ", (uint16_t)value, (uint16_t)(value*10)%10);
else if(value < 10000.0)
sprintf(_buffer, "%1u.%03u kOhm", (uint16_t)(value/1000), (uint16_t)value%1000);
else if(value < 100000.0)
sprintf(_buffer, "%02u.%02u kOhm", (uint16_t)(value/1000), (uint16_t)(value/10)%100);
else if(value < 1000000.0)
sprintf(_buffer, "%03u.%1u kOhm", (uint16_t)(value/1000), (uint16_t)(value/100)%10);
else
sprintf(_buffer, "%1u.%03u MOhm", (uint16_t)(value/1000000), (uint16_t)(value/1000)%1000);
Was genau bedeutet jeweils der Code hinter sprintf??
Mein weiteres Problem ist nämlich nun, dass, wenn ich 1k Ohm und 100 Ohm bspw. messe, zeigt er mir Quatsch an (Ich habe den Code etwas modifiziert und lasse mir zwischendurch Werte von A0 (value_image), A1 (value_image1), Widerstandswerte an A0 (value) und A1 (value1) anzeigen):
Bei 1kOhm (zeigt er mir 159,69 kOhm an):
19:40:53.420 -> A0: 527
19:40:53.460 ->
19:40:53.460 -> Value: 159693.73
19:40:53.460 ->
19:40:53.460 -> A1: 531
19:40:53.460 ->
19:40:53.460 -> Value1: 162214.01
19:40:53.460 ->
19:40:53.460 -> A0: 527
19:40:53.460 ->
19:40:53.460 -> Value: 159693.73
19:40:53.460 ->
19:40:53.460 -> A1: 531
19:40:53.460 ->
19:40:53.460 -> Value1: 162214.01
19:40:53.460 ->
19:40:53.460 -> Buffer: 159.69 kOhm
19:40:53.460 ->
19:40:53.460 -> 159.69 kOhm
Bei 100 Ohm (zeigt mir 15,92 kOhm an):
19:41:15.493 -> A0: 98
19:41:15.493 ->
19:41:15.493 -> Value: 15920.71
19:41:15.493 ->
19:41:15.493 -> A1: 102
19:41:15.493 ->
19:41:15.493 -> Value1: 16642.50
19:41:15.493 ->
19:41:15.493 -> Buffer: 15.920 kOhm
19:41:15.493 ->
19:41:15.493 -> 15.920 kOhm
Wenn nichts angesteckt wird, zeigt er richtig an:
19:41:05.466 -> Over Load
19:41:05.466 ->
Könnt ihr mir bei den Fehlern weiterhelfen??
schöne Grüße
Matthias


