- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 21

Thema: LED als Sensor - ADC_Messung funktioniert nur, wenn ein Multimeter angeschlossen ist.

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Mit analogen Schaltungen kenne ich mich gar nicht aus. Entschuldigt deshalb die Frage: Warum so kompliziert?

    Eine LED wirkt in Sperrrichtung wie eine Kapazität die sich in Abhängigkeit der Beleuchtung ändert, weil der interne Leckstrom bei Beleuchtung steigt (wenn ich mich recht erinnere). Mit einem Mikrokontroller kann man diesen Effekt recht einfach auswerten. Man "lädt" die LED in Sperrrichtung und wertet dann aus, wie lange das Entladen dauert. Das ist sogar ohne ADC machbar:

    Kathode an 5V, Anode an µC-Pin. Pin auf Ausgang-Low schalten. LED wird geladen. Jetzt Pin auf Eingang umschalten und die Zeit messen (z.B. mit einer Zählschleife) bis der Pin wieder High wird. Fertig. Das funktioniert auch in einer Matix:



    Der Ausschnitt aus dem Code:
    Code:
       case 0: 	DDRB &= ~2; 			// Anoden der gewünschten Zeile auf Eingang
    					while(!(PINB & 2))   // warten bis Pegel high erreicht ist
    						temp++;          	// solange Zähler erhöhen
    					return(temp);   		// Messwert zurückgeben
    (Aus https://www.roboternetz.de/community...page3?p=495721)

    Gruß

    Micha
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    38
    Beiträge
    106
    Zitat Zitat von radbruch Beitrag anzeigen
    Hallo

    Mit analogen Schaltungen kenne ich mich gar nicht aus. Entschuldigt deshalb die Frage: Warum so kompliziert?

    [...]

    Gruß

    Micha
    Das Video kenne ich. Dieses Methode habe ich zuerst verwendet, aber wieder verworfen (Weil ich fest gestellt habe das es Teilweise zu lange dauert, bis der Pin ein Pegelwechsel festellt)

    Ich wollte, dass jede LED einzeln von einandere bemerken, ob was darüber steht oder nicht und es muss zügig laufen, unabhängig davon wie hell es ist (wegen Matrix mit 22x22LEDs, aber zum testen erstmal 3x3).
    So ähnlich wie hier:

    Nur ohne den IR-LED als Sensor bzw. Lichtquelle, sondern die LED an sich selber.

    Ich meine mich zu erinnern, dass ich in deinen Thread gelesen habe, dass du nur jede Zeile einzeln ansteuern kannst. Ich lese dein Thread noch mal quer, wenn ich ein wenig Zeit finde.

    Werde morgen mal ein Trimmer im MOhm Bereich auftreiben.

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ja, ich kann die LED bei der PingPong-Matrix immer nur zeilenweise auswerten.

    Weil ich festgestellt habe, dass es teilweise zu lange dauert, bis der Pin einen Pegelwechsel feststellt
    Um die Einlesezeit generell zu optimieren kann man natürlich auch mehrere LED mit mehreren Pins gleichzeitig überwachen. Außerdem ist die Zeit bis der Pegel wieder High ist bei Hell deutlich kürzer als bei Dunkel. Wenn du also einen Schwellwert für "jetzt ist dunkel" definierst, kannst du beim Einlesen auch noch Zeit sparen, weil du nicht bis zum High warten mußt.

    Ich wollte, dass jede LED einzeln von einandere bemerken, ob was darüber steht oder nicht
    Es wäre hilfreich, wenn man wüßte, wie du deine Matrix ansteuerst.

    Gruß

    Micha
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    38
    Beiträge
    106

    Gerade mit 2MOhm getestet. Schaltung funktioniert. Werde mal nach vollziehen, warum das so ist. Will ja in Zukunft vorher wissen, ob ich einen hohen Pulldown-Widerstand benötige. Danke für den Tip!


    Klicke auf die Grafik für eine größere Ansicht

Name:	klaerung.jpg
Hits:	10
Größe:	34,7 KB
ID:	31834
    Zur Erklärung wie die Schaltung funktioniert:

    Beispiel für die LED1 (oben links):
    Im Sensorbetrieb wird der Transistor T19 gesperrt, damit an der Anode keine 5V über den Arbeitswiderstand R10 anliegt. Die Kathode wird vom Controller auf 5V geschaltet und T1 wird ebenfalls angesteuert, damit er leitend wird. Nun kann ich eine Spannung am Emitter vom T12 messen, die in Abhängigkeit vom Lichteinfall ist.

    Für den Leuchtbetrieb muss der Transistor T1 sperren und T19 Leitend. Zudem muss der Controller die Kathode auf GND schalten.

    Für die Matrix habe ich mir gedacht, dass ich ein Multplexverfahren benutze. Dabei wird für den Sensorbetrieb Spalte für Spalte vorgegangen und in der Spalte dann LED für LED.
    Nehmen wir an, dass die linke Spalte im Sensorbetrieb ist und die anderen beiden Spalten im Leuchtbetrieb.
    Dann wird T19 die 5V für die linke Spalte sperren. T20 und T21 bleiben leitend. Da noch auf allen Kathoden der LEDs 0V anliegt, leuchten die Spalten "Mitte" und "Rechts"
    Jetzt wird werden die Transistoren T1, T4 und T7 angesteuert, damit sie leitend werden. Dann in der 1. Zeile die Kathoden auf 5V geschaltet. Die LED der Zeile sind dann alle aus. Dann an LED1 die Spannung messen und die Kathode wieder auf 0V schalten. Im Controller dann den Kanal für die 2. Zeile wechseln und dann die Kathoden der 2. Zeile auf 5V schalten. Spannung am Emitter vom T13 messen. Und so dann für Zeile 3 widerholen.
    Dann die Spalte wechseln und wieder von vorne beginnen.
    Für den Leuchtbetrieb wird dann jede einzelne LED angesteuer. Linke Spalte 5V und 1. Zeile 0v ergibt, dass nur LED1 leuchtet und alle anderen dunkel sind.

    Jetzt muss ich das einwig geschickt timen, damit man die LED im Sensorbetrieb nicht flackern sieht. Spricht nicht immer alle 9 LEDs nach ein ander im Sensorbetrieb betreiben, sonden Paketweise verteilt. Daher auch diese Lösung. Laut Datenblatt braucht der ADC vom Controller 50-200µs (abhängig vom Takt und dem Taktteiler) für eine Wandlung. Wenn ich jetzt zB. eine Wiederholzeit von 10ms anstrebe und dafür 1ms für das Messen abdrücke, sollte man es nicht bemerken und ich habe eine ganze Spalte erfasst. Dann brauche ich 30ms um die Matrix einmal komplett zuerfassen. Das sollte schnell genug sein, damit man keine verzögerung bemerkt.


    So... Viel Text aus meinen verwirtem Gehirn. Bin mir ziehmlich sicher, dass ich in meiner Vorstellung, wie das ganze funktionieren soll, noch ein Denkfehler drin ist. Aber da werde ich jetzt nach dem Verfahren "Try and Error" weiter machen.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    57
    Beiträge
    2.814
    Nun, der Collector von T1 hängt an 5V.
    Die Basis von T1 hängt an 5V.
    Die Basis von T12 hängt über T19 an 5V.
    Der Collector von T12 hängt über T1 an 5V.
    Der Ermitter von T12 geht auf den ADC Eingang.
    Da der ADC ja Spannungen mißt, hat er idealerweise einen unendlichen Widerstand.
    (praktisch einen sehr hohen)
    Über LED1 kommt zwar nicht so viel Strom, aber wenn die Leckströme größer sind wie der vom ADC, dann bleibt die Spannung immer oben.

    Da die LED nicht so viel Strom liefert, zieht wiederum ein zu kleiner Pulldown Widerstand den ADC Eingang ständig auf GND.
    Es kommt also darauf an das Gleichgewicht zu wahren.
    Fließt entsprechender Strom über LED1 muß der Pulldown Widerstand groß genug sein das sich eine Spannung aufbauen kann.
    Fließt ein kleiner oder kein Strom über LED1 muß der Pulldown Widerstand klein genug sein, das die Spannung trotz Leckströme absinken kann.

    Im Prinzip wie ein Ableitwiderstand bei einem ESD Armband. der statische Elektrizität mit einer ungefährlichen Stromstärke ableitet.

    Da in einigen Treads ja grade das Wassermodell zum Erklären gut ankommt, auch hier mal:
    Stell Dir Spannung als Wasserdruck vor und Strom als Volumenstrom (Menge pro Zeit)
    Den Widerstand als Wasserhahn und den ADC als Druckmeßdose.

    Du hast also ein Rohr an dem unten ein Wasserhahn ist und direkt daneben der Drucksensor.
    Kommt jetzt von oben ein Wasserstrahl mit 10 Bar aber nur durch eine Kanüle einer Spritze, dann darf der Wasserhahn nur minimal aufgedreht sein, damit der Drucksensor die 10 Bar anzeigen kann. kommen von oben nur noch 5 Bar, kann über den Wasserhahn aber schnell genug Wasser abfleißen, damit sich der Druck abbaut.
    Hängt oben ein C-Rohr von der Feuerwehr dran, muß man den Wasserhahn voll aufdrehen, sonst dauert es ewig bis der Druck abfällt nach dem man den Zufluß gedrosselt hat.
    Geändert von i_make_it (19.07.2016 um 20:52 Uhr)

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    38
    Beiträge
    106
    Okay... jetzt wird es klar.
    Mal kurz für mein Verständnis:

    In den meisten Fällen wird ja ein Spannungsteiler genutzt, um die Spannung zu messen.
    Wenn jetzt mein T1 mit T12 zusammen mein R1 wäre, der veränderbar ist, muss der 2MOhm Widerstand mein R2 sein.

    Wenn man jetzt nur den ADC-Eingang betreibt ohne den 2Mohm, ist mein R2 unendlich groß.
    Und das bedeutet, dass die Spannung die am R2 abfällt immer die max. Spannung sein wird, egal wie groß R1 ist.
    Habe ich das grob richtig verstanden?

    Andere Frage:
    Warum hängt die Basis vom T12 über T19 an 5V, wenn T19 doch sperrt?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Zitat Zitat von Jimmybot Beitrag anzeigen
    Wenn man jetzt nur den ADC-Eingang betreibt ohne den 2Mohm, ist mein R2 unendlich groß.
    Und das bedeutet, dass die Spannung die am R2 abfällt immer die max. Spannung sein wird, egal wie groß R1 ist.
    Habe ich das grob richtig verstanden?
    ATMegas haben typisch einen Eingangswiderstand im Bereich von 32-100MOhm.

    Zitat Zitat von Jimmybot Beitrag anzeigen
    Andere Frage:
    Warum hängt die Basis vom T12 über T19 an 5V, wenn T19 doch sperrt?
    Die ganze Schaltung ist nur ein Ausschnitt aus etwas komplizierterem. T12 und T19 dürften durch digitale Signale angesteuert werden.
    Diese Schaltung dürfte mehrfach vorhanden sein und als Multiplexer arbeiten.

    Am Collector von T19 dürfte auch eine höhere Spannung anliegen.
    Wird dann T19 angesteuert leuchtet die LED.
    Wird T12 gesperrt sollte wohl keine Spannung von dieser LED an den ADC-Eingang gelangen.

    Allerdings funktioniert das Ganze so nicht sauber.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 15.12.2012, 19:34
  2. Antworten: 3
    Letzter Beitrag: 02.06.2008, 11:44
  3. Gibts so nen Sensor? Wenn ja, Wo, und wie teuer?
    Von ToteHose im Forum Sensoren / Sensorik
    Antworten: 15
    Letzter Beitrag: 15.05.2008, 17:05
  4. Soft-SPI funktioniert nur wenn ISP .. Fehler gefunden -Danke
    Von Hei.Mor im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 28.11.2006, 17:09
  5. RS232 übertragung nur wenn ISP angeschlossen
    Von PcVirus im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 23.07.2006, 21:42

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress