Autor |
Schaltung für IR-Fotodiode als logisches Signal Suche nach: schaltung (31663) fotodiode (303) |
|
|
|
|
BID = 919672
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
|
Zitat :
perl hat am 5 Mär 2014 13:06 geschrieben :
|
1k ist jedenfalls ein ziemlich geringer Wert für den Pull-up.
Wenn konstant nur 1 am µC ankommt wird der Widerstand zu gering sein, sonst kommen auch Protollfehler einschliessleich falsche Polarität in Frage.
|
Die Schaltung stammt von hier
. Mich wundert nur, dass die Technik für die PC-Version genau anders herum ist. (Pull down)
Schaut das besser aus? VCC sind sicher 5V, oder? Da ein TTL-Pegel rauskommt, muss ich das ganze noch durch einen MAX3232 jagen, korrekt?[/quote]
Zitat :
|
Wie lang ist die Leitung, wie hoch ist die Übertragungsgeschwindigkeit?
|
Die Leitung ist ca 30cm lang. Die Bautrate liegt bei 9600. Es kommt aber nicht einmal Datenmüll im Terminal an. Daher schließe ich die Geschwindigkeit zunächst mal aus.
Zitat :
|
P.S.:
Für die Pull-up und Pull-Down Widerstände im RPi kannst du mit 56 kOhm rechnen.
|
Danke - ich bin am Freitag beim großen C, dann hole ich mal paar davon.
Zitat :
|
P.P.S.:
Zitat :
| oder muss ich die Logik umbauen, dass ich den RXD-Pin mit einem Pull-Down gegen Masse lege und mit der Fotodiode hochziehe? | Das wird nicht nötig sein. So etwas erledigt man in Software.
|
Kann ich in dem Fall leider nicht. Die Software guckt einfach in den Buffer der Schnittstelle, ob (fertig in Hex codierte) Daten angekommen sind. Ich kann das Signal vorher nicht negieren - nur in der Hardware. Den Rest übernimmt die Schnittstelle des Rasperry. Die Software übernimmt nur die Hex-Daten und wertet diese aus. |
|
BID = 919677
der mit den kurzen Armen Urgestein
Beiträge: 17434
|
|
Oh Herr da kommen nur 0 oder 1 an von Hex oder anderen Formaten brauchst du gar nicht erst reden. Die Aufbereitung dieser Signalfolge muss der Pi erledigen! Was denkst du warum wir auf einen µC und entsprechende Programmierung hinweisen. Das ändert auch bei dem Pi oder beim PC nichts . Auch dort muss der Rechenknecht erst das Signal umwandeln um es verarbeiten zu können. Der RXD ist da nur als Eingang zu verstehen. Der Zähler gibt an seiner LED nur eine Unterschiedliche Anzahl von Impulsen je Sekunde aus. Nicht mehr und nicht weniger. Grob gesagt ist das nur ein Schalter der entsprechend der Leistung nur öffter oder gar nicht geschlossen wird. Zählen musst du diese Impulse eh , ehe du die irgendwie weiter verarbeiten kannst.
_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen! |
|
BID = 919678
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Mich wundert nur, dass die Technik für die PC-Version genau anders herum ist. (Pull down) |
Das ist nicht wunderbar, sondern es liegt daran, dass die regelmäßig z.B. im PC eingebauten RS-232-Treiber und -Empfänger invertieren.
Das wissen die UARTs natürlich.
Kurz etwas zu dem RS-232 Leitungsprotokoll:
Im Ruhezustand liegt dort eine logische "1" an. Nach der Norm entspricht das einer Spannung zwischen -3V und -15V; am Ausgang bzw. Eingang des µC also Vcc bzw. mehr als 1,4V bei dir.
Wenn ein Byte übertragen werden soll, wird dieses durch das so genannte Startbit eine "0" eingeleitet. Nach Norm sind das auf der RS-232-Leitung +3V bis +15V. Am µC erscheint also 0V.
Danach folgen die Datenbits, evtl ein Paritybit, und mindestens ein Stoppbit, dass die gleiche Polarität wie der Ruhezustand hat, prinzipiell also beliebig lange dauern kann.
Der Bereich zwischen -3V bis +3V ist gemäß der RS-232-Norm keinem bestimmten Zustand zugeordnet.
In der Praxis sind aber die meisten Empfänger-ICs so ausgelegt, dass sie bei etwa +1,4V zwischen 1 und 0 unterscheiden. Deshalb reicht zum Senden und Empfangen oft ein einfacher Transistor, aber das ist nicht garantiert.
Mit einem Kopfhörer oder einem PC-Brüllwürfel kannst du die Datenübertragung übrigens auch hören und so wissen, ob überhaupt etwas unterwegs ist.
Da die meisten Kopfhörer heute niederohmig sind, empfiehlt es sich zusätzlich einen Transistor und einen Vorwiderstand zu verwenden, damit nicht die Datenpegel verdorben werden.
|
BID = 919679
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Zitat :
der mit den kurzen Armen hat am 5 Mär 2014 14:47 geschrieben :
|
Oh Herr da kommen nur 0 oder 1 an von Hex oder anderen Formaten brauchst du gar nicht erst reden. Die Aufbereitung dieser Signalfolge muss der Pi erledigen!
|
Macht er ja auch! Die 0er und 1er werden vom Pi Empfangen, ausgewertet und am /dev/ttyAMA0 als fertigen Hex bereitgestellt. Vereinfacht gesagt muss die Software nur "Schnittstelle, hast du Daten für mich?" fragen und diese Antwortet "Ja, habe ich: 0B 0B 0B 0B 01 01 01 01 76 ...".
Dafür muss ich die Daten aber so auf den RXD bringen, als wenn ich sie über einen anderen Rechner via Telnet etc geschickt hätte.
Zitat :
| Der RXD ist da nur als Eingang zu verstehen. Der Zähler gibt an seiner LED nur eine Unterschiedliche Anzahl von Impulsen je Sekunde aus. Nicht mehr und nicht weniger. Grob gesagt ist das nur ein Schalter der entsprechend der Leistung nur öffter oder gar nicht geschlossen wird. Zählen musst du diese Impulse eh , ehe du die irgendwie weiter verarbeiten kannst.
|
Von der Variante bin ich doch schon weg
Ich möchte nicht mehr die Blink-LED zählen, sondern die Daten-LED abfragen. Dort werden im Protkoll SML die Daten des Zählers übertragen. Der Zähler schickt das ganze über die TXD-Leitung an eine IR-LED. Übertragen wird es mit Bautrate 9600 8N1. Das "Problem" ist jedoch, dass ich den TXD-Port nicht elektrisch anzapfen kann, sondern die 0er und 1er an die IR-LED gegeben werden, die die einzelnen Bits "rübermorst". Auf diese LED muss ich nun die Fotodiode setzen, um aus den "Lichts-Bits" wieder "Elektro-Bits" zu machen.
Verstehst du nun was ich meine???[/quote]
|
BID = 919709
der mit den kurzen Armen Urgestein
Beiträge: 17434
|
Hää Entweder du hast vom Zähler her schon ein Datenpaket dann brauchst du den Pi gar nicht. Oder du zählst die reinen Impulse mit dem Pi und verbindest den Pi und den PC per USB oder per serieller Schnittstelle. Es gibt den Pi auch mit Lan -Schnittstelle und da kannst du den Pi auch vom PC über Lan abfragen. Nebenbei der Pi läst sich auch mit einem USB-Wlanstick Wlan fähig machen. Die Seriell Parallelwandlung kann der Pi übrigens auch übernehmen, und die Daten vom Zähler zwischen speichern. Zur Auswertung holst du dir nur die tagesaktuelle Datei vom Pi mit dem PC ab. Deine Photodiode + Transistor ist dann nur der serielle Eingang für die Daten des Zählers. Jedes Datenpaket beginnt mit einem Startbit und endet mit einem Stopbit, und das wird der Pi ja wohl noch auf die Reihe bekommen.
_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!
|
BID = 919721
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Jedes Datenpaket beginnt mit einem Startbit und endet mit einem Stopbit, und das wird der Pi ja wohl noch auf die Reihe bekommen. |
Anscheinend klemmt es aber genau da.
Maik87 weiss offenbar momentan nicht, ob da überhaupt Daten kommen, oder ob er sie wegen eines Hardware- oder Softwareproblems nur nicht sieht.
|
BID = 919750
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Zitat :
der mit den kurzen Armen hat am 5 Mär 2014 23:48 geschrieben :
|
Hää Entweder du hast vom Zähler her schon ein Datenpaket dann brauchst du den Pi gar nicht.
|
Nein? Wer oder was soll denn das Datenpaket auswerten und mir beispielsweise als Grafik zur Verfügung stellen?
Zitat :
|
Oder du zählst die reinen Impulse mit dem Pi und verbindest den Pi und den PC per USB oder per serieller Schnittstelle.
|
Impulse zählen ist doof - wie ich rausgefunden habe. Dafür muss a) der Pi IMMER und ich meine IMMER an der LED hängen, damit die Daten noch stimmen. Bekommt er paar Impulse nicht mit, kann ich die Sache von vorn bis hinten vergessen. b) Habe ich mit der Protokoll-Schnittstelle wesentlich mehr Möglichkeiten. Sie gibt alle 2 - 5 Sekunden (je nach Zählerauslastung) eine Menge Werte von sich. Abgesehen vom aktuellen Zählerstand (der aller Voraussicht nach genauer ist als selbst gezählt ), kommen Werte wie z.B. die momentane Stromaufnahme. Da muss ich nicht selbst rechnen! Außerdem gibt es eine schöne Software von volkszaehler, die mir die ganze Arbeit samt grafischer Auswertung abnimmt.
Zitat :
|
Es gibt den Pi auch mit Lan -Schnittstelle und da kannst du den Pi auch vom PC über Lan abfragen.
|
Hab ich - sonst würde das keine Sinn machen
Zitat :
| Nebenbei der Pi läst sich auch mit einem USB-Wlanstick Wlan fähig machen. |
Ist bestellt
Zitat :
| Die Seriell Parallelwandlung kann der Pi übrigens auch übernehmen, und die Daten vom Zähler zwischen speichern. Zur Auswertung holst du dir nur die tagesaktuelle Datei vom Pi mit dem PC ab. |
Oder ich lasse auf dem Pi einen Webserver laufen und frage ich Daten nur bei Bedarf über den Webbrowser meiner Rechners/Handys ab.
Zitat :
|
Deine Photodiode + Transistor ist dann nur der serielle Eingang für die Daten des Zählers. Jedes Datenpaket beginnt mit einem Startbit und endet mit einem Stopbit, und das wird der Pi ja wohl noch auf die Reihe bekommen.
|
Das ist ja die ganze Zeit mein Reden
|
BID = 919754
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Zitat :
perl hat am 6 Mär 2014 02:08 geschrieben :
|
Zitat :
| Jedes Datenpaket beginnt mit einem Startbit und endet mit einem Stopbit, und das wird der Pi ja wohl noch auf die Reihe bekommen. | Anscheinend klemmt es aber genau da.
Maik87 weiss offenbar momentan nicht, ob da überhaupt Daten kommen, oder ob er sie wegen eines Hardware- oder Softwareproblems nur nicht sieht.
|
Ich sage mal so... Wenn ich einfach den IO-Port des Pi betrachte, bemerkt er, dass alle paar Sekunden die LED leuchtet. Hier liegt der PullUp jedoch per Software an. Bei der seriellen Übertragung (also über den UART-Port) muss ich den PullUp extern anlegen. Korrekt? Der schien aber noch zu klein dimensioniert zu sein, so dass die PD-Schaltung nicht gegen an kommt. Ist aber noch in Prüfung.
Überbrücke ich RXD und TXD am Pi und schicke "Hello world" auf /dev/ttyAMA0 raus, so empfange ich dieses auch im Terminalprogram. Also scheint die Software i.O. zu sein und ich muss den Fehler in der Hardware suchen. Ich besorge morgen erstmal paar gescheite Widerstände und versuche es erneut.
|
BID = 919763
der mit den kurzen Armen Urgestein
Beiträge: 17434
|
Der Pi ist ein Vollwertiger PC und kann die Daten vom Zähler empfangen und Zwischenspeichern. Mit Deinem PC holst du die Daten nur bei Bedarf vom Pi ab und kannst diese auch da auswerten oder du lässt die Daten vom Pi schon vorbereiten.
Das der Pi ständig laufen muss um die Daten vom Zähler zu empfangen und zwischenspeichern zu können setzt ich mal Voraus! Dein Pi empfängt über den RXT Eingang die Daten und wandelt diese dann wieder aus der seriellen Übertragung in Parallele Daten um und bunkert diese auch so in einer Datei ab. Befasse dich dazu mal mit Seriellen Schnittstellen und den Datenprotokollen. Dein Pi benötigt am RXT TTL-Pegel also ein klare Abfolge von 0 und 1 deshalb beginnt das Datenpaket auch mit einem Startbit und endet mit einem Stopbit dazwischen liegen die Daten inklusive Prüfbit.
Edit denk mal nach warum die dafür eine Fototransistor und keine Fotodiode genommen haben.
Der Pullup sorgt nur dafür das der RXT ein sauberes H(1) bekommt der Fototransistor zieht die Spannung bei Lichteinfall runter unter 0,8 V und damit sieht der RXT ein L(0)
_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!
[ Diese Nachricht wurde geändert von: der mit den kurzen Armen am 6 Mär 2014 16:44 ]
|
BID = 919795
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Soo,
zumindest die Hardware scheint zu laufen.
Der PullUp war wirklich zu klein
Jetzt kommt jedoch noch Datenmüll im Terminal an (0?D<ÀÀøÀ0À?à???ðÀÀðàDð). Aber das ist wohl eher eine Softwaresache, oder?
[ Diese Nachricht wurde geändert von: Maik87 am 6 Mär 2014 20:58 ]
|
BID = 919797
der mit den kurzen Armen Urgestein
Beiträge: 17434
|
Deine Wandlerschaltung ist einfach gesagt nur Müll! Dementsprechend kommt hinten auch nur Müll raus.
_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!
|
BID = 919798
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Zitat :
der mit den kurzen Armen hat am 6 Mär 2014 20:57 geschrieben :
|
Deine Wandlerschaltung ist einfach gesagt nur Müll! |
Warum bitte?
Wie ist es in deinen Augen richtig?
|
BID = 919805
der mit den kurzen Armen Urgestein
Beiträge: 17434
|
so
Oder so
_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!
[ Diese Nachricht wurde geändert von: der mit den kurzen Armen am 6 Mär 2014 21:34 ]
|
BID = 919806
Maik87 Schriftsteller
Beiträge: 856 Wohnort: Wesel / Niederrhein
|
Ok, den Fehler mit D1 sehe ich ein.
Als perl die Transistorschaltung erklärt hat, lagen noch "richtige" 3,3V an der PD an. Durch meinen Umbau auf dir RXD-Variante wird der PullUp benötigt, durch den die Fotodiode jedoch zu wenig Futter bekommt. Verstanden...
Wofür sind die 100kO PD-Anode gegen Masse?
Wenn nicht irgendwo noch ein Widerstand in der Bastelkiste auftaucht, muss ich das Projekt vertagen. Meine letzten beiden 100kilos sind für den falschen 56er draufgegangen.
|
BID = 919808
der mit den kurzen Armen Urgestein
Beiträge: 17434
|
Am RXT reichen auch 100 K nach + und der 100 k von der Basis nach gnd sorgt dafür das der Transistor schneller sperrt!
Edit: und wie ein Signal mit Hilfe eines Transistors und einem Widerstand negiert wird suchst du Bitte selber im Netz !
_________________
Tippfehler sind vom Umtausch ausgeschlossen.
Arbeiten an Verteilern gehören in fachkundige Hände!
Sei Dir immer bewusst, dass von Deiner Arbeit das Leben und die Gesundheit anderer abhängen!
[ Diese Nachricht wurde geändert von: der mit den kurzen Armen am 6 Mär 2014 21:48 ]
|