Forum: Mikrocontroller und Digitale Elektronik Stromaufnahme von LED Spots mit Microkontroller messen und vergleichen?


von Tomi L. (thomas_w669)


Lesenswert?

Hallo,
Ich baue ein Prüfer zum Testen von LED-Spots in einer Produktion.
Es handelt sich um 2 verschiedene LED-Spots (RGBW & WW).
Mit einem PIC16F1938 sollen die Stromaufnahme-Werte aufgenommen.
Nun zu meiner Frage:
Wie messe ich die Stromaufnahme der einzelnen Farben mit dem 
Mikrocontroller, und wie können diese dann anschließend verglichen bzw. 
im Programm für in Ordnung befunden werden?

Dies ist das bisherige Programm:
1
void led_on(char x){
2
     PORTB = x;                                    //LED-ON
3
//     if(){
4
//              RA0_bit;
5
//     }
6
     Delay_ms(2500);                               //Time of LED-ON
7
     PORTB = 0;                                    //LED-OFF
8
     Delay_ms(500);                                //Time of waiting for next LED-ON
9
}
10
11
void main(){
12
     PORTB = 0b00000000;
13
     ADC_Init();
14
     while(1){
15
              Delay_ms(100);
16
              if(PORTB == 0b00010000){
17
                       PORTB = 0b00000000;
18
                       PORTB = 0b01000000;         //Yellow LED on (IN WORK)
19
                       led_on(0b00000001);         //White LED_on
20
                       led_on(0b00000010);         //Red LED_on
21
                       led_on(0b00000100);         //Blue LED_on
22
                       led_on(0b00001000);         //Green LED_on
23
              }
24
     }
25
}

: Bearbeitet durch Moderator
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Tomi L. schrieb:
> Nun zu meiner Frage: Wie messe ich die Stromaufnahme der einzelnen
> Farben mit dem Mikrocontroller, und wie können diese dann anschließend
> verglichen bzw. im Programm für in Ordnung befunden werden?
Welche Hardware hast du denn für diese Aufgabe?

> Dies ist das bisherige Programm:
Und was soll das machen? Blitzschnell nacheinander die LED einschalten, 
die grüne leuchten lassen, dann wartenund wieder von vorn beginnen? du 
brauchst erst mal kein "Programm", sondern ein brauchbares Konzept. 
Dann, wenn die Hardware durchdacht, realisiert und fertig ist, wird 
programmiert.

BTW: für C-Code bitte die [c] Tags verwenden

: Bearbeitet durch Moderator
von Tomi L. (thomas_w669)


Angehängte Dateien:

Lesenswert?

Die Hardware kann beliebig gewählt werden, aber im beigefügten Bild ist 
eine Idee wie es dann später Realisiert werden könnte.

Dieses Programm war für die Version 1 des Projekts, bei dem nur 
Überprüft wurde ob die einzelnen LEDs funktionieren.

von Georg (Gast)


Lesenswert?

Tomi L. schrieb:
> im beigefügten Bild ist
> eine Idee wie es dann später Realisiert werden könnte

Da werden LEDs geschaltet, aber wo wird da ein Strom gemessen? Aber 
vielleicht bin ich auch einfach zu blöd.

Georg

von Stefan F. (Gast)


Lesenswert?

OMG!

Die LED's sind falsch gepolt.
Es fehlen Vorwiderstände vor den Transistoren.
Es fehlen Abblock-Kondensatoren.
Wofür R1 gut sein soll, musst du mal erklären.

Wie viel Strom nehmen die (externen) LED's denn auf? Enthalten sie 
Vorwiderstände?

Es fehlen Shunts zum Messen der Stromstärke:
1
                        zur LED mit Vorwiderstand
2
                         |
3
                         |
4
              4,7k     |/
5
µC output o----[===]---|
6
                       |\>
7
                         |
8
             1k          |
9
ADC in o----[===]--------+
10
                         |
11
                        |~|
12
                        |_| 1 Ohm
13
                         |
14
                        GND
Bei 1A misster der ADC 1 Volt.

Der 1k Ohm Widerstand beschützt den ADC vor Überspannung, wenn aufgrund 
von Überlast/Kurzschluss der 1 Ohm Shunt durchbrennt.

von Stefan F. (Gast)


Lesenswert?

Wie man den ADC programmiert, kannst in der Artikelsammlung auf dieser 
Seite nachlesen, und im Datenblatt des Mikrocontrollers.

von Stefan F. (Gast)


Lesenswert?

Ich habe noch zwei Fehler gesehen:
Am Stecker SV1 musst du die Beschriftungen korrigieren.

Statt -5V muss es GND heissen.
Statt -24V muss es auch GND heissen.

Die beiden GND Leitungen müssen miteinander verbunden sein, sonst 
funktionieren die Transistoren nicht.

Jetzt haben wir schon fast mehr Fehler als Bauteile. SCNR

von Tomi L. (thomas_w669)


Lesenswert?

Stefan U. schrieb:
> Jetzt haben wir schon fast mehr Fehler als Bauteile.

Ich habe auch geschrieben, dass es sich um eine Idee handelt. Ich habe 
weder auf Dimensionierung noch richtige Bauteilbezeichnungen geachtet. 
R1 ist ein Vorwiderstand, da orange +24V die positive Versorgung für den 
Spot bzw. der Versorgungsanschluss vom Spot ist.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich würde auch die passenden und üblichen Labels für die 
Versorgungsspannungen und GND vorschlagen. Derzeit ist der Schaltplan 
nur sehr holprig lesbar...

von Harald W. (wilhelms)


Lesenswert?

Tomi L. schrieb:

> Stromaufnahme von LED Spots mit Microkontroller messen und vergleichen?

Ich würde da eher ein Strommessgerät (Multimeter) nehmen, aber wenn
Du auf Genauigkeit keinen grossen Wert legst...

von Tomi L. (thomas_w669)


Lesenswert?

Stefan U. schrieb:
> Wie viel Strom nehmen die (externen) LED's denn auf? Enthalten sie
> Vorwiderstände?

Die Stromaufnahme unterscheidet sich bei den Type und Farben:
RGBW:
Weiße LEDs = 185-200mA
Rote LEDs = 70-80mA
Grüne LEDs = 60-70mA
Blaue LEDs = 55-80mA

WW:
Weiße LEDs = 155-180mA

von Tomi L. (thomas_w669)


Lesenswert?

Harald W. schrieb:
> Ich würde da eher ein Strommessgerät (Multimeter) nehmen, aber wenn
> Du auf Genauigkeit keinen grossen Wert legst...

Ziel dieses Projekts ist es aber den Test automatisch durchlaufen zu 
lassen, und am Ende eine rote oder Grüne LED leuchten zu lassen für OK 
oder NOK.

von spess53 (Gast)


Lesenswert?

Hi

>Die Stromaufnahme unterscheidet sich bei den Type und Farben:
>RGBW:

Ich halte die Stromaufnahme für ein zweifelhaftes Kriterium. 
Entscheidend ist, was herauskommt.

MfG Spess

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tomi L. schrieb:
> Die Stromaufnahme unterscheidet sich bei den Type und Farben
Eine LED nimmt keinen Strom auf. Sondern sie leuchtet, weil du Strom 
durch sie hindurch schickst... :-/

Oder du präzisierst den Satz:
> Die Stromaufnahme unterscheidet sich bei den Type und Farben ...
... bei gegebenem Vorwiderstand und gleichbleibender Spannung.

von Rene K. (xdraconix)


Lesenswert?

Kann man überhaupt anhand der Stromaufnahme feststellen ob eine LED 
ordnungsgemäß funktionert oder nicht?! grübel

Gut, ist sie defekt fließt kein Strom durch die Diode, aber leidet sie 
und nimmt sich halt die z.b. 50mA weil der R sie begrenzt - leuchtet 
aber halt nur mit halber Kraft. Ist sie ja dennoch defekt und das lässt 
sich nicht feststellen - oder sehe ich das falsch?!

von Stefan F. (Gast)


