Benzinuhr mit stufigem Geber
|
20.03.2016, 21:19
Beitrag #1
|
|||
|
|||
Benzinuhr mit stufigem Geber
Hallo,
ich lasse gerade einen Benzintank bauen. Der hat leider keine Quaderform. Das Volumen ist ca 65 Liter. Der Geber hat alle 2 Zentimeter einen Readkontakt. Dieser ist intern mit einer Widerstandsdekade verschaltet. Der höchste Wert sind 230Ω. Das heißt: 0 Ω =Leer 23 Ω = 1,3Liter 46 Ω = 4,8Liter 69 Ω = 10,5Liter 92 Ω = 14,8Liter usw. Mein Versuch geht nicht. Code: #include <LiquidCrystal.h> ??? Achim Meine Beiträge sind ausschließlich zur Belustigung aller geschrieben! |
|||
21.03.2016, 09:48
Beitrag #2
|
|||
|
|||
RE: Benzinuhr mit stufigem Geber
Erklärungen zu "Map" findest du hier:
https://www.arduino.cc/en/Reference/Map oder: http://www.netzmafia.de/skripten/hardwar...erung.html I2C = weniger ist mehr: weniger Kabel, mehr Probleme. ![]() Gruß Dieter |
|||
21.03.2016, 12:49
Beitrag #3
|
|||
|
|||
RE: Benzinuhr mit stufigem Geber
Danke für die Links, hotsystems
Code: map(x, low1, high1, low2, high2) Code: Liter = map(val, 1, 100, 5, 5);// Zwischen 1-100mV=5 Liter Egal welche Spannung am A1 anliegt, es erscheint die "50" wie eingemeißelt. ? Achim Meine Beiträge sind ausschließlich zur Belustigung aller geschrieben! |
|||
21.03.2016, 13:19
Beitrag #4
|
|||
|
|||
RE: Benzinuhr mit stufigem Geber
Hi,
Gretchenfrage, wie schließt du den Tankgeber genau an ? 12V...5V vom Arduino ? Mach doch mal eine Skizze wie das aussieht. Und wie versorgst du den Arduino mit Strom ? lgbk 1+1 = 10 ![]() ![]() |
|||
21.03.2016, 15:28
Beitrag #5
|
|||
|
|||
RE: Benzinuhr mit stufigem Geber
Hallo Bitklopfer,
ich habe noch nichts gekauft, da ich erstmal auf den Tank warte. Zur Zeit habe ich nur ein Poti dran. Also am A1 Pin dadurch 0 bis 5 Volt. Weitere Gedanken habe ich noch nicht gemacht. Außer, das ich sicherlich einen Nano oder so verwenden werde. Jetzt hängt der Uno am Usb. Die 5 Volt stehen exakt an. Habe das Meßgerät am Poti. Code: Liter = map(val, 0, 1000, 5,50); 10%= 8 Liter 20%= 15 Liter usw. E kommt ja nicht drauf an. 65 Liter reichen für 3 Wochen Urlaub ohne nachtanken. Danke Achim Meine Beiträge sind ausschließlich zur Belustigung aller geschrieben! |
|||
21.03.2016, 16:15
Beitrag #6
|
|||
|
|||
RE: Benzinuhr mit stufigem Geber
Hallo Achim,
so wie dein Programm geschrieben ist, werden die Zeilen mit dem map() immer alle abgearbeitet. Deshalb kommt immer der Wert aus der letzten Zeile zur Anzeige. Probier mal folgendes: Code: #include <LiquidCrystal.h> Gruß Arne Gruß Arne ![]() ![]() |
|||
21.03.2016, 17:44
Beitrag #7
|
|||
|
|||
RE: Benzinuhr mit stufigem Geber
Danke Arne,
es funktioniert. Leuchtet ja auch ein, dass da noch eine Funktion: "Wenn>Dann", kommen muß. Mir fällt schwer eine Logik in diesen Sketchen zu finden. Alleine die Schreibweise, Klein, groß, nicht zusammengesetzt, zusammengesetztes Wort ist für mich ein Kuriosum. Im Arduino Kochbuch sind fast alle Sketche mit irgendeinem Geblinke verbunden. Dabei sind doch die meisten Funktionen nur einmalig. Eine Temperatur wird nach den Umgebungsumständen erreicht, dann soll geschaltet werden. Was hat das mit 5x Blinken und 4X nicht, in der Erklärung "Blink ohne delay" zu tun. Aber du hast das ja mal anders aufgerollt. Dankeschön! Gibt es da echt nur millis keine Second/Minute? Dann sind alleine 10 Minuten schon 600.000 ms ? OK, aber die Benzinuhr bekomme ich so in den Griff. Achim . Meine Beiträge sind ausschließlich zur Belustigung aller geschrieben! |
|||
21.03.2016, 18:19
Beitrag #8
|
|||
|
|||
RE: Benzinuhr mit stufigem Geber
Bitteschön!
Die Logik ist für ungeübte auf etwas unübersichtlich weil eingekürzt. Richtig ausgeschrieben würde eine Zeile der if-Bedinungen so aussehen: Code: if (val >= 101){ Aber auch ein Zeilenumbruch ohne {} ist möglich. Code: if (val >= 101) An die Groß/Kleinschreibung muss man sich leider gewöhnen. Das ist ein Feature der Programmiersprache. ![]() Besonders bei Variablennamen muss man aufpassen. int variable1; ist eine andere als int Variable1; Damit kann man sich das Leben ganz schön schwer machen wenn man sich keinen Standard bei der Schreibweise angewöhnt. Auch Leerzeichen in Namen gehen nicht. int variable 1; klappt nicht, aber ein _ ist da gerne gesehen. int variable_1; geht also. Der Arduino kennt leider nur millis(); für Millisekunden und micros(), für Mikrosekunden. Wenn man Sekunden. Minuten oder Stunden braucht, muss man sich die auf Basis der millis(); selbst erstellen. Ungetestet sieht das so aus: Code: unsigned long Sekunde = 0; Gruß Arne Gruß Arne ![]() ![]() |
|||
|
|
|
Möglicherweise verwandte Themen... | |||||
Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
Frequenz induktiver geber | huber5093 | 4 | 408 |
01.10.2017 18:06 Letzter Beitrag: Chopp |
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste