Guten Tag Zusammmen
Es liegt ein Problem vor bei meinem Arduino Code vor.
Ich möchte den Strom mit Hilfe eines Shunts Widerstand den Strom
berechnen und auf einem LCD anzeigen lassen, doch ich weiß nicht wie ich
die Lösung anzeigen kann. Im Internet habe ich Beispiele gefunden mit
serial.Print, was ja theoretisch das gleiche Prinzip wäre wie lcd.Print
doch es funktioniert leider nicht und es taucht ein Fehlercode auf.
Fehlercode:"`VShunt`" was not declared in this scope"
Würde mich sehr freuen, wenn ihr mir weiterhelfen könnten!
1
#include<LiquidCrystal.h>
2
3
4
constintrs=12,en=11,d4=5,d5=4,d6=3,d7=2;
5
LiquidCrystallcd(rs,en,d4,d5,d6,d7);
6
intLED=9;
7
intShunt=A0;
8
9
voidsetup(){
10
11
pinMode(LED,OUTPUT);
12
13
}
14
15
voidloop(){
16
17
lcd.begin(16,1);
18
19
lcd.print((VShunt/202)/200);
20
lcd.print("mA");
21
pinMode(LED,OUTPUT);
22
digitalWrite(LED,HIGH);
23
intVShunt=analogRead(Shunt);// wird von 1-1023 angezeigt!
Elektro F. schrieb:> Vielen Dank hat geklappt, aber jetzt zeigt es einfach 0mA an wisst Ihr> an was das liegen könnte?
Also ich würde das alles erstmal besser strukturieren und mir ein C/C++
Buch zur Seite nehmen...das mit der Variable war ein echt unnötiger
Fehler.
Ich weis zwar nicht was du mit der LED machen möchtest,
aber ansich fang doch ganz am Anfang an und versuch dann den Wert
umzurechnen:
Elektro F. schrieb:> Vielen Dank für die Antwort, doch das Problem ist ich weiss nicht wie> ich es in Volt umwandle. Da es irgendwie keine Kommastellen gibt.
Du kannst in dem Programm "sagen", dass ein Wert eine Kommazahl "ist".
Das nennt man auf Deutsch "deklarieren" und auf Englisch "to declare".
Das Wort "declared" aus der Fehlermeldung ist die Form des Wortes, die
angibt, dass etwas deklariert wurde, - "declarED", - die
Vergangenheitsform.
Die Zeile
1
intShunt;
ist eine solche Deklaration.
Die Zeile
1
floatVoltage;
ist die Deklaration einer "Kommazahl". "Float" bedeutet
"Fliesskommazahl"; dass ist das selbe wie eine Kommazahl.
Adam P. schrieb:> // Ausgabe auf dem LCD könntest du dann so machen:> lcd.print("I = ");> lcd.print(mA / 1000);> lcd.print(",");> lcd.print(mA % 1000);> lcd.print("A");
Gleich kommt der OP und beschwert sich, dass er nur "A" auf dem Display
lesen kann.
NameHierEinfügen schrieb:> Gleich kommt der OP und beschwert sich, dass er nur "A" auf dem Display> lesen kann.
Denke nicht, weil die meisten Displays ein autoincrement haben, bzgl.
der X-Position.