Forum: Mikrocontroller und Digitale Elektronik Arduino LCD Voltmeter


von Florian D. (floriano)


Lesenswert?

Was hält ihr von diesen Programm? Geht das überhupt?(is für Arduino)


#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int Lesep = 0;
int Wert;
int Volt;
void setup() {
  lcd.begin(16, 2);

}

void loop() {
  lcd.print("LCD Voltmeter    ");
  lcd.print("                 ");
  delay(1000);
  lcd.print("*****made by*****");
  lcd.print("*Florian  Daßler*");
  delay(1000);
  while(1)
  {
    lcd.clear();
    Wert = analogRead(Lesep);
    lcd.print("Spannung an Pin");
    Volt = Wert/1024*5;
    lcd.print(Volt);
    lcd.print("Volt");
    delay(100);
  }
}

Fragen und verbesserungen hier hin:

von Max_123 (Gast)


Lesenswert?

Ich vermute es kommt immer 0 heraus.

Wert/1024 ergibt bei Integer 0, auch wenn der Wert nachträglich mit 5 
multipliziert wird.

von Florian D. (floriano)


Lesenswert?

> Ich vermute es kommt immer 0 heraus.
>
>
>
> Wert/1024 ergibt bei Integer 0, auch wenn der Wert nachträglich mit 5
>
> multipliziert wird.
Wie lösen ?
Mit noch ner Float zwichenvariable?

von Florian D. (floriano)


Lesenswert?

>> Ich vermute es kommt immer 0 heraus.
>
>>
>
>>
>
>>
>
>> Wert/1024 ergibt bei Integer 0, auch wenn der Wert nachträglich mit 5
>
>>
>
>> multipliziert wird.
>
> Wie lösen ?
>
> Mit noch ner Float zwichenvariable?

Entschuldigung hab scheiß geschrieben.


also float Volt?

von Florian D. (floriano)


Lesenswert?

#include <LiquidCrystal.h>


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int Lesep = 0;
int Wert;
float Volt;
void setup() {
  lcd.begin(16, 2);

}

void loop() {
  lcd.print("LCD Voltmeter    ");
  lcd.print("                 ");
  delay(1000);
  lcd.print("*****made by*****");
  lcd.print("*Florian  Daßler*");
  delay(1000);
  while(1)
  {
    lcd.clear();
    Wert = analogRead(Lesep);
    lcd.print("Spannung an Pin");
    Volt = Wert/1024*5;
    lcd.print(Volt);
    lcd.print("Volt");
    delay(100);
  }
}

so,oder?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?


von Max_123 (Gast)


Lesenswert?

Volt =  (int)  (((long) Wert * 5000L) / 1023L );    //in mV

lcd.print ( Volt % 1000);
lcd.print ( "." );
lcd.print ( Volt/1000);
lcd.print ( " Volt");

von Werner (Gast)


Lesenswert?

Max_123 schrieb:
> lcd.print ( Volt % 1000);
> lcd.print ( "." );
> lcd.print ( Volt/1000);
> lcd.print ( " Volt");

auch wenn der Beitrag alt ist kann ich das nicht so stehen lassen:

anstatt bei 3056
3.056 auszugeben wird
56.3 ausgeben. Selbst wenn man das vertauscht ist es falsch,
das wird nämlich zu
3.56

von looping Louie (Gast)


Lesenswert?

Ein Loop (while(1){..}) in loop()
kommt selten gut...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.