Moin Miteinander,eigentlich wollte ich diesen Sketch nicht veröffentlichen nachdem man mir so mitgespielt hat.Aber ich will mal alles gerade sein lassen und nicht nachtragend sein was aber beim nächsten Mal passieren kann.
MfG
Crazydiver
int analogInput = A1;
int analogInput1 = A2;
float vout = 0.0;
float vout1 = 0.0;
float vin = 0.0;
float vin1 = 0.0;
float R1 = 30000.0; //
float R2 = 7500.0; //
float R3 = 30000.0; //
float R4 = 7500.0; //
int value = 0;
int value1 = 0;
void setup(){
pinMode(analogInput, INPUT);
pinMode(analogInput1, INPUT);
Serial.begin(9600);
Serial.print("DC VOLTMETER ");
}
void loop(){
// read the value at analog input
value = analogRead(analogInput);
vout = (value * 5.0) / 1024.0; // see text
vin = vout / (R2/(R1+R2));
value1 = analogRead(analogInput1);
vout1 = (value1 * 5.0) /1024.0;
vin1 = vout1 / (R4/(R3+R4));
Serial.print("INPUT V= ");
Serial.println(vin,2);
Serial.print("INPUT V1= ");
Serial.println(vin1,2);
delay(2000);
}
Das solltest du dir auf keinen Fall gefallen lassen.
Nur verstehe ich das grad nicht. Was hat das bitte mit deinem Sketch und dem Forum zu tun ?
Moin HotSystems,irgendwie habe ich in dem Voltmetersketch jetzt einen Denkfehler drin. Den ich bekomme die Displayausgabe der Daten von beiden Sensoren nicht drauf.Schau doch mal bitte drüber den ich weiß nicht wo der Fehlerteufel steckt.
MfG
Crazydiver
#include <Wire.h>
#include <hd44780.h>
#include <hd44780ioClass/hd44780_I2Cexp.h>
hd44780_I2Cexp lcd;
#define LCD_COLS 20
#define LCD_ROWS 4
int analogInput = A1;
int analogInput1 = A2;
float vout = 0.00;
float vout1 = 0.00;
float vin = 0.00;
float vin1 = 0.00;
float R1 = 30000.0; //
float R2 = 7500.0; //
float R3 = 30000.0; //
float R4 = 7500.0; //
int value = 0;
int value1 = 0;
void setup(){
pinMode(analogInput, INPUT);
pinMode(analogInput1, INPUT);
lcd.begin(LCD_COLS, LCD_ROWS);
lcd.print(" DC VOLTMETER");
lcd.setCursor(1, 1);
lcd.print("INPUT Akku1= ");
lcd.setCursor(1, 2);
lcd.print("INPUT Akku2= ");
/* lcd.setCursor(4, 3);
lcd.print("umgeschaltet");
*/
}
void loop(){
// read the value at analog input
value = analogRead(analogInput);
value1 = analogRead(analogInput1);
vout = (value * 4.47) / 1024.0; // see text
vin = vout / (R2/(R1+R2));
vout1 = (value1 * 4.049) /1024.0;
vin1 = vout1 / (R4/(R3+R4));
delay(8000);
}
Na, da fehlt doch auch in der Loop die Anweisung die Daten auf das Display schreiben.
Ob der Rest dann funktioniert, kann ich nicht sagen, da ich deine Library nicht kenne.
Also die Lib läuft ohne Probleme aber wie bekomme ich den Voltwert auf das Display.Den es ist schon eine Printanweisung in der Setangaben drin.
Crazydiver:
Also die Lib läuft ohne Probleme aber wie bekomme ich den Voltwert auf das Display.Den es ist schon eine Printanweisung in der Setangaben drin.
Was willst du damit im Setup ?
Das gehört in die Loop, damit du den Wert auch immer angezeigt bekommst.
Sieh dir doch das mal in den Beispielen der Library an, da wird es genau so gemacht.
Und im übrigen sehe ich das auch nicht in deinem Setup.
Wo soll das da stehen ?
Das habe ich gemacht es kommt aber trotzdem keine Voltanzeige im Display raus.
#include <Wire.h>
#include <hd44780.h>
#include <hd44780ioClass/hd44780_I2Cexp.h>
hd44780_I2Cexp lcd;
#define LCD_COLS 20
#define LCD_ROWS 4
int analogInput = A1;
int analogInput1 = A2;
float vout = 0.00;
float vout1 = 0.00;
float vin = 0.00;
float vin1 = 0.00;
float R1 = 30000.0; //
float R2 = 7500.0; //
float R3 = 30000.0; //
float R4 = 7500.0; //
int value = 0;
int value1 = 0;
void setup(){
pinMode(analogInput, INPUT);
pinMode(analogInput1, INPUT);
lcd.begin(LCD_COLS, LCD_ROWS);
lcd.print(" DC VOLTMETER");
/* lcd.setCursor(4, 3);
lcd.print("umgeschaltet");
*/
}
void loop(){
// read the value at analog input
value = analogRead(analogInput);
value1 = analogRead(analogInput1);
vout = (value * 4.47) / 1024.0; // see text
vin = vout / (R2/(R1+R2));
vout1 = (value1 * 4.049) /1024.0;
vin1 = vout1 / (R4/(R3+R4));
lcd.setCursor(2, 1);
lcd.print("Akku1 = ");
lcd.setCursor(2, 2);
lcd.print("Akku2 = ");
delay(8000);
}
Wo hast
Crazydiver:
Das habe ich gemacht es kommt aber trotzdem keine Voltanzeige im Display raus.
Was hast du gemacht ?
Wo hast du den Wert auf das Display geschrieben ?
Ich vermisse sowas wie:
lcd.print(dein Spannungswert);
in der Loop.
Sag mal, wie lange programmierst du schon ?
Meinst Du diesen Wert
vout = (value * 4.47) / 1024.0;
Crazydiver:
Meinst Du diesen Wert
vout = (value * 4.47) / 1024.0;
Ich meine den Wert, den du anzeigen willst.
Ich rate einfach mal, ob es funktioniert, weiß nur der Programmierer.
Kennst du den ?
lcd.print(vin);
lcd.print(vin1);
Kennst du deinen Sketch so wenig ?
Oder ist der nur kopiert ?
Ich brauchte sowas auch mal für mein Netzteil.
Ist aber für ein LCD1602 mit I2C Schnittstelle.
Muss dann entsprechend geändert werden.
/*
DC Voltmeter bis ca. 15 Volt
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int analogInput1 = 0;
float vout_1 = 0.0;
float vin_1 = 0.0;
float R1_1 = 10000.0;
float R2_1 = 1000.0;
int value1 = 0;
int analogInput2 = 2;
float vout_2 = 0.0;
float vin_2 = 0.0;
float R1_2 = 10000.0;
float R2_2 = 1000.0;
int value2 = 0;
void setup(){
pinMode(analogInput1, INPUT);
pinMode(analogInput2, INPUT);
lcd.init();
lcd.backlight();
lcd.begin(16, 2);
}
void loop(){
{
value1 = analogRead(analogInput1);
vout_1 = (value1 * 5.0) / 1024.0;
vin_1 = vout_1 / (R2_1/(R1_1+R2_1));
if (vin_1<0.09) {
vin_1=0.0;
}
}
{
// void loop()
value2 = analogRead(analogInput2);
vout_2 = (value2 * 5.0) / 1024.0;
vin_2 = vout_2 / (R2_2/(R1_2+R2_2));
if (vin_2<0.09) {
vin_2=0.0;
}
}
lcd.setCursor(0, 1);
lcd.print("Volt 2 : ");
lcd.print(vin_2);
lcd.setCursor(0, 0);
lcd.print("Volt 1 : ");
lcd.print(vin_1);
delay(500);
}
evtl. kannste das für dich verwursten
garagenloeter:
Ich brauchte sowas auch mal für mein Netzteil.
Ist aber für ein LCD1602 mit I2C Schnittstelle.
Muss dann entsprechend geändert werden.
Warum sollte der TO denn einen komplett neuen Sketch nehmen, wo er doch nur 2 Anweisungen an die richtige Stelle kopieren muss.
Kopieren sollte er doch können.
Ein anderer Sketch macht es ihm sicher nicht einfacher, zumal noch reichlich Änderungen eingebracht werden müssen.
Crazydiver:
... nachdem man mir so mitgespielt hat ...
Ich weiß zwar nicht, was Du meinst (und will's auch gar nicht wissen), aber bei so manchen Dingen sollte man drüberstehen. War vielleicht auch nicht persönlich gemeint. Dass es Unterschiedlich sein kann, was jemand meint, und was jemand anderes versteht, ist keine Neuigkeit.
Immer schön locker bleiben
Gruß
Gregor
gregorss:
Ich weiß zwar nicht, was Du meinst (und will's auch gar nicht wissen),....
Das weiß er vermutlich selbst nicht mehr.
HotSystems:
Das weiß er vermutlich selbst nicht mehr.
Man vergisst zwar, wo man die Friedenspfeife hingelegt hat, man weiß aber immer, wo das Wurfbeil vergraben ist. Manches merkt man sich besser, manches nicht so.
Gruß
Gregor
PS: Manche Leute sind manchmal geneigt, Sachen persönlich zu nehmen. Sowas vergisst man nicht so schnell. Was blöd sein kann, aber nicht blöd sein muss
So der Sketch ist geändert und läuft
Crazydiver:
So der Sketch ist geändert und läuft
Das kann ich jetzt nicht glauben.
HotSystems:
Das kann ich jetzt nicht glauben.
Warum nicht? Lief doch auch am 25.2. schon und ist ja jetzt nicht sooo kompliziert, dass es da Bedenken gäbe.
michael_x:
Warum nicht? Lief doch auch am 25.2. schon und ist ja jetzt nicht sooo kompliziert, dass es da Bedenken gäbe.
Lt. Aussage des TO nicht. Da fehlte noch etwas.
Und kompliziert war es für den TO schon, oder er hat es einfach nicht verstanden.
Hi
Crazydiver:
So der Sketch ist geändert und läuft
Egal, wie's mit dem Glauben einiger Member hier aussieht - Glaube gehört in die Kirche, oder der entsprechenden Örtlichkeit - Danke für die Rückmeldung.
Davon (also Feedback) haben wir hier eh immer zu wenig
MfG