Der Stromsensor misst die Wechselstromstärke eines Kabels. Ein Stromwandler wandelt eine hohe Wechselstromstärke in eine minimale um. Durch die interne Verschaltung wird schließlich über einen analogen Anschluss eine analoge Spannung ausgegeben, die proportional zur gemessenen Stromstärke ist. Die maximal messbare Stromstärke liegt bei 5 Ampere. Der Sensor kann direkt oder mithilfe des Grove Shields an einen analogen Pin des Arduinos angeschlossen werden.
Das Modul kann beispielsweise zum Überwachen des Stromverbrauchs eines Geräts eingesetzt werden.
Alle weiteren Hintergrundinformationen sowie ein Beispielaufbau und alle notwendigen Programmbibliotheken sind auf dem offiziellen Wiki (bisher nur in englischer Sprache) von Seeed Studio zusammengefasst. Zusätzlich findet man über alle gängigen Suchmaschinen durch die Eingabe der genauen Komponentenbezeichnung entsprechende Projektbeispiele und Tutorials.
Die genaue Bezeichnung des Stromwandlers, die bei der Suche von Beschreibungen und Anleitungen wichtig sein kann, lautet TA12-200.
/****************************************************************************/ // Function: Measure the amplitude current of the alternating current and // the effective current of the sinusoidal alternating current. // Hardware: Grove - Electricity Sensor // Date: Jan 19,2013 // by www.seeedstudio.com #define ELECTRICITY_SENSOR A0 // Analog input pin that sensor is attached to float amplitude_current; //amplitude current float effective_value; //effective current void setup() { Serial.begin(9600); pins_init(); } void loop() { int sensor_max; sensor_max = getMaxValue(); Serial.print("sensor_max = "); Serial.println(sensor_max); //the VCC on the Grove interface of the sensor is 5v amplitude_current=(float)sensor_max/1024*5/800*2000000; effective_value=amplitude_current/1.414;//minimum_current=1/1024*5/800*2000000/1.414=8.6(mA) //Only for sinusoidal alternating current Serial.println("The amplitude of the current is(in mA)"); Serial.println(amplitude_current,1);//Only one number after the decimal point Serial.println("The effective value of the current is(in mA)"); Serial.println(effective_value,1); } void pins_init() { pinMode(ELECTRICITY_SENSOR, INPUT); } /*Function: Sample for 1000ms and get the maximum value from the SIG pin*/ int getMaxValue() { int sensorValue; //value read from the sensor int sensorMax = 0; uint32_t start_time = millis(); while((millis()-start_time) < 1000)//sample for 1000ms { sensorValue = analogRead(ELECTRICITY_SENSOR); if (sensorValue > sensorMax) { /*record the maximum sensor value*/ sensorMax = sensorValue; } } return sensorMax; }
Wichtige Links für die ersten Schritte:
Projektbeispiele:
- Hackster – AC Stromsensor (Achtung: Hier wurde ein Sensor mit anderem Messverhältnis eingesetzt.)
- Henry’s Bench – AC Stromsensor (Achtung: Hier wurde ein Sensor mit anderem Messverhältnis eingesetzt.)
Weiterführende Hintergrundinformationen:
- TA12-200 – Datenblatt
- Wechselstrom – Wikipedia Artikel
- Gleichstrom – Wikipedia Artikel
- GPIO – Wikipedia Artikel
- GitHub-Repository: Stromsensor