Projekt DC Sannung messen und Ausdrucken

Hallo liebe Gemeinde,

wie ihr schon in der Überschrift gelesen habt möchte ich gerne ein Messgerät bauen was den gemessen Wert ausdruckt, schön wäre es wenn ich auch ein Logo mit ausdrucken könnte.

Funktionsumfang:

  • Spannung messen 0-30V DC
  • Wert digital ausgeben (LiquidCrystal I2C 16x2)
  • Wert bestätigen (taster)
  • Wert auf Bonpapier Ausdrucken (schön wäre wenn man ein logo oben auf den bon drucken könnte*

Lösungen:

Spannung messen :

  • Theorie : einen 100k und 10K Widerstand in reihe schalten.
    10k Widerstand an GND anschließen.
    zwischen 100k und 10k am Analog Pin des Arduino anschließen.
    100k Buchse an den Pluspol der Gleichspannung Messspitze.
    an GND Buchse Minuspol Messspitze.

  • Programmcode ( quelle: http://mint-unt.de)

Programmcode

// Stromteiler-Gleichstrom-Voltmeter 0 - 30V
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // Widerstandswert R1 (100K) - siehe Schaltskizze!
float R2 = 10000.0; // Widerstandswert R2 (10K) - siehe Schaltskizze!
int values = 0;
void setup() {
Serial.begin(9600); //Seriellen Monitor einbinden
pinMode(analogInput, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("DC-Voltmeter");
}
void loop() {
// Werte am analogen Pin lesen
values = analogRead(analogInput); //Messwerte am analogen Pin als "values" definieren
vout = (values * 5.0) / 1024.0; // Messwerte in Volt umrechnen = Spannung am Ausgang des
// Spannungsteilers mit Zuleitung zu Pin A0
vin = vout / (R2 / (R1 + R2)); // Berechnen, welche Spannung am Eingang des Spannungsteilers
// anliegt. Das entspricht der Spannung der zu untersuchenden
Batterie
if (vin < 0.09) {
vin = 0.0; // Unterdrücken unerwünschter Anzeigen
}
lcd.setCursor(0, 1);
lcd.print("Spannung: ");
lcd.print(vin);
lcd.print("V");
delay(500);

Serial.print("V= ");
Serial.println(values); // Messwerte am anologen Pin im seriellen Monitor anzeigen
}

Problem:

  • LCD zeigt keinen TEXT nur den Anfangs Buchstaben.
  • Die Spannung Wird nur Einstellig vor den Komma angezeigt.
  • Die Spannung gemessene Spannung ändert sich nach jeden neustart um 1-2 V.

Drucken: <--- Hier brauche ich eure Hilfe

  • Ein Kassenbondrucker der direkt vom Arduino aus druckt.
  • im besten Fall ist der Drucker ebenfalls Batterie betrieben.
  • welche Schnittstelle kann ich Nutzen ?

An dieser stelle Weise ich drauf hin das ich mich zwar schon einige zeit mit Arduinos befasse aber ich in C oder C+ immer noch nicht den Gesamt Umfang verinnerlicht habe. Ihr fragt euch bestimmt warum ich dann so ein Projekt anfange, die Antwort ist ziemlich simpel, ich möchte es gerne lernen und brauch Projekte um einen tieferen einblick zubekommen auf dieser art lerne ich am besten.

Ich würde mich über Hilfe und Anregungen eurer Seits freuen. Gerne auch als gemeinsames Projekt.

Lg Rene

SirRene85:
...ich möchte es gerne lernen und brauch Projekte um einen tieferen einblick zubekommen auf dieser art lerne ich am besten.

Ich würde mich über Hilfe und Anregungen eurer Seits freuen...

Dann solltest mit kleinen Projekten anfangen und beispielsweise mit den Beispielen in der IDE üben.

Bei großen Projekten, die man selbst nicht versteht, ist ein Lerneffekt fast nicht vorhanden.

Bei dem gezeigten Projekt erwartest du, dass wir dir den Code vorgeben, dass ist sicher nicht Sinn des Forums.

Das sind zu viele Baustellen an einem
Projekt, um Dir helfen zu können.
Was hältst Du von Einzelschritten?
Z.B. Spannungsmesser auf LCD.
Ohne delay()...

Stefan

Erst einmal Danke für die schnellen antworten.

@HotSystems
Nartürlich hast du Recht das dieses Projekt recht anspruchsvoll ist, wie gesagt habe ich schon einige kleinere Projekte gemacht ich sag mal so wenn ich etwas nicht verstehe muss ich ja fragen ich will keine komplett Lösung haben sondern an Hand von denk Anstössen in die richtige Richtung gestoßen werden.

@Stefan
Das mit den Einzelschritten ist genau die richtige Idee.

Dann fangen wir mal so an Ich habe in mehreren Foren gelesen wie ich was auf einen Display dastellen kann.
Das problem ist folgendes:

Kleiner Auszug aus meinem aktuellen sketch

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 16);

void setup() {
lcd.init();
lcd.clear();
//lcd.begin(16,2);

}

wie man sehen kann habe ich lcd.begin(); auskommandiert, dass liegt daran das mein Display nix anzeigt wenn ich es so starten möchte.
Ich kann mich an vergangene Projekte erinnern wo ich es aber genau so gemacht habe dort hat es mit den anzeigen von text in vollen Zeilen geklappt.
Außerdem habe ich in mehren Foren gesucht wie ich dieses Display mit I2C Modul am besten verwenden kann, in diesen würde der aufbau ähnlich aussehen aber dieses mag meine Arduino IDE nicht verwenden.

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // das bewirkt zum beispiel nur eine Fehlermeldung Warum?

Meine Arduino IDE 1.6.9

Das muss alles zusammen passen.
Du musst dir die Beispiele in den Libraries ansehen und danach deinen Sketch aufbauen.
Wenn du das mixt, passt es nicht.

So auch dein "lcd.begin(16,2);", das passt nicht zur verwendeten Library.

Also zum diesem Thema

HotSystems:
Das muss alles zusammen passen.
Du musst dir die Beispiele in den Libraries ansehen und danach deinen Sketch aufbauen.
Wenn du das mixt, passt es nicht.

So auch dein "lcd.begin(16,2);", das passt nicht zur verwendeten Library.

Ich habe jetzt mal die Beispiel Lib genommen und angepasst auf mein Display:

[quote]//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
 lcd.init();                      // initialize the lcd
 lcd.init();
 // Print a message to the LCD.
 lcd.backlight();
 lcd.setCursor(0,0);
 lcd.print("Hello, world!");
 lcd.setCursor(1,1);
 lcd.print("Ywrobot Arduino!");
 // lcd.setCursor(0,2);
 //lcd.print("Arduino LCM IIC 2004");
  //lcd.setCursor(2,3);
 //lcd.print("Power By Ec-yuan!");
}

void loop()
{
}




das Ergebnis ist frustrierend das Display wird zwar erkannt aber das problem ist es werden immer nur die ersten Buchstaben angezeigt und nicht der ganze text.

zur info ich habe meine IDE auf 1.8.3 geupdatet 

wie könnte ich das noch lösen ander Lib?

Offensichtlich stehst du mit den Displays noch auf Kriegsfuß.

Lies dir diesen Beitrag mal durch, da bekommst du viel Infos: https://arduino-info.wikispaces.com/LCD-Blue-I2C

warum nur die ersten Zeichen angezeigt werden, kann an einer schlechten Lötstelle liegen.
Oder ein schlechter Kontakt an den Steckkabeln.

Zeige mal ein Bild deines Aufbaus.

Edit:

Du verwendest immer "Quote" für deine Sketche, das ist falsch und dadurch werden die schlecht lesbar.

Bitte verwende Code-Tags dafür.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar.

HotSystems:
Offensichtlich stehst du mit den Displays noch auf Kriegsfuß.

Lies dir diesen Beitrag mal durch, da bekommst du viel Infos: https://arduino-info.wikispaces.com/LCD-Blue-I2C

Alles klar das werde ich mir später noch anschauen erst mal danke für deine Hilfe

SirRene85:
Alles klar das werde ich mir später noch anschauen erst mal danke für deine Hilfe

Gerne und eigentlich ist es einfach, aber manches mal steckt der Teufel im Detail.

Melde dich gern wieder, wenn noch Fragen sind.

Termodrucker, seriell,TTL level
Gibt es sogar für kleines Geld. Der "müsste"
recht einfach anzusteuern sein.
Also abwegig ist deine Idee nicht :wink:

Stefan

Ich habe jetzt mal die Beispiel Lib genommen und angepasst auf mein Display:

funktionieren den die reinen Beispiele aus der Lib?

Moin zusammen,

Ich Habe mich Heute Morgen nochmal den thema LCD Display gewidmet und habe das problem behoben,
Das Problem war offensichtlich die LIB habe jetzt eine andere genommen und nun geht das Spannungs messen einwandfrei und die anzeige ist optimal. Danke noch einmal für eure Hilfe.

Nächster punkt wird der Thermo Drucker ich werde mir den einfach mal besorgen dann schauen wir mal weiter.

LG Rene

Glückwunsch !
An Deinen Versuchen bin ich sehr interessiert.
Dieser Anwendungszweck des Protokollierens
kommt für mich auch immer wieder.
Wusste gar nicht, dass passende Drucker
für so kleines Geld zu haben sind...

Stefan

Da bin auch Glücklich drüber Stefan.

Nächster Schritt ist der Drucker ich hoffe das es mit dem Kaufe und Versand flott geht.
Ich finde es auch sehr Interessant mit den Protokollieren vor allem, weil es die heutige Zeit immer mehr zum Einsatz kommen wird. Alles muss Dokumentiert und Protokolliert werden.
Außerdem befasse ich mich einfach zu gerne mit den Arduino.