Anfängerprobleme: ACS712 komische Werte, keine Reaktion

Hallo,

ich bin beim Thema Arduino totaler Neuling, ist quasi mein zweiter Tag. Von Elektronik habe ich aktuell noch recht begrenzte Ahnung. In der Programmierung etwas mehr.

Ich habe einen Arduino Uno und einen (bzw. mehrere) ACS712. Mein Etappenziel ist es, dass ich den Sensor anschließe und wenn der Verbraucher am Sensor eingeschaltet wird, sehe ich im Seriellen Monitor, dass sich die Werte ändern. Die Genauigkeit, Richtigkeit der Werte ist mir erstmal egal.

In der Theorie schien es recht einfach:

  • Sensor mit Arduino verbinden
  • Lampe mit Sensor verbinden (1. Phase)
  • Mini-Basis-Sketch draufladen, der mir einfach nur die Rohdaten des Sensors ausgibt, damit ich sehe, dass etwas passiert.
  • freuen! :smiley:

Leider scheitert es daran, dass die Ausgabe des Sensors nicht zeigt was ich sehen will.

Das ist der (sehr simple) Aufbau:

Und das der (sehr simple) Sketch

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

void loop() {
  Serial.println(analogRead(A0));
  delay(2000);        
}

Als Ausgabe auf dem seriellen Monitor erhalte ich das:

17:32:18.291 -> 516
17:32:20.323 -> 509
17:32:22.305 -> 513
17:32:24.288 -> 512
17:32:26.333 -> 511
17:32:28.325 -> 514
17:32:30.306 -> 506
17:32:32.290 -> 514
17:32:34.323 -> 516
17:32:36.316 -> 514
17:32:38.308 -> 513

Dabei ist vollkommen egal, ob ein Verbraucher am Sensor angeschlossen ist und ob dieser eingeschaltet ist oder nicht. Die Werte verändern sich nicht.

Einzige Veränderung ergibt sich, wenn ich das Datenkabel aus A0 ziehe, dann sinken die Werte um etwa 100 auf Werte um die 400. Sonst kann ich dem Sensor keine anderen Daten entlocken.

Wie gesagt, ich brauche erst einmal keine konkreten Werte. Aber meine Vorstellung war, dass wenn ich den Verbraucher einschalte, dass sich dann die Werte des Sensors deutlich verändern.

Was mache ich falsch? Wo liegt der (Denk-) Fehler?

Freue mich über Ideen und Vorschläge. Danke!

Warum nimmst du keine Lib dafür so ist das nicht, es muss noch umgerechnet werden was für ACS verwendet wird, und ja das kann man unterwegs machen, das Datenblatt mall lesen.
So neben bei Wolle hat das sehr schon beschrieben :wink:

Hey fony, vielen Dank für die schnelle Antwort. Bei der Umrechnung werden doch eigentlich auch nur die Rohwerte umgerechnet. Das heißt, wenn die Rohdaten sich nicht ändern, werden sich auch die umgerechneten Werte nicht ändern?!

Davon aber abgesehen, habe ich es auch schon mit Bibliotheken (ACS712) und einigen wesentlich umfangreicheren Sketches von diversen Anleitungen ausprobiert. Es werden immer Werte im seriellen Monitor angezeigt, aber sie ändern sich nicht, wenn ich den angeschlossenen Verbraucher einschalte.

Jetzt kommt die frage welcher ACS? was ist angeschlossen ?
Je nach ACS wird fast nichts angezeigt wenn der Strom zu niedrig ist.
Es gibt 5A, 20A und 30A ACS.

Das "Quick and Dirty" - Sketch von "Wolle" habe ich auch schon probiert. Mit dem selben Resultat.

Zu deiner Frage: Ich habe den ACS712 in 5A und in 20A. Bei beiden das gleiche Ergebnis.

Noch was ich sehe gerade auf deinem Foto das du kein Elektriker bist, lass die Finger weg vom 230V!

Um erstmal die grundsätzliche Funktionsfähigkeit festzustellen:
Alles abziehen.
Deinen Sketch oben nehmen und das delay() auskommentieren.
Irgendwann sollte der ausgegebene Wert weit unter 100 tendieren.
Wenn das geht, ist anzunehmen, das da erstmal die Hardware funktioniert.

Wenn der Wert nicht soweit runter geht, dann einen anderen Pin testen.

Dann kannst mit dem Sensor da ran.
Und dann stellt sich die Frage, was Du erwartest.
Bei einem 5A-Sensor sollten schon mehr als 20mA fliessen.

Der analogIn pendelt um die 2-4 digit. großzügig überschlagen ist ein digit 5mA. Wenn Du also was sicher messen willst, dann solltest das bedenken.

Und ja, das ganze immer nur komplett spannungsfrei befummeln und an einer Steckdose, vor der wenigstens ein RCD angebaut ist.

Ups was ist ein RCD ? :innocent: :speak_no_evil:

Hey, erst einmal vielen Dank.

Ich habe alles abgezogen und habe die analogen Ports durchprobiert (> 1 Minute laufen gelassen). Auf deutlich unter 100 ist da leider nichts gekommen:

A0

18:34:20.204 -> 313
18:34:20.204 -> 293
18:34:20.204 -> 307
18:34:20.204 -> 324
18:34:20.204 -> 310
18:34:20.204 -> 294
18:34:20.204 -> 311
18:34:20.250 -> 323
18:34:20.250 -> 306
18:34:20.250 -> 295
18:34:20.250 -> 316
18:34:20.250 -> 322
18:34:20.250 -> 301
18:34:20.250 -> 297
18:34:20.250 -> 319
18:34:20.250 -> 319
18:34:20.295 -> 298
18:34:20.295 -> 300
18:34:20.295 -> 321