Lesenswert?

> Kann man überhaupt anhand der Stromaufnahme feststellen ob eine LED
> ordnungsgemäß funktionert oder nicht?!

Nein. Ich habe schon LED's gesehen, die Strom fließen lassen und dennoch 
dunkel bleiben.

Für 200mA und 24V sind die Transistoren 2N706 knapp bemessen. Ich würde 
hier lieber einen BC337-40 verwenden oder einen viel stärkeren MOSFET, 
damit es Kurzschlussfest wird (in Kombination mit einem Strombegrenzten 
Netzteil).

von Tomi L. (thomas_w669)


Lesenswert?

Rene K. schrieb:
> Kann man überhaupt anhand der Stromaufnahme feststellen ob eine LED
> ordnungsgemäß funktionert oder nicht?!

Es wird zusätzlich noch die Helligkeit überprüft (nm).

von Rene K. (xdraconix)


Lesenswert?

Tomi L. schrieb:
> Es wird zusätzlich noch die Helligkeit überprüft (nm).

Die Helligkeit nutzt dir nicht viel, das Spektrum ist wichtig - gerade 
bei den RGBW - geht das über den gleichen µC?

von Tomi L. (thomas_w669)


Lesenswert?

Rene K. schrieb:
> Die Helligkeit nutzt dir nicht viel, das Spektrum ist wichtig - gerade
> bei den RGBW - geht das über den gleichen µC?

Ja sollte über den gleichen IC gehen.
Wieso geht es über die Helligkeit nicht?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tomi L. schrieb:
> Wieso geht es über die Helligkeit nicht?
Weil eine grüne LED gleich hell leuchten kann wie eine rote LED. 
Trotzdem würde schon eine einzige gleich helle rote LED unter 5000 
grünen LEDs sofort auffallen...

von Tomi L. (thomas_w669)


Lesenswert?

Lothar M. schrieb:
> Weil eine grüne LED gleich hell leuchten kann wie eine rote LED.
> Trotzdem würde schon eine einzige gleich helle rote LED unter 5000
> grünen LEDs sofort auffallen...

Darum werden die nm gemessen. Und ich möchte diese später im Programm je 
nach Farbe aussortieren, wenn sie nicht in Range sind.

von Georg (Gast)


Lesenswert?

Tomi L. schrieb:
> Darum werden die nm gemessen

Nach deinen bisherigen Unterlagen übernimmst du dich da fachlich ganz 
gewaltig. Und für eine Gut/Schlecht-Entscheidung sind ja noch Eingaben 
der Sollwerte und Grenzen nötig, also Display, Tastatur, Bediensoftware 
- von deiner extrem fehlerhaften Skizze ist es bis dahin noch ein 
unendlich langer Weg, den man nicht hier im Forum mit dir gehen kann.

Meine Empfehlung daher: an jemanden übergeben, der Ahnung von so etwas 
hat.

Georg

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Georg schrieb:
> Meine Empfehlung daher: an jemanden übergeben, der Ahnung von so etwas
> hat.

Oder Interesse zeigen.

Ein 'Ist doch nur die Idee ... schöner zeichnen kann ich Das, wenn's 
denn funktioniert' ist eher für die Tonne.

Zum Problem:
Warum willst Du die Wellenlänge messen?
Sind Die nicht schon vom Hersteller irgendwie vorgegeben?
Sofern Dieser eine QS-Abteilung hat, sollten diese Vorgaben ggf. auch 
passen.
Zumindest in der Bucht gibt es Farb-Erkennungs-ICs (... mit dem 
Anhängsel 'Arduino'), wenn ich mich recht entsinne, geben Diese je nach 
Helligkeit der gewählten Farbe ein PWM aus - R, G, B, (W?), Summe kann 
gewählt werden.
Oder ob die Platine I²C war, ist mir nicht mehr bekannt.

Damit könntest Du dann, je Farbe, wenn Du den Strom erfasst (ok, 
extern), die Helligkeit bei diesem Strom ermitteln.

