Hallo, da ich hier immer eher nur Infos beziehe will ich heute auch mal etwas beitragen. Da ich wie anscheinend andere auch vor dem Problem stand ein Gewicht auf den PC möglichst günstig zu bekommen habe ich mir gedacht bauen wir uns eine Waage. Schön mit Wägezelle Instrumentationsverstärker Komperator und einem Integrator. Kurz ich habe mir Discret ein ADC aufgebaut um mehr als nur die 10bit des Atmega8 verwenden zu können. Da kam ich auf eine Genauigkeit von +-2g leider nicht das was ich mir vorstellte. Dann habe ich den zweiten weg versucht Display rückwandeln. Leider habe ich hier nicht all so viel Info gefunden. Naja da kam der Punkt selber machen und verstehen. Bin leider ein C anfänger daher ein etwas seltsamer Code vermutlich aber funktioniert einwandfrei. Für die TWI kommunikation habe ich die lib von Junghans verwendet. Schaltplan kommt noch habe aber vorab schon die Pinbelegung mit auf dem Foto. VLT kann es ja jemand gebrauchen. Gruß Mathias
Noch ein kleiner aber wichtiger zusatz für die die nicht auf den Schaltplan warten wollen. Pin 1 und 3 des LCD im Bild von Links aus nach rechts gezählt befindet sich noch vor dem Atmega ein Schmidttrigger-Inverter ohne diesen funktioniert es nicht und mir ist es auch nicht gelungen (wollte da jetzt nicht so viel Zeit investieren) das nur über die Software zu realisieren. Problem waren die verschiedenen Spannungswerte die am LCD sind. Gruß
Dein Text ist leider schwer zu lesen. Es gibt hier auch ein anderes Projekt, wo das LCD ausgelesen wird (habe keinen Link parat).
Hallo, Ich weiss nicht ob du das hier meinst: http://www.mylifesucks.de/oss/c-scale/ Das war jedenfals das an dem ich mich KURZ versucht habe. Hatte sogar die relativ gleiche Waage. Das Display war aber aber auf jedenfall genau das gleiche! Doch das Teil ist bei mir einfach nicht gelaufen. In meinen Augen war die Pegelerkennung das Problem! Hatte sogar mit verschiedenen Ub des Atmegas experimentiert um den Schwellwert zu veschieben, brachte alles nichts. Ich will zum Schaltplan auch noch ein kleiner Bericht machen wo die Messungen mit dem Oscar zu sehen sind. Um zu verstehen wie der Code Arbeitet MUSS man auch wissen wie ein LCD mit 4 Backplanes arbeitet, da musste ich mich auch erst Schlau machen. Aber im Grunde habe ich es erst verstanden als ich mir meine Fragen selber ERMESSEN habe. Aber ich kann das hier auch kur mit Worten fassen was der Code so macht. Auf dem Bild habe ich 4 Pins in ein Kasten gezeichnet. Diese Pins kann man als eine art Takt sehen. Diese Pins haben das gleiche Signal jeweils mit einer Phasenverschiebung. Der Code braucht zum arbeiten aber nur 2 dieser Takte und zwar Pin 1 und Pin 3. 2 Deshalb da ich die Interrupts des Atmega verwende und der nur 2 Eingänge hat. Also wird Takt an Pin 2 z.b aus der Abfallenden Flanke von Pin 1 erzeugt und Takt 4 von der abfallenden Flanke von Pin 3. Da ich ein Problem mit der ekennung der Pegel hatte da so ein Display zwischen Pegel besitzt habe ich ein Invertierender Schmidttriger verwendet. ganz Simpel. INT0 ist so eingestellt das er erst auf eine steigende Flanke von Pin1 reagiert. Sobald dieser INT aus geführt wird schaut man sich alle Pins an die in dem Moment auf HIGH liegen. Dieses ergebnis wir dann per bool oder 1 bzw 0 in einer Variblen abgelegt. Zuletzt wir dann das Register noch umgeschaltet das ein Interrupt ausgeführt wird sobald an PIN1 eine fallende Flanke entsteht. Dadurch gelangen wir an Takt 2! Die Interruptroutinen sind mit einem IF vor der Auswertung ausgestattet das überprüft wie das Interruptregister gesetzt ist sonst würde ja immer Takt 1 und Takt 2 ausgewertet werden in einem durchgang was nicht funktionieren würde. Diese ganze Interruptroutine wird auch bei INT11 abgearbeitet. Nachdem alle 4 Takte ausgewertet wurden kann man daraus (hierin der Main while schleife) eine Zahl generieren (SEG1, SEG2....) Diese Zahl wird dann nur noch mit ITOA an RS232 gesendet (mit steuerbefehl u -> UNIT , t -> TAR als eingabebefehl (Taster der Waage bedienen) mit g -> GET kann man dann den Wert auslesen) Das ganze befindet sich in der Switch-Case. Genauso für I2C betrieb. hier werden die ergebnisse der Segmente eben in einzeln in 4x Txbuffer gelegt die dann eben am PC zu einer Zahl zusammengesetzt werden da ich ja nur 8bit in ein Sendebuffer packen kann. Hoffe das es hierduch etwas verständlicher wurde. Wie gesagt genauer Schaltplan mit etwas mehr erklärung kommt noch. Gruß
Hallo, hier noch der versprochene Schaltplan, noch schön per Hand. Hoffe das beseitigt irgendwelche Fragen. Gruß
Hallo, hier habe ich noch ein Video das die funktion zeigt. Bitte mal auf die Steuerzeichen achten. http://www.youtube.com/watch?v=heYc82iN6wo&feature=youtu.be
Danke... Ich werde zum Auslesen deine Methode benutzen. Möchte folgendes nachbauen und verbessern: http://learn.adafruit.com/smart-cocktail-shaker/overview Mir gefällt bei der Anleitung die Waage nicht. Denke das ich mit deiner Version besser bedient bin.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.