Ich habe einen Arduino Nano und ein INA219 Strommessmodul. Ich möchte über die TimerOne.h Bibliothek einmal die Sekunde den Stromwert auslesen. Hierzu wird 1 mal die Sekunde die ISR per Timer mit dem Namen Strom aufgerufen. Normalerweise sollte der Befehl zum abfragen " I = ina219.getCurrent_mA(); " in der ISR mit dem Namen Strom stehen. Da funktioniert er aber nicht und der Arduino Nano stützt ab. Zum Testen habe ich mal versucht eine andere Methode in der ISR aufzurufen. Das geht. Es scheint also ein Problem mit dieser einen Funktion zu sein. Weiß jemand warum ich gerade diese Funktion nicht aufrufen kann aber andere Sachen schon?
1 | #include <TimerOne.h> |
2 | #include <Wire.h> |
3 | #include <Adafruit_INA219.h> |
4 | Adafruit_INA219 ina219; |
5 | |
6 | int I = 0; //Stromwert |
7 | |
8 | void setup(void){ |
9 | ina219.begin(); |
10 | Timer1.initialize(1000000); //Timer auf 1 Sekunden stellen |
11 | Timer1.attachInterrupt(Strom); //ISR Strom wird jede Sekunde aufgerufen |
12 | Serial.begin(115200); |
13 | }
|
14 | void loop(void){ |
15 | I = ina219.getCurrent_mA(); //hier wird die Funktion aufgerufen |
16 | delay(1000); |
17 | Serial.println("Läuft noch"); |
18 | }
|
19 | void Strom(void){ |
20 | //I = ina219.getCurrent_mA(); //hier wird die Funktion nicht aufgerufen.Warum?
|
21 | Serial.println(I); |
22 | }
|