Zumindest ein kleines Display, Welches Dir die aktuellen Werte 
ausspuckt, solltest Du vorsehen, damit Du die Grenzwerte im Programm 
anpassen kannst.

Wenn dann noch zwei Beinchen für die Rot/Grün-LED für Ausschuß/Bestanden 
frei sind, war's Das ja schon fast.

MfG

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Rene K. schrieb:
> Die Helligkeit nutzt dir nicht viel, das Spektrum ist wichtig - gerade
> bei den RGBW - geht das über den gleichen µC?

Was willst du mit diesem Aussage-Frage-Konglomerat sagen?

Die Photodiode sieht das ganze Spektrum und solange keiner die LEDs 
falsch angeschlossen hat, kann man die RGBW-LEDs sequentiell messen. Ob 
eine weiße LED warm- oder kaltweiss ist wird man natürlich nicht raus 
kriegen. Aber alternativ gibt es genug Sensoren, die zumindest R,G und B 
separat messen. Bei einer Photodiode kann man natürlich mit einem 
Filterrad davor auch Farbanteile trennen.

von Harald W. (wilhelms)


Lesenswert?

Stefan U. schrieb:

> Ich habe schon LED's gesehen, die Strom fließen lassen und dennoch
> dunkel bleiben.

Vielleicht sind das ja moderne Versionen von dieser hier:
https://www.familie-ahlers.de/wissenschaftliche_witze/dunkelbirne.html

von Harald W. (wilhelms)


Lesenswert?

Tomi L. schrieb:

> Darum werden die nm gemessen. Und ich möchte diese später im Programm je
> nach Farbe aussortieren, wenn sie nicht in Range sind.

Ein Spektrometer wird aber nicht ganz billig:
https://de.wikipedia.org/wiki/Spektrometer

Vor allen, wenn Du wirklich die Nanometer messen wiollst.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Soeben wieder gefunden:
"TCS230 TCS3200 Color Recognition Sensor Farberkennung Modul MCU 
Arduino"
eBay 201802904836

Eine direkte Messung der Wellenlänge ist Das natürlich nicht, aber eine 
Art Spektrum sollte sich damit erstellen lassen - vor Allem, wenn sowohl 
die Vorgabe, wie die Messobjekte damit erfasst werden.

MfG

von Ingo Hütlein (Gast)


Lesenswert?

Schönen guten Tag, Tomi.

Du willst RGBW und WW Spots ausmessen, ob sie in Ordnung sind. Das Ganze 
soll in einer einfachen Aussage "Gut" oder "Schlecht", signalisiert mit 
einer roten und grünen LED, münden.

Um heraus zu finden, ob eine LED korrekt arbeitet, musst Du einen 
bestimmten Strom einprägen und die an der LED abfallende Spannung 
messen. So kannst Du auch defekte LEDs erkennen, die nicht ganz sauber 
arbeiten. Wenn die LED einen Schaden hat, wird sie wohl nicht mehr ganz 
der Kennlinie folgen.

Ich würde so vorgehen:

Entweder kann ich mit meinem Tester direkt den Strom in die LED auf der 
Platine einprägen, oder einen auf der Platine befindlichen Stromregler 
von aussen beeinflussen, um den Strom zu ändern.

Dann gehst Du z. B. in 10mA-Schritten vor, und vergleichst die an der 
LED abfallende Spannung mit einer Tabelle, die Du Dir vorher in einer 
Tabellenkalkulation aus dem Datenblatt erzeugt und im Speicher abgelegt 
hast.

Mit der Fotozelle kannst Du messen, ob die LED überhaupt leuchtet, und 
wie stark. Denkbar wäre auch, den Microcontroller mit sagen wir 100 
Stück LED-Spots aufkummuliert die verschiedenen Farben "anzulernen", und 
aus den gemessenen Werten einen "Gut"-Wertebereich zu bilden.

Mit zwei Fotozellen kannst Du leichter messen; eine Zelle misst die 
Umgebungshelligkeit, der Wert wird dann subtrahiert.

Beste Grüße!
Ingo.

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
Noch kein Account? Hier anmelden.