A1

18:37:12.537 -> 344
18:37:12.584 -> 329
18:37:12.584 -> 331
18:37:12.584 -> 345
18:37:12.584 -> 342
18:37:12.584 -> 328
18:37:12.584 -> 333
18:37:12.584 -> 346
18:37:12.584 -> 340
18:37:12.584 -> 327
18:37:12.630 -> 336
18:37:12.630 -> 347
18:37:12.630 -> 337
18:37:12.630 -> 327
18:37:12.630 -> 338
18:37:12.630 -> 346
18:37:12.630 -> 334
18:37:12.630 -> 328

A2

18:39:08.421 -> 314
18:39:08.421 -> 298
18:39:08.421 -> 302
18:39:08.421 -> 317
18:39:08.421 -> 312
18:39:08.421 -> 297
18:39:08.421 -> 305
18:39:08.467 -> 318
18:39:08.467 -> 309
18:39:08.467 -> 296
18:39:08.467 -> 308
18:39:08.467 -> 318
18:39:08.467 -> 306
18:39:08.467 -> 297
18:39:08.467 -> 311

A3

18:40:45.694 -> 337
18:40:45.694 -> 336
18:40:45.694 -> 319
18:40:45.694 -> 321
18:40:45.694 -> 338
18:40:45.694 -> 334
18:40:45.742 -> 317
18:40:45.742 -> 324
18:40:45.742 -> 339
18:40:45.742 -> 331
18:40:45.742 -> 316
18:40:45.742 -> 327
18:40:45.742 -> 340
18:40:45.742 -> 328

Die Werte haben sich dann nicht weiter verändert.

Das heißt, eine LED-Birne ist einfach zu wenig um den erwarteten Ausschlag zu erhalten?

Offene Analogeingänge lesen sowas wie Du mißt.
Grüße Uwe

1 Like

Es ist ein HAL Sensor, ist in der nähe ein Schaltnetzteil, zB vom Laptop?
Bei mir habe ich schon haben Meter vom Kabel Unsinn angezeigt bekommen, die Dinger sind sehr empfindlich auf störquellen.

Im Umkreis von 50-70 cm sind keinerlei Geräte.

Tausch mal die Sensorausgang Strippe, nicht das die defekt ist

Habe alle Leitungen getauscht - keine Änderung.

Also nehme den 5A ACS, opfer eine AAA Batterie, die über ACS kurzschließen, und mit einer Lib den Strom messen. Nicht vergessen den ACS wert auf 185 eistellen, die 185 hat wenig zu sagen ist nur für Umrechnung relevant.
Der sollte dir um die 2A zeigen je nach Hersteller der Batterie, ich glaube nicht das beide ACS defekt sind.
Noch was der RAW wert bei nicht belasteten ACS soll, muss 512 haben, alles was unter 512 ist hat ein - als Vorzeichen, über ist + Wert

Bedeutet dass fast kein Strom gemessen wurde

Mach mal folgendes:

Zieh das Signalkabel vom ACS ab und stecke es beim Arduino auf
GND
3,3 V
5 V

Und ne kleine Anmerkung: Die ACS sind so ungenau daß man nicht von "messen" sprechen sollte wenn man sie benutzt... :wink:

Vermutlich.
Ich rechne mal.

Der Sensor macht bei 5A Stromfluß in eine Richtung eine Spannung von 5V, bei 5A in die Gegenrichtung kommen 0V raus. Macht 10A die der Sensor in 0-5v auflöst.

Der AnalogIN teilt die 5V Eingangsspannung in 1024 Werte. Die Ungenauigkeit beträgt bis zu 2 Werte je Richtung.

Also teile ich 10A durch 1024 um die Rechengröße zu erhalten. Vereinfacht 10A / 1000 => macht 10mA je Analogwert.
2 Pendelwerte => 20mA ist schon die Ungenauigkeit
230V * 0,02A => knapp 5W

Ich komme hier zwischen 0 und 60....

Hast Du ein Widerstandsortiment?
Such Dir mal zwei Widerstände mit 1Kohm raus und bau mal einen Spannungsteiler wie folgt:


  +5V
   |
  | |
  | |  1k  (2k)
  | |
   |
   +----A0
   |
  | |
  | | 1k
  | |
   |
  GND    
         

Da muss beim AnalogRead() im Idealfall 512, aber es reicht auch irgendwas zwischen 500 und 540, rauskommen.

Dann nimmst Du den zwischen +5V und dem Pin raus und ersetzt den mit einem 2K oder 5K Widerstand. Als Ergebnis sollte mit AnalogRead ein neuer Wert rauskommen.
Idealerweise bei 2K irgendwas um die 340. zwischen 320 und 360 ist ausreichend.
Beim 5K zwischen +5V und Pin und 1K zwischen Pin und GND sinkt der Idealwert auf 170 alles was zwischen 150 und 190 ist wäre noch ok.

Wenn das nicht rauskommt, ist der ADC nicht zu gebrauchen.
Wenn das funktioniert, beanspruche den ACS mal mit einem Strom von mindestens 100mA. Das muss nicht unbedingt mit 230V sein. Da reicht auch ne 12V Glühlampe mit 1,5Watt Bei 12V kannst bis 50W alles füttern. Da hab ich auch kein schlechtes Gewissen, wenn Du mal die Litzen nicht sauber in die Schraubklemmen steckst...

@fony RCD ist das Neusprech für FI :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.