Forum: Projekte & Code Transistortester mit AVR


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> misser:
Thanks for your good description about the error with the transistors 
with internal diodes.
But I wrote the explanation for this some posts before:
The BU508 has a low resistance between base and emitter (I didnÄt find a 
value in the datasheets, but I think ist is below 100 ohms).
Because of this resistor, the BU508 can't be switched by the 680 ohm 
resistor. So,it will always be detected as 2 diodes, or as a broken 
part.
I'm sorry, but with the existing hardware there is no way to solve this 
problem.

If there is a high (or infinite) restistance between base and emitter, 
the pin assignment is detected correctly. I tested it with a BD675 
darlington. This transistor has an internal diode (collector to emitter) 
and an 8,12kOhm resistor from base to emitter. The pin assignment was 
detected correctly in all 6 possibilities.

I know that drain and source of JFETs are often detected incorrectly 
(drain=source and source=drain). But somewhere I red that drain and 
source of JFETs are (almost) equal, so it ist impossible to detect them.
I also know the detection of triacs doesn't always work. But I had only 
relatively large triacs (BT136 and BT139) for testing. I thought they 
just need to much gate current.
The MAC97A is a small triac with just 5mA of gate current. But the 
problem is that there are many ways to switch a triac. That needs some 
more testing. After getting some small triacs I will try to solve this 
problem...

But the detection of MOSFETs (enhancement and depletion mode) worked 
fine in all my attempts. Could you please say the type of MOSFET that 
caused errors?

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt mal die Messung der Gate-Kapazität mit eingebaut.
Der Messbereich ist 0...655nF mit 0,01nF Auflösung.
Allerdings werden nur Mosfets bis ca. 120nF zuverlässig erkannt, darüber 
wird er (fälschlicherweise) als NPN-Transistor erkannt, da die 
Gate-Ladezeit zu hoch wird.
120nF haben aber allenfalls richtig dicke IGBTs (die in der 
"Brick-Bauform", also INT-A-PAK o.ä.), mit meist über 1000V und deutich 
über 200A Belastbarkeit. Solche Monster werden eben nicht mehr 
zuverlässig erkannt...

Die Genauigkeit ist allerdings nicht besonders hoch (vielleicht +/- 
10%).
Durch Abstimmung der Berechnungsfaktoren (Defines oben im Code) auf den 
verwendeten AVR und die verwendeten Widerstände kann die Genauigkeit 
aber verbessert werden.
Dazu einen MOSFET mit geringer Gate-Kapazität anschließen. Von Gate nach 
Source wird noch ein präziser Kondensator mit ca. 100nF geschaltet.
Nun muss ein Messwert von etwas über 100nF angezeigt werden. Wenn nicht, 
kann es an den Defines richtig justiert werden.

Ich stelle dier Version erstmal nur hier rein. Wenn ihr sie so gut 
findet, werde ich sie auch in die "offizielle" Version übernehmen und 
den Artikel entsprechend ändern.

von sensationell (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ein riesen Respekt an Markus für seine sensationelle Arbeit!
Habe die hier oben angehängte .hex auf meinem Aufbau geflasht (Mega 8) 
und die Gate Kapazität wird erstaunlich genau (auch mit Dummy Kapazität) 
gemessen. Getestet habe ich sämtliche IRF Typen. Bin begeistert!

Lg,

Thomas

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
==>Markus ;
   Thanks very much for your replies and for the new soft ...
   How about transistor+diode:
    ** I've tested BD679 (darlington+diode) and the tester gives good 
result .
    ** BU508DF is a transistor+diode(between C and E) but this device 
has'nt shunt resistor btween B and E , so this transistor can switched 
easily . ( otherwise : BU2508DF has shunt resistor between B and E wich 
lets this device can't be switched ).
    How about resistor: it is't possible to show resistor value from 1 
ohm (instead of 160 ohm)  to about 900 kohm or 1 megohm ?
thanks.

von Hubert G. (hubertg)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir gestern die neue Version geladen und bin weiterhin 
begeistert.
Beim Vergleich von zwei Geräten, aufgebaut mit 20% Widerständen, nichts 
ausgemessen, unterscheiden sich die angezeigten Werte nur minimal.

Nochmals vielen Dank an Markus das er dieses klasse Projekt hier herein 
gestellt hat.

Hubert

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hubert G. schrieb:
> aufgebaut mit 20% Widerständen
Gibts solche tatsächlich oder ist das eine Spezialanfertigung?

Auf Vorrat kaufe ich mir nur noch 1%, weil die paar Cent/100Stück 
wirklich irrelevant sind.

von Hubert G. (hubertg)


Bewertung
0 lesenswert
nicht lesenswert
@Alexander Schmidt
Die Widerstände haben einen silbernen Toleranzring, sind also 10%.
Ich habe aber tatsächlich noch etliche Widerstände ohne Toleranzring 
herumliegen.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Es gibt mal wieder was neues...
Die Messung der Gate-Kapazität ist jetzt auch in der "offiziellen" 
Version und ich habe das Funktionsprinzip auch im Artikel beschrieben.

Und der Messbereich der Widerstandsmessung wurde nach unten hin 
erweitert.
Nun können Widerstände ab 5 Ohm gemessen werden. Vorher waren es min. 
165 Ohm.
Die obere Grenze von 910kOhm ist so geblieben. Vielleicht versuche ich 
auch noch mal, die zu erhöhen.
Die Erhöhung wäre ja kein Problem, aber danach muss man wieder alles 
testen, ob es dadurch zu Fehlerkennungen kommt. Das mache ich aber 
demnächst mal.

Und die Messung der Dioden-Durchlassspannung wurde auch verbessert. Ich 
habe nämlich vorher nicht berücksichtigt, dass an einem auf "low" 
gelegten AVR-Pin nicht ganz 0V anliegen. Mit dem 680-Ohm-Widerstand 
gegen Plus steigt die Spannung auf immerhin 100mV, was für einen 
beträchtlichen Messfehler sorgt.
Jetzt wird die Spannung am Low-Pin eben auch gemessen und von der 
Spannung am Pin, der über 680 Ohm auf Plus gelegt wird abgezogen. Damit 
ist dieser Fehler kompensiert.
Diese Änderung war für die Widerstandsmessung übrigens auch wíchtig.
Ich habe dann auch noch mal mit vielen verschiedenen Widersränden die 
Widerstandsmessung getestet.
Links steht der wert, den der Transistortester ermittelt hat, Daneben 
(in Klammern) der mit einem Multimeter gemessene Wert:

9 (10) Ohm
11 (12) Ohm
17 (18) Ohm
21 (21,5) Ohm
38 (39) Ohm
97 (98,5) Ohm
215 (218) Ohm
657 (667) Ohm
978 (994) Ohm
2632 (2672) Ohm
4274 (4338) Ohm
5399 (5517) Ohm
9860 (9947) Ohm
11968 (12069) Ohm
15497 (15330) Ohm
18121 (18126) Ohm

19,1k (19,9k) Ohm
20,6k (21,6k) Ohm
31,8k (32,6k) Ohm
37,7k (38,6k) Ohm
45,8k (46,5k) Ohm
78,2k (79,1k) Ohm
97,6k (98,9k) Ohm
195,9k (197,7k) Ohm
463,6k (467,9k) Ohm
694,1k (705,9k) Ohm

Fast im gesamten Messbereich ist die Genauigkeit besser als +/- 5%, 
häufig sogar besser als +/- 2%.
Damit ist die Widerstands-Messfunktion natürlich kein Ersatz für ein 
gutes Multimeter. Dafür war sie aber auch gar nicht gedacht...
Um mal schnell einen Widerstand ungefähr zu bestimmen, ist sie aber 
recht praktisch, finde ich.

von Alexander S. (agentbsik)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

ich habe das Problem, dass mir der Tester ab und zu anstatt eines 
Mos-E-Fet einen Mos-D-Fet anzeigt.  Dieser Fehler tritt auf, wenn ich 
Pin 1 an Gate, Pin2 an Source und Pin3 an Drain habe. Wenn ich diese 
Belegung ändere, dann zeigt mir das Gerät wieder alles korrekt an. Wie 
kann das sein?

Außerdem besteht das Problem, dass er mir ab und zu einen Widerstand 
(z.B 190k) an Stelle eines Transistors oder einer Diode anzeigt.

Habe mein Layout schon mehrmals angeschaut (Lochraster), aber keinen 
Fehler finden können. Wenn ich die Funktion der Widerstandsmessung 
ausdokumentiere, dann läuft die Geschichte gut (das Problem mit dem 
Mos-E und Mos-D Fet besteht dennoch).


Gruß Alex

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> Alexander Sewergin:
Hast du auch die neue Version der Firmware, die ich gestern auf die 
Artikel-Seite hochgeladen habe?
Mit der würde es mich ziemlich wundern, wenn eine Diode als Widerstand 
erkannt wird. Da werden Widerstände nämlich in beide Richtungen 
getestet, und nur wenn die Ergebnisse un unter 10% nach oben oder unten 
abweichen wird es als "Widerstand" akzeptiert.
Auch mit einer sehr starken Diode (1600V/35A Brückengleichrichter) 
konnte ich keine Probleme feststellen. Wenn man einen Widerstand 
parallel zu der Diode legt, passiert über ca. 30kOhm gar nichts. Von 
etwa 200 Ohm bis 30kOhm wird es als "2 Dioden antiparallel" erkannt, 
unter ca. 200 Ohm als Widerstand (weil die an der Diode anfallende 
Spannung nicht mehr reicht, um sie zum leiten zu bringen). Einen 
Widerstand von 190kOhm hat der Tester da aber nie angezeigt

Das Problem, dass ein Mos-E-Fet als Mos-D-Fet erkannt wird tritt auf, 
wenn man einen Widerstand von unter 33kOhm von Drain nach Source legt. 
Dann passiert es unabhängig von der Belegung.
Mit welchem Mosfet-Typen hattest du denn die Probleme. Ich konnte es mit 
IRF540, IRFIZ44N und IRFD024 nämlich nicht feststellen.
Nur mit einem Elko von einigen µF oder einem Widerstand von unter 33kOhm 
von Drain nach Source konnte ich das Problem feststellen.

Hast du auch die Flussmittelreste vom Löten zwischen den Test-Pins 
entfernt? Ich vermute nämlich mal, dass es daran liegt. Flussmittel ist 
nämlich auch ein wenig leitfähig, möglicherweise stark genug um zu den 
genannten Problemen zu führen.

von Michael L. (michaelx)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich habe mal meine Erweiterung der Software für LCD mit erweitertem 
Temperaturbereich (negative Kontrastspannung) in Markus aktuelle Version 
eingebaut.

Alles weitere in der Schaltung bzw. in meinem alten Beitrag:
Beitrag "Re: Transistortester mit AVR"

@ Markus F.
Kannst du evtl. mal über die Änderung drüberschauen? In meiner ersten 
Version hatte ich vor den zeitkritischen Stellen noch nicht den 
Interrupt vorrübergehend abgeschaltet. Zwar hatte es wohl kaum 
Auswirkungen, aber ist sicher schon so. Ich hoffe, jetzt alle und v.a. 
die richtigen Stellen gefunden zu haben.

Falls jemand die Version nachgebaut und verifiziert hat, könnte man die 
Erweiterung ja im Artikel übernehmen.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> Michael L.:
Der Code sieht eigentlich ganz gut aus. Was mir daran aber nicht so 
gefällt, sind die vielen AND- und OR-Befehle für den WAVE_PIN.
Damit bekommt man das Problem, dass das Programm nicht mehr in einen 
ATMega48 passt. Für die Mega48-Version könnte man diese Funktion 
natürlich rausnehmen.
Das würde aber für einen riesigen Salat von #ifdef-Blöcken sorgen, oder 
man macht gleich eine eigene CheckPins-Funktion für den Mega48. So 
richtig optimal ist das aber beides nicht. Und ehe man eine extra 
CheckPins-Funktion macht, kann man auch gleich wieder eine komplett 
eigene Version der Firmware für den Mega48 machen.
So hatte ich es anfangs, und es macht wenig Spaß eine Änderung (z.B. 
Bugs beheben oder neue Features) in beide Firmware-Versionen zu machen 
und danach auch beide wieder komplett zu testen. Deshalb habe ich dann 
alles in eine Version gepackt, und durch simple Änderung des 
Zielcontrollers (über den Compiler-Parameter) wird die richtige Firmware 
für den jeweiligen Controller erstellt. Das finde ich ganz praktisch so 
und ich würde auch nur ungern wieder zu der vorherigen, umständlichen 
Methode wechseln.

Bitte verstehe das nicht falsch, aber ein kompletter Test der Firmware 
(mit ca. 100 Bauteilen und verschiedener Pin-Reihenfolge) dauert auch so 
schon über eine Stunde. Und so einen Test mache ich nach jeder größeren 
Änderung des Programms, und dabei treten meist auch einige Bugs auf, die 
dann behoben werden. Diese Korrektur könnte aber wieder an anderer 
Stelle einen Fehler geschaffen haben (ist mir schon mehrmals passiert), 
also kann man dann schon wieder fast von vorne anfangen zu testen...
Mit der jetzigen Firmware reichen dann zumindest in der Mega48-Version 
ein paar Stichproben aus, da beide Firmware-Versionen fast identisch 
sind, die Mega8-Version unterstützt nur mehr Bauteile.
Eine extra Version für den Mega48 würde aber bei jeder Änderung auch da 
einen kompletten Test erfordern, und das macht wenig Spaß.

Lange Rede, kurzer Sinn: Ich würde das mit der Ladungspumpe an PC4 
anders lösen:
In dem Timer-Interrupt wird jedes Mal PC4 auf Ausgang gesetzt.
In einer globalen Variable wird der vorherige Status des Pins (high oder 
low) gespeichert, dann wird der jeweils andere Status gesetzt und die 
globale Variable entsprechend geändert.
So etwa:
uint8_t WaveVal; //Global; vorheriger Pin-Status

ISR(TIMER0_OVF_vect)
{
  DDRC |= (1<<WAVE_PIN);
  if(WaveVal == 1) {
    PORTC &= ~(1<<WAVE_PIN);
    WaveVal = 0;
  } else {
    PORTC |= (1<<WAVE_PIN);
    WaveVal = 1;
  }
}

Natürlich ist diese Lösung weniger elegant, dafür aber recht kompakt und 
(wenn es nicht mehr reinpasst) auch mit ein paar wenigen #ifdef's aus 
der Mega48-Version zu entfernen.
Der große Nachteil ist eben, dass kein sauberer Rechteck mit genau 50% 
Tastverhältnis an PC4 rauskommt. DDRC wird ja in der CheckPins-Funktion 
auch regelmäßig umgeschaltet. Und da der Interrupt mehr Zyklen braucht, 
wird die Genauigkeit bei zeitkritischen Messungen (z.B. Gate-Kapazität) 
schlechter. (Da der Interrupt aber konstant viele Zyklen verbraucht, 
kann ma diesen Fehler aber auch herausrechnen.)
Funktionieren würde es so vermutlich schon. Die meiste Zeit verbringt 
der Tester eh mit Warten oder ADCs auslesen, und währenddessen wird das 
DDR von der CheckPins-Funktion nicht umgeschaltet. Genug Spannung für 
das LCD dürfte an der Ladungspumpe auf jeden Fall entstehen.

=> Alle:
Übrigens bin ich gerade dabei, eine Testfunktion für Kondensatoren 
einzubauen. Der Messbereich wird wohl so 0,2nF bis 1000µF. Ganz fertig 
ist es aber noch nicht...

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thanx Markus,
  The tester(I'm using atmega8) is better now with resistor from 10 ohm
to 900 kohm and with measuring of capacity of mosfet....
  How about UJT ?
  Can the tester measure condenser up to 1000 µF soon ?

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb:
>
> => Alle:
> Übrigens bin ich gerade dabei, eine Testfunktion für Kondensatoren
> einzubauen. Der Messbereich wird wohl so 0,2nF bis 1000µF. Ganz fertig
> ist es aber noch nicht...

suuper idee, baust du eine vorschaltung um wie hier ?

[Beitrag "LC-METER / LC-Messgerät ATmega8 Assembler"]

[Beitrag "LC-Messgerät"]

[Beitrag "Re: LC-Meter Frage"]

oder was eigenes ?

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> suuper idee, baust du eine vorschaltung um wie hier ?
Nein, das geht mit der jetzigen Hardware...
Der Kondensator wird über einen Widerstand (680 Ohm oder 470kOhm) 
langsam geladen. Dabei wird die Zeit gemessen, bis der Portpin, an dem 
der Kondensator hängt, von 0 aus 1 schaltet. Das passiert bei recht 
genau 3,6V. Daraus kässt sich dann die Kapazität berechnen.
Wirklich exakt ist die Messung damit natürlich nicht, aber um die 
Kapazität ungefähr zu bestimmen reicht es aus.


Die Kapatitätsmessung ist jetzt soweit fertig und funktioniert auch ganz 
gut. In dem anhehängten Archiv sind wie üblich der Sourcecode und auch 
die hex- und eep-Dateien für den AVR.
Die Kapazitätsmessung ist aber nur in der ATMega8-Version enthalten.
Der Messbereich ist, wie schon angekündigt, ca. 0,2nF bis 1000µF. Noch 
größere Kondensatoren werden als 2 antiparallele Dioden erkannt. Meiner 
Meinung nach ist der Messbereich bis 1000µF aber ausreichend.
Und bitte Kondensatoren vor dem Anschließen an den Tester entladen, beim 
Anschließen geladener Kondensatoren könnte der Controller beschädigt 
werden...

von Michael L. (michaelx)


Bewertung
0 lesenswert
nicht lesenswert
=>  Markus F.:

Ich werde mir noch mal Gedanken machen, wie man den Code durch 
geschickte Verwendung eines Macros für den Mega48 kastrieren kann, ohne 
den Code zu unübersichtlich zu machen.

Aber evtl. kannst du die Version für den Mega48 eh recht bald beerdigen, 
wenn immer mehr Features hinzukommen, die nur beim Mega8 drin sind. Denn 
für die 5-10 Cent, die man mit dem Mega48 spart, lohnt sich zum Einen 
der Aufwand deinerseits wohl kaum noch, eine Minimalversion zu 
generieren. Und auf der anderen Seite wird wohl bald der Speicher auf 
auf dem Mega48 ausgehen, wenn noch weitere Anpassungen und Korrekturen 
gemacht werden müssen.

von Hubert G. (hubertg)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Habe gerade getestet, bei mir zeigt die Kondensatormessung immer um etwa 
10% zu viel an. Spielt da vielleicht schon die Toleranz in der 
Oszillatorfrequenz eine Rolle?
Ansonst bin ich mehr als nur zufrieden mit dem Gerät. Es fehlt nur das 
wie im Anhang.

Hubert

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
warum auch immer, funktioniert bei mir nciht, mal wird als "2 
antiparallele Dioden" erkannt, mal "kein, unbekann ....", aber nie als 
C.

Getestet in jeder test pin kombination mit 100nf styroflex, 2.2µF, 
3.3µF, 10µF <- elkos. Jedesmal natürlich C abgeklemmt, kurzgeschlossen.

Habe deine hex/eep genommen und reinprogged, hardware ist 1:1 die deine 
version (ext. versorgung 5V)

Transistor test und wiederstand test funktionieren ohne probleme.

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Fantastic !!!! Wounderfuuuuuuul !!!
   The tester can really measure  condenser from 220 pF to up  1000 µF:
   I have just tested 220pF; 330pF; 1nF; 10nF; 100nF; 1µF; 10µF; 100µF 
(about 2 seconds) and 1000µF (about 7 seconds)...
   1)It isn't possible to be until about 10 mF=10000µF ?(but this needs 
many seconds to show the result I think)
   2)The tester cannot until now detect the transistor with internal 
diode like BU508D correctly (or simply a transistor BC550+diode between 
C and E)
  Thanksssssss very very much Markus .....

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Thomas R. schrieb:
> warum auch immer, funktioniert bei mir nciht, mal wird als "2
> antiparallele Dioden" erkannt, mal "kein, unbekann ....", aber nie als
> C.
>
> Getestet in jeder test pin kombination mit 100nf styroflex, 2.2µF,
> 3.3µF, 10µF <- elkos. Jedesmal natürlich C abgeklemmt, kurzgeschlossen.
>
> Habe deine hex/eep genommen und reinprogged, hardware ist 1:1 die deine
> version (ext. versorgung 5V)
>
> Transistor test und wiederstand test funktionieren ohne probleme.

Hat sich erledigt, der atmega8 den ich drin hatte reagiert jetzt gar 
nicht mehr. Ein neues programmier und schon geht, C test natürlich auch.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> misser:
> The tester cannot until now detect the transistor with internal
> diode like BU508D correctly (or simply a transistor BC550+diode between
> C and E)
I tried a BC547C (npn) and BC558C (pnp) with a diode between C and E, 
and it worked as it should work (the tester shows NPN/PNP with a hFE of 
~500, ~700mV Uf, and the correct pin assignment, and it also shows the 
diode icon to signalize that the transistor has an internal diode).

For detection of bigger capacitors the detection of diodes must be 
changed, because capacitors above 1000µF are currently being detected as 
two antiparallel diodes.
Perhaps I'll try this soon...

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thank u Markus;
 1) The tester now is working well,it tested transistor with internal 
diode with success as you said;
  The problem was in the three resistors 680 ohm and 470 kohm:
it should be selected with great precision by using good ohmeter or with
better tolerance 1% instead of 5% or 10%.
 2) The tester needs to add the support of UJT .
 3) The tester can measure now resistor from 5 ohm to up to 10 Megohm...
 4) The tester can measur condenser from 0.20 nF ( 10 pF resolution) to 
1000 µF ( 10 nF resolution) ....we hope that can be increased to 5000 µF 
at least .
Thanx.

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
"it should be selected with great precision by using good ohmeter"
If the problem was REALLY in resistors precision, it is no good to 
select from 5% resistors because they will change real resistance during 
time, by temperature change etc... You can simply get new (not used) 
resistor, measure it, then solder it's pins and measure again (warm and 
cold). You see all.:(

PS: I'm from Russia, so my English poor enough and with errors. But my 
German is simply hirrific.

von Klaus (Gast)


Angehängte Dateien:
  • preview image for TT.jpg
    TT.jpg
    140 KB, 9221 Downloads

Bewertung
0 lesenswert
nicht lesenswert
@Markus F.
Danke für das Projekt.

Habe den Tester mit automatischer Abschaltung aufgebaut. Allerdings 
schaltet er schon nach ca. 2Sekunden ab. Ich benötige Hilfe!

von micha (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sicher, dass die richtige Taktquelle (intern 1 Mhz) ausgewählt ist?

von Blackbird (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ein sehr schönes Projekt.
Mit der R- und C-Messung ist es bei mir DAS Universalgerät geworden.
Danke an Markus F.

Als Anregung für die mechanische Gestaltung der Meßspitzen:
Eine einzelne spitze Nadel (Meßspitze) in die ein Hand und eine doppelte 
(federnd wie eine Pinzette) in die andere Hand - und schon kann man 
recht fix nacheinander SMDs messen, die in wilder Ordnung auf dem Tisch 
liegen.

(Den Einschalter als Mini-Taste an der einzelnen Nadel befestigen.)


Blackbird

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hello,
==> Serge : As you said, the resistors may change -relatively- by time, 
temperature,soldering,its tolerance...So the solution is to make 
"autocalibration" in the soft ...
==> Markus : The tester cannot detect the "antiparallel diode" correctly 
so it shows this device sometimes as Resistor and othertimes as 
capacity(this problem was in the version of 27-08-2009 and 13-09-2009 , 
not in the version 03-07-2009 )... ((( I've used 2 diodes 1N4148,1N4007; 
and 2 led. )))
Thanx.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Yes, there were some problems with 2 antiparallel diodes, especially 
with LEDs. Sometimes they were detected as a resistor.

I've fixed this now, and I also extended the capacity range to about 
10mF. So now it is from 0.2nF to 10mF. This should really be enough. 
Above ~5000µF, the reading starts getting inaccurate; at 10mF I had 
about 10% error.

If the voltage of two antiparallel diodes is above 3.6 volts, it may 
still be detected as a resistor. But I don't think this causes problems.

von Winfried (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

klasse projekt! Ich werde es nachbauen. Als Idee: per serieller 
Schnittstelle oder USB verschiedene Messwerte an einen PC weiterleiten, 
der die Daten in einem Diagramm darstellt. So kann die Messkurve von 
Bauteilen dargestellt werden, um bei Bedarf mehr Details zu einem 
Bauteil zu bekommen. Ich habe mir den code noch nicht angeschaut ob das 
einfach einzubauen ist, oder ob die Methode der Bautailermittlung einen 
ganz anderen weg geht.

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thank you Markus,
 Just I hav tested some devices:
*** Condenser : OK OK 220p,10n,680n,10µ,470µ,1000µ(7 
s),2200µ(12s),4700µ(22s).....error generaly 2% to 10%.
*** 2LED anti : OK OK ....antiparallel
*** 2 diodes anti : the problem is still be !!! so with 2diodes of 
1N4148
or 1N4007 the tester shows "Widerstand R= 120 ohm " even we change the 
pin assignement.
  However, we shoud say that the tester is better now and very useful...
Thanksssssssssssss...

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
After  misser (Gast) message about resistor's precision I want to ask 
the honourable author Markus F.(5volt):
Is it really need to use resistors 680 ohm and 470 kohm  with
better tolerance 1% instead of 5% or not?
And what about 78L05? It's precision is 5% or 10%.
I've modified original scheme for use LP2951 - it's plenty nice for 
precise voltage adjustment and plus very low-drop voltage - less 0.6 V 
(typically < 0.2 V in this device) (78L05 - near 1.5 V). Better for 
battery use.
Plus Shutdown(Power-off) & Alarm inside.

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Widerstand==Resistor:
  I have another method to measure resistor ,
  rv1= voltage through 680 ohm ( antiparallel diode or resistor)
  rv2= voltage through 470 kilohm ( antiparallel diode or resistor)
  Because resistor has linear graph U=f(I) and diode hasn't:
** For resistor from 1 ohm to 6 kilohm we use 680 ohm so that
  (0.0049v<rv1*4.9<4.6v or 1<rv1<921) AND (rv2*4.9<0.065v or rv2<13)
   R=rv1/((1023-rv1)/680)
** For resistor from 6 kilohm to 11 megohm we use 470 kilohm so that:
  (rv1>920 or rv1*4.9>4.5v) AND (12<rv2<981 or 0.060v<rv2*4.9<4.8v)
   R=rv2/((1023-rv2)/680) .......if it is a diode will be not detected.

**** I have done a simple experience with  2diodes antiparallel 1N4148:
 =>through 680 ohm we read rv1=0.713v
    if it is a resistor , it must have value of R=113 ohm
 =>through 470 kilohm we read rv2=0.396v
    if it is a resistor , it must have value of R=40.4 kilohm.
Finally the condition to measure a resistor and not a diode or 
antiparallel diode is:
( (rv1<921)&&(rv2<13) ) || ( (rv1>920) && (12<rv2) && (rv2<981) )
What do you say Markus?

von Martin S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
mal ne Frage zur Messung von Kondensatoren:

Elkos sind doch gepolt, werden die dann nicht manchmal falschrum 
aufgeladen?

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
To misser (Gast):
I can't write "autocalibration" in the soft. It need minimum one 
parameter with reliable accuracy. So without hardware modification it is 
impossible, I  think. The simplest way in my opinion - accurately set 
Vcc and use it with precise resistors as Vref source. But is it really 
necessary? Stable soft better, because measurements are rough, for 
precise we must set emitter current for bipolar transistors, threshold 
current for MOSFET, etc. Trying to do this - makes monster device, not 
this little, simple, but very useful tester (thanks to Markus F.).

To Markus F. (5volt):
It seems to me, that your 10% error - negligible, electrolites have 
accuracy +- 10% in the best case, usually - -+20%. May be "error" in 
fact - real capacitance in it's tolerance.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> misser: Yes, this is a good idea. But the limit for measurung wirh 
the 680 ohm resistor is about 18k ohms, and not 6k ohms. I will try 
this...

=> Serge S.: I have tested two 3300µF capacitors. Each of them reads 
about 3400µF, a multimeter says ~3500µF. But both capacitors in parallel 
read only ~6200µF, but it should be 6800µF (2*3400µF). This error can't 
be caused by capactior tolerances.


Und: Ja, Elkos werden malchmal falsch herum geladen. Allerdings nur mit 
maximal 5V, was bei den kurzen Testzeiten eigentlich kein Problem 
darstellt. Nur bei längerer Falschpolung mit 5V bzw. Falschpolung mit 
höheren Spannungen wird die isolierende Oxidschicht im Elko deutlich 
geschädigt bis zerstört.

von Paul Baumann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich schau ihn an, den Mega 8:
Mensch, ob der das alles macht?!

Gar nicht lang gewartet
und das "Studio" gestartet...

Den EEPROM nur nicht vergessen,
denn sonst kann er ja nicht messen.

Widerstände, Kondensatoren,
die ich einst unterm Tisch verloren

Transistoren, Leuchtdioden
grüne und auch noch die roten

alle, alle sind gemessen,
hab' ich denn noch was vergessen?

Hab Dank für den Transistortester,
Markus F. , Du bist mein Bester!

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
==> Markus F.
Simplest minds about the phenomenon
3400µF + 3400µF = 6200µF

1. Capacitors were not fully discharged before measurement of their sum.

2. Self-polarization of capacitors. I've seen in my practice of 
TV-repair:
capacitor was discharged by my own hands, but less as 1 minute after it 
had about 0.5 V without any external charge. But it was on high-voltage 
capacitor (about 100 V). For low voltages I haven't such experience. But 
may be the case...

3. Self-training: I've seen as some seconds after turning voltage on 
electrolytic C had very big leakage current, then it decreases to 
acceptable but big value in less than 30 sec. Bad quality, long time of 
storage and so on... Very long time of storage (about 5-6 years) in my 
case. But after about hour under voltage (with current limiting 
resistor) it became to look good enough. After this I made special panel 
for capacitor's training/testing.
Big leakage seems as big capacitance in simple testers. After little 
training leakage became less and it seems as capacitance decrease.

Hint: multimeter's measurement of C is very rough. I have MY-68 - 
multimeter and VC-6013 capacitance-meter. The difference in 20% of C to 
any side between them is usual thing for electrolytes.
Don't worry about this. Your device is TESTER, not a precise bridge for 
sertification measurements and with $1,000,000 price.

Some about other things...
I have a question: Is it really need to use resistors 680 ohm and 470 
kohm  with tolerance 1% instead of 5% or not? What is your opinion as 
author?

von Michael_W (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle Nachbauer mit Reichelt-LCD-Displays:

Mit längeren Wartezeiten zwischen den Befehlen in LCD-Init() 
funktioniert die Initialisierung. Ich bin mal recht großzügig gewesen 
und gönne mir die Zeit. Beim Start fällt es nicht auf.

Damit läuft es auch mit dem LCD "Displaytech 162" (zweizeilig, je 16 
Zeilen) von www.Reichelt.de zuverlässig. Es wurden nur die Zeiten 
zwischen den Befehlen geändert und nicht die Befehle.

Wichtig scheint die Wartezeit zu ANfang zu sein. Hier gebe ich 50 ms.
void lcd_init(void)
{
    _delay_ms(50);    
  LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN1);   // Port auf Ausgang schalten
  // muss 3mal hintereinander gesendet werden zur Initialisierung
  _delay_ms(15);
  LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x03;
  lcd_enable();

  _delay_ms(5);
  lcd_enable();

  _delay_ms(5);
  lcd_enable();
  _delay_ms(5);
  LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
  _delay_ms(5);
  lcd_enable();
  _delay_ms(5);

  // 4Bit / 2 Zeilen / 5x7
  lcd_command(CMD_SetIFOptions | 0x08);

  // Display ein / Cursor aus / kein Blinken
  lcd_command(CMD_SetDisplayAndCursor | 0x04);

  // inkrement / kein Scrollen    
  lcd_command(CMD_SetEntryMode | 0x02);  
  lcd_clear();
}


von Layouter (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Read busy flag?

von Wigbert P. (wigbert) Benutzerseite


Angehängte Dateien:
  • BT.zip (81,9 KB, 1552 Downloads)
  • preview image for BT.jpg
    BT.jpg
    103 KB, 4641 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Ich bedanke mich bei Markus F. (5volt) für sein tolles Projekt
und bei Armin Diehl (ardiehl) für die Board-Vorarbeit.

Ich hab den TT(eigentlich ist es schon ein Bauteiltester)
auch mal als ein Wochenendprojekt nachgebaut.
Na ja, eigentlich ist das Bestücken in paar Minuten getan.

Ich hab das Board aus
Beitrag "Re: Transistortester mit AVR"
nachgeroutet und meinem LCD ohne Hintergrundbeleuchtung angepasst.
Die Leiterbahnen sind etwas dünner, Masseflächen wurden nachgearbeitet
und es sind 4 Drahtbrücken auf dem Board. Gleichrichter fand ein 
Rundgleichricher Anwendung.

Und weil ich immer etwas zurückgebe, wenn ich was kostenlos bekomme,
anbei mal meine Versionsunterlagen. Darin befindet u.a eine Exelliste
mit den Reichelt-Bauteil-Bestellnummern und eine PDF mit den
Fusebit-Haken für die Ponyprog. Fans.

Wigbert

von Michael_W (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Auch ich möchte mich für das kleine "Ding", das mich richtig begeistert, 
bei Markus F. bedanken. Ich habe es aufgebaut und es lief so ziemlich 
auf Anhieb.
Bei uns im Amateurfunk-Ortsverband Soest (www.qsl.net/dk0ia), wollen wir 
es einige Mal nachbauen. Ein praktisches kleines Messgerät, dass ich 
nicht mehr missen möchte!
Michael, DL1DMW

von Rudolf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi !

Erstaml möchte auch ich mich für die Schaltung bedanken :-)

Zumal möchte ich eine Frage die oben gestellt wurde aufgreifen:

Some about other things...
I have a question: Is it really need to use resistors 680 ohm and 470
kohm  with tolerance 1% instead of 5% or not? What is your opinion as
author?

Meinugen ?

Rudolf

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Rudolf schrieb:
> Zumal möchte ich eine Frage die oben gestellt wurde aufgreifen:
>
> I have a question: Is it really need to use resistors 680 ohm and 470
> kohm  with tolerance 1% instead of 5% or not?

Mal ganz ehrlich, ein 1% Widerstand kostet als Einzelstück ganze 8Cent 
bei Reichelt (Ein 5% übrigens 10Cent). Pro Tester macht der 
Preisunterschied nur einige Cents aus.

Sich darüber den Kopf zu zerbrechen macht nur bei großen Stückzahlen 
Sinn, weswegen man bei allen die diese Frage stellen, glauben muss sie 
wollen den Tester ab kupfern und professionell in großen Zahlen an den 
Mann bringen, wobei sie noch nicht mal in der Lage sind so eine einfache 
Frage selbst zu beantworten.

von Werner B. (werner-b)


Bewertung
0 lesenswert
nicht lesenswert
Ich glaube weniger dass es hier um die 2 ¢ Preisunterschied geht, als um 
den Aufwand die 1% Widerstände zu besorgen. 5%er hat jeder in der 
Grabbelkiste, 1% nicht unbeding.

Just my 2 ¢

Werner

von Rudolf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi !

Wenn ich etwas nachbaue, dann sicher nur für mich.

Hab aber verstanden was du meinst :-)

Rudolf

von Wigbert P. (wigbert) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich glaub , ein geschickter Displayeinkauf ist gerade bei
Mehrfachnachbau interessant.
Mein Display gab es mal auf der HAM-Radio für 1 Euro und der
Kontrast ist Zufriedenstellend, denke ich.
Für den Reset R hab ich auch ein Bastelkisten R verwendet,
ansonsten alle anderen 1% Typen.

Wigbert

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
Oh.
In my case - 2 problems:
1. It's simply very difficult to find precise resistors, and delivery 
costs ~$10. May be I don't know where to look for in my counry.
2. I would know the durability of identification algorithm vs resistors 
tolerance/precision. But it's very difficult for calculations, I know.
And so I would know more simple thing: precision of 680 ohm & 470 kohm 
in author's realization for simplest orientation - what MUST work 
stable.
The Vcc and internal Vref precision are interesting too.

Such many questions... :)

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
  I woud like to add 4 custom characters ,here are :
  // DiodeIcon[] EEEM={4,31,31,14,14,4,31,4,0}
  AnodeIcon[] EEMEM={0,17,25,29,31,29,25,17,1}
  CathodeIcon[] EEMEM={0,17,19,23,31,23,19,17,2}
  CapaIcon[] EEMEM={40,10,10,10,27,10,10,10,3}
  ResiIcon[] EEMEM={0,0,0,31,17,31,0,0,4}
so I have added in the main.c these lines :
  "      LCDLoadCustomChar();
  lcd_eep_string(DiodeIcon);
  lcd_eep_string(AnodeIcon);
  lcd_eep_string(CathodeIcon);
  lcd_eep_string(ResiIcon);
  lcd_eep_string(CapaIcon);      "
I have also added in the lcd-routines.h :
 "       #define LCD_CHAR_DIODE  0
         #define LCD_CHAR_ANODE  1
         #define LCD_CHAR_CATHODE  2
         #define LCD_CHAR_CAPA  3
         #define LCD_CHAR_RESI  4         "
But when I recall these characters by using -for example- :
 "       SetCursor(2,15);
         lcd_data(LCD_CHAR_ANODE);   "     the lcd dosn't show the 
character correctly only the first custom character diodeIcon is shown 
exactly....  So where is the error ???

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Toleranz der Widerstände ist nicht so entscheidend. Über 10% sollte 
sie aber nicht sein.
Am besten sind natürlich 1%-Widerstände, damit wird eben die 
Messgenauigkeit am besten. Widerstände mit unter 1% Toleranz sind aber 
auch wieder übertrieben, weil die Genauigkeit der ADCs selbst nicht so 
hoch ist.

In English:
The tolerance of the resistors is not really important, but it sholdn't 
be above 10%.
Of course, with less resistor tolerance the accurary of the measurements 
becomes better. But there is no need for using resistors with tolerances 
below 1%, because the ADCs of the µC also have internal tolerances.
1% resistors are best, bur 5% or 10% also work without problems, only 
the accuracy becomes a bit worse.

=> misser:
You have to load the custom char first.
For the diode icon, this is done in the following lines:
LCDLoadCustomChar();  //Custom-Zeichen
lcd_eep_string(DiodeIcon); //Diodensymbol in LCD laden
You must also do this for all your other custom chars.

=> Alle:
Ich habe jetzt (in dem angehängten Archiv) auch das Problem gelöst, dass 
zwei antiparallele Dioden als Widerstand erkannt werden. Sogar wenn ich 
zu den 2 Dioden noch einen 22k-Widerstand parallel schalte, wird das 
Ganze noch als Diode erkannt.
Ich habe sogar mal zwei 1600V/35A Brückengleichrichter antiparallel 
geschaltet (+ an - und - an +; AC-Anschlüsse unbeschaltet). Auch das 
wurde noch als "2 Dioden antiparallel" erkannt...


I solved the problem that 2 antiparallel diodes were detected as a 
resistor. It even worked when I put a 22k resistor parallel to the two 
diodes. This was still detected as 2 antiparallel diodes.

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thank you very much Markus ,
  Thank u for your replies and for your fantastic project....
  The tester works very well now :
  No problem now with antiparallel diodes or condensers or resistors 
....
  We hope to add the support for UJT if possible next...
Thanks thanks Markus...

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Serge S. schrieb:
> 1. It's simply very difficult to find precise resistors, and delivery
> costs ~$10. May be I don't know where to look for in my counry.

Ok availability  is really a point.
May I ask you where you live?


Werner B. schrieb:
> Ich glaube weniger dass es hier um die 2 ¢ Preisunterschied geht, als um
> den Aufwand die 1% Widerstände zu besorgen. 5%er hat jeder in der
> Grabbelkiste, 1% nicht unbeding.

Hmm. Bei mir ist es genau umgekehrt, ich kaufe fast nur noch 1%, weil 
bei den kleinen Mengen der Preisunterschied egal ist und so die 
Lagerhaltung einfacher ist.

von mkburkersdorf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
Ich habe deine Version vom 03.10.09 getestet.
Die Widerstände werden nicht mehr richtig erkannt.
1k zB als antiparallele Diode
440Ohm kein Bauelement.

Version vom 22.09.09 läuft

Gruß Manfred

von Andreas J. (antibyte)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab mir diesen tollen Tester auch mal aufgebaut.
Vielen Dank an Markus für dieses geniale Projekt.

Gruß
Andreas

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
Markus F. (5volt)
>But there is no need for using resistors with tolerances
>below 1%, because the ADCs of the µC also have internal tolerances.
Yes, exactly! And this internal tolerance is -10%..+5% for ATmega8 (by 
datasheet: 2.3 V...2.56 V...2.7 V min nominal max - internal Vref).
Just this fact slightly surprises me: from one side - precise resistors, 
but from other side - NOT so precise ADC. It will be consequent to use 
the same criteria for both parts. We can use 5% resistors and internal 
Vref - total precision will be ~5-10%, or we can use 1% resistors and 
somewhat as TL431 as Vref source - and precision will be ~1% with a 
little additional regulation.
I mean voltage and current measurement precision, not the resulting 
calculated values of hFE, R, C and so on...

Alexander Schmidt (esko)
>May I ask you where you live?
No problem. Russian Federation, Vladimir - normal district center. The 
main difficulty in fact is that I didn't find around such boys as me: 
programmer in work hours and radio-amateur as hobby at home. I suppose 
I'll find this precise resistors some time, but by some reasons (see 
upper) I don't want to run and jump around this point.

von Arne Rossius (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe den Tester auch mal nachgebaut. Funktioniert mit der Software 
von 2009-10-03 ganz hervorragend, die Probleme von  mkburkersdorf kann 
ich nicht nachvollziehen, ich habe mit 1k und 500 Ohm probiert, beide 
werden korrekt erkannt. Ich habe uebrigens in meinem Aufbau 
5%-Widerstaende verwendet, scheint keine Probleme zu machen. Die 
Genauigkeit hat mich sogar sehr ueberrascht, sowohl bei Widerstaenden 
als auch bei Kondensatoren habe ich selten mehr als 5% Abweichung -- und 
wenn doch, dann kann es ja genausogut am Bauelement selbst liegen.

Ein kleines Problem mit der Software habe ich allerdings noch entdeckt: 
2 Dioden in Reihe werden nicht erkannt, wenn die Durchlassspannung 
beider zusammen groesser als 5V ist, da dann die dritte "grosse" Diode 
nicht mehr erkannt wird. Ausserdem war die Wartezeit nach dem 
Einschalten fuer mein LCD nicht gross genug, ich habe sie von 15 auf 30 
ms erhoeht, damit klappt es zuverlaessig. Die Software im Anhang behebt 
die Probleme, direkt in die "richtige" Version kann es leider nicht 
uebernommen werden, da ich noch einiges mehr geaendert habe (alle 
Meldungen auf englisch, Strings im Flash statt im EEPROM -- der Mega8 
hat ja genug Platz ;-), Anzeige der Durchlassspannungen bei Doppel-, 
antiparallelen [z.B. kleine Z-Dioden!] und in Reihe geschalteten Dioden, 
alle Mega48-Programmteile entfernt und die Umlaute in den Kommentaren 
sind mir leider auch kaputtgegangen).

Und was mir gerade noch so einfiel: waere es eigentlich moeglich, auch 
Potis zu erkennen? Mit Anzeige des Gesamtwiderstands und der 
Schleiferstellung (in Prozent) waere das IMHO noch eine ganz praktische 
Erweiterung.


Gruss,
Arne

PS: Fotos von meinem Aufbau sind hier zu sehen: 
http://elektronik-kompendium.de/public/arnerossius/temp/trtest/
Als LCD habe ich Pollin 120386 verwendet, das Gehaeuse ist ein "SP 6062 
GR" von Reichelt.

von Ludwig D. (user111)


Bewertung
0 lesenswert
nicht lesenswert
[erster Beitrag, habt Nachsicht mit einem Noob]

Hallo zusammen,

die ZIP-Pakete -von hier- datiert auf 22.09.09, leider auch 03.10.09 
liefen (bei mir) nicht richtig.

Insbesondere ist keine Erkennung von R mehr moeglich. Ähnliche Meldung 
kam von mkburkersdorf (Gast)  (Nachricht oben vom 4.10.09).


Warum dieser Beitrag?

Ich habe ein "Best of" funktionierender Teile aus dem Paket vom 27.08.09 
(insbesondere der Routine CheckPins), ergänzt um den Kapazitätstest vom 
3.10.09 gebaut.

Ferner habe ich eine Schleife vorangestellt, um mit Taster D7 nach der 
1. Erkennung (CheckPins) auf die Bauteilerkennung Einfluß zu nehmen (*** 
Codeschnipsel unten).

Kondensatoren werden erst im zweiten Anlauf erkannt, oder wenn C gleich 
vorgegeben wird (es ist ja ohnehin ein Entladevorgang und eine Denkpause 
geboten).

Eine Vollautomatik muß ja gar nicht sein...

Besteht Interesse, würde ich das ZIP als Diskussionsgrundlage, zur 
freien Verwendung einstellen.  Läuft bei mir mit Standardbauteilen und 
meinem batterielosen Aufbau und 5V Details unten.  FETs ungetestet.

Danke nochmal an den Autor!
---------------------------------------------
paar Notizen z. Originalcode: Der Kondensatortest schaltet immer das 
Flag 'Kondensator erkannt'. Problematisch?

Die IF Abfrage vor dem Kondensatortest enthielt auskommentierte Teile. 
Ich habe sie komplett entfernt und erwarte vom User die Vorgabe C. Er 
muß ja eh entladen, sprich  Nachdenken.

Die Länge von outval hat sich von 4 auf 6 erhöht. Warum?  wie sieht es 
mit Buffer-Overflows aus, wie mit numerischen Overflows generell?

---------------------------------------------
Mein Hardwareaufbau:  Pollin AVR Board + Zusatzplatine (LCD) + 
Breadboard (dadurch z.Z. lange Kabel)

D7 ueber Taster an Ground. Zusaetzlich RESET Taster fuer Hardwarereset 
(löscht in meiner Variante die Vorselektierung des Bauteils).

AREF über 100nF an GND (nötig, bei Pollin unbeschaltet). Alle Jumper 
gezogen.

Problem : korrekte Beschaltung von PC5 (AD Wander ADC5) unklar.  Ich 
habe direkt meine Versorgungsspannung 5V dran, ist das richtig?

Beobachtung: die Genauigkeit laesst stark zu wuenschen uebrig. Trotz 5% 
Widerstaenden bekomme ich bei 470 Kiloohm hohe Abweichungen (ein 470K 
Metallschichtwiderstand wird zwischen 411k bis 430 k gelabelt).

Bei grossen Elkos (allerdings teils recht alt / ausgelötet) bekomme ich 
große Abweichungen.  Elko 250 uF wird als 360 uF erkannt, teils 
wesentlich dramatischer (Faktor 3 = Messfehler oder Defekt?). Bei 
Folienkondensatoren und kleinen Keramik-Kondensatoren ist die 
Genauigkeit hoch.

Eine nutzbare Kalibriermöglichkeit vermisse ich noch, die beiden Werte 
CAPACITY_FACTOR sagen mir wenig...  Wäre bei R auch nicht schlecht :=)

------------ (***) Codeschnipsel : als Attachment.

von Ludwig D. (user111)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
siehe Beitrag eins weiter

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ludwig D. schrieb:
> Problem : korrekte Beschaltung von PC5 (AD Wander ADC5) unklar.  Ich
> habe direkt meine Versorgungsspannung 5V dran, ist das richtig?

Laut Schaltplan muss da ein Spannungsteiler von 10k/3,3k dran, der von 
vor dem 7805 Regler kommt. Der wird dort sein, um die Batteriespannung 
zu messen.


> Trotz 5% Widerstaenden bekomme ich bei 470 Kiloohm hohe Abweichungen
> (ein 470K Metallschichtwiderstand wird zwischen 411k bis 430 k gelabelt).

Das sollte in der Tat nicht so sein. Haben deine Widerstände die 
richtigen Werte? Schonmal mit einem Multimeter gegengetestet?


> Bei grossen Elkos (allerdings teils recht alt / ausgelötet) bekomme ich
> große Abweichungen.  Elko 250 uF wird als 360 uF erkannt, teils
> wesentlich dramatischer (Faktor 3 = Messfehler oder Defekt?). Bei
> Folienkondensatoren und kleinen Keramik-Kondensatoren ist die
> Genauigkeit hoch.

Das wird an den Elkos liegen. Diese sind extrem ungenau, oft schon neu 
mit -10%, +20% angegeben. Außerdem verlieren Elkos über die Zeit stark 
an Kapazität. Bei defekten gealterten Schaltungen sind sie meist die 
erste Fehlerquelle.

Datum: 22.09.2009 18:27
Markus F. schrieb:
> Above ~5000µF, the reading starts getting inaccurate; at 10mF I had
> about 10% error.

von Ludwig D. (user111)


Bewertung
0 lesenswert
nicht lesenswert
Ok - denke meine 10 - 35 Jahre alten Elkos kann ich zu 95% entsorgen :-)

Der Code von Arne Rossius (Gast) mit Datum 11.10.2009 funktioniert!
Klasse, daß die Werte von Z-Dioden gezeigt werden...

Da die Beinchen bei Transistoren in Arnes Fassung nicht mehr korrekt 
gezeigt werden (etwa "B=4" - wegen 3+49), hier ein Änderungsvorschlag 
(bitte gegenprüfen):
...
  //Fertig, jetzt folgt die Auswertung
  GetGateThresholdVoltage();
  lcd_clear();
//ARNE  b = 3;
//ARNE  c = 3;
  if(PartFound == PART_DIODE) {
//VORSCHLAG:
          b = 3;
          c = 3;
    if(NumOfDiodes == 1) {
      //Standard-Diode
      lcd_string("Diode: ");
...
*zu den Unterschieden zwischen Marcus F.'s u. Arne R.'s Fassung*

Ich nutze den grafischen CSDIFF für Windows, um die Unterschiede 
zwischen dem Original von Marcus F. und Arne Rossius zu sehen...

Arne Rossius Code  weicht nicht nur beim Diodentest ab (=> Code nach : 
if(PartFound == PART_DIODE) -  -  er hat auch kleine Unterschiede bei 
etlichen If-Abfragen.

ADC-Beschaltung
Beim Pollin-Evalboard mit Zusatz werden die Leitungen durch das 
Flachbandkabel sehr lang, deswegen bringt der 100nF zwischen AREF und 
GND (am Ende des Kabels) vermutlich nix. AVCC + VCC sind durchverbunden, 
müßte vermutlich L=10uH oder 47R (lt.Wiki) dazwischen. Muß entweder 
einen Zwischensockel bauen, oder alles neu auf Lochraster.

Die Versorgungsspannung v.Netz ist vermutlich nicht ausreichend stabil 
sodaß die Erkennung unzuverlässig arbeitet. Labornetzgerät hab ich 
keins, nur ne HAMA Wandwarze m.einstellbarer Voltzahl (also Trafo 
stabilisiert => und 7805 auf Pollinboard). Alles an einer Leiste, an der 
2 Schaltnetzteile + der Laptop sind.

von Arne Rossius (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@Ludwig:

du hast voellig Recht, das habe ich uebersehen. Dein Aenderungsvorschlag 
erscheint mir sinnvoll, ich habe ihn jetzt bei mir eingebaut.


Gruss,
Arne

von Läubi .. (laeubi) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Irgenwo im FOrum gabs auch mal ne ESR Messung der Elkos, DAS wäre noch 
der hit! :)

von Benedikt K. (benedikt) (Moderator)


Bewertung
0 lesenswert
nicht lesenswert
Dürfte etwas schwer werden, wenn auch prinzipiell irgendwie machbar. 
Dazu müsste man aber vermutlich etwas mehr Strom durch den Elko jagen, 
prinzipiell könnte man es so machen:
Elko auf um die Vcc/2 laden, über einen Widerstand z.B. 25mA in den Elko 
jagen und möglichst sofort die Spannung messen, so dass der Elko keine 
Zeit hat sich zu laden. Dann das ganze in die andere Richtung.
Da man den Widerstand der den Strom liefert kennt, könnte man so einfach 
über den Spannungsteiler aus dem Widerstand und dem ESR diesen 
berechnen.
Wird nicht sonderlich genau, aber als Anhaltspunkt sollte es gehen.
Bei 100 Ohm Vorwiderstand liegt die Auflösung bei 200mOhm. Das ist nicht 
gerade gut, <50mOhm sollten es für brauchbare Messungen mindestens sein.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Die ESR-Messung kann man mit dieser Hardware vermutlich fast vergessen.
Normalerweise müsste man den Elko dafür erstmal auf eine gewisse 
Spannung aufladen und dann (z.B. per Power-MOSFET) einen niederohmigen 
Widerstand an den Elko anschließen. Dann muss sofort (vielleicht 1µs 
später) über eine Sample&Hold-Schaltung die aktuelle Elkospannung 
gemessen werden. Daraus kann man dann recht genau den ESR bestimmen.
Mit den vorhandenen 680 Ohm Widerständen wird das aber nix...
Schon ein billiger Elso mit vielleicht 10µF/25V hat ja soweit ich weiß 
meist unter 1 Ohm ESR.
Größere Elkos haben sogar oft <50mOhm.

Ich werde demnächst auch mal eine neue Version reinstellen, in die ich 
einige der Verbesserungsvorschläge übernehmen werde.
Das mit der Poti-Messung ist auch eine gute Idee. Allerdings würde ein 
Poti nicht erkannt werden, wenn es ganz an einen der Anschläge gedreht 
ist.

Hat eigentlich noch jemand außer mkburkersdorf mit meiner Firmware vom 
03.10. Probleme mit der Widerstandsmessung?
Ich habe nämlich keine Probleme damit. Vielleicht liegt es ja an 
internen Toleranzen der AVRs.

von Michael L. (michaelx)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

ich hätte da noch einen Verbesserungsvorschlag, muss ich gleich mal hier 
aufschreiben, ehe ich es wieder vergesse. Bei antiparallelen Dioden wäre 
es nützlich, die beiden U_f auszugeben. Z.B. so:

D 1-2: Uf=1234mV
D 2-1: Uf=678mV

Dies wäre vor allem für die Erkennung von Z-Dioden mit kleiner Spannung, 
aber auch bei antiparallelen LED nützlich.


ESR

Eine Möglichkeit das zu messen, fehlt mir auch noch. Aber nach dem, was 
ich mir bisher zu diesem Thema angeschaut habe, lässt sich die 
ESR-Messung in den Transistortester nicht integrieren. Dafür sollte man 
eher ein ähnliches Projekt aufziehen. Um diesen Thread nicht zu 
vermüllen, habe ich dafür einen  neuen gestartet: Projekt ESR-Tester

Edit:
PS: Markus, ich habe gerade gesehen, dass du auch gerade bzgl. ESR 
gepostet hast.

von Ludwig D. (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>Hat eigentlich noch jemand außer mkburkersdorf mit meiner Firmware vom
>03.10. Probleme mit der Widerstandsmessung?

meld ja ich )

Was daran liegen könnte, daß bei mir die Wiederholgenauigkeit der 
Messungen nie hoch ist (je groesser die Widerstaende, um so groesser 
werden die Schwankungen).

Es sind immer Ausreisser zwischen 1,5,10 und 20 Kiloohm dabei (820 K als 
799k)...

  Ich hab die Mittelung schon auf 50 Werte geändert, die Verdrahtung 
geändert (R 47 Ohm zwischen AVCC und VCC), sogar den ADC Sleep Mode 
eingebaut.

( wegen der Zeitabhängigkeit der Messung ist mir nicht bekannt, ob Sleep 
Mode / bzw. Interrupts bei allen Bauteilen richtige Werte liefert )

P.S.: ich hab die von mir erwaehnten Unterschiede zwischen Arne R und 
Marcus F (vom 3.10) mal ranhgehängt (2 If-Bedingungen sind mir 
aufgefallen).

von Ludwig D. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Verbesserungsvorschlag: die Routine zur Ausgabeformatierung wird an 2 
Stellen benutzt.
 Ich habe sie in eine Unterroutine ausgelagert. Ist uebersichtlicher und 
verkleinert den Code!

..........................
DEFINITION (vor Main):
..........................

// Ausgabe-Hilfsroutine (gibt 0 zurueck wenn keine Ausgabe)!
//   1.Parameter Zeiger auf CHAR,
//   2. Parameter STRINGLAENGE,
//   3. Parameter  wie tmpval2 (Position Nachkomma)
int Lcd_Display(char outval[], uint8_t tmpval, uint8_t tmpval2) {
      if(tmpval < 3)
      {
        if(tmpval==1) {
          if( outval[0]=='0' ) return 0;

          lcd_string("0.");
          lcd_data('0');
          lcd_data(outval[0]);
        } else {
          if( (outval[0]=='0') && (outval[1]=='0') ) return 0;

          lcd_string("0.");
          lcd_data(outval[0]);
          lcd_data(outval[1]);
        }
      } else {
        for(PartReady=0;PartReady<tmpval;PartReady++) {
          if((PartReady + 2) == tmpval2) lcd_data('.');
          lcd_data(outval[PartReady]);
        }
      }
      return 1;
} // ENDE Unterroutine

//Programmbeginn
int main(void) {
...
...........................................
*Stelle A: Messung Kondensatorkapazität*
*Originalcode Marcus Okt.ab Zeile 530*
...........................................
...
  } else if(PartFound == PART_CAPACITOR) {  //Kapazit?tsmessung auch nur auf Mega8 verf?gbar
      lcd_eep_string(Capacitor);
      lcd_data(ca + 49);  //Pin-Angaben
      lcd_data('-');
      lcd_data(cb + 49);
  
      tmpval2 = 'n';
      // Merke: 100 ist "1"
      if (cv > 99999) //  ab 100000 {
          cv /= 1000;
         tmpval2 = LCD_CHAR_U;
      } 

      Line2();
      ultoa(cv, outval, 10);
      tmpval = strlen(outval);
      if ( Lcd_Display(outval, tmpval, tmpval) )
      {
        lcd_data(tmpval2);
        lcd_data('F');
        // Warnung bei Erreichen d.unteren Grenze d.Messbereichs:
        if (save_cv < 20) 
          lcd_data('*');
      }
..................................
*Stelle B: Messung Gatekapazität* 
*Originalcode Marcus Okt.ab Zeile 426*
..................................
    #ifdef UseM8  //Gatekapazit??t
      if(PartMode < 3) {  //Anreicherungs-MOSFET
        tmpval = strlen(outval2);

        tmpval2 = 2;
        if(tmpval>4) {
          tmpval = 4;  //bei Kapazit??t >100nF letze Nachkommastelle nicht mehr angeben (passt sonst nicht auf das LCD)
          tmpval2 = 1;
        }

        if ( Lcd_Display(outval2, tmpval, tmpval2) )        {    lcd_string(" C=");  //" C="
                lcd_data('n');
                                }
      }
    #endif

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal versucht, das Problem mit der Widerstandsmessung zu lösen.
Ich vermute mal, dass die Widerstände aufgrund von Messungenauigkeiten 
teilweise in beide Richtungen mit einem deutlich abweichenden Wert 
erkannt wurden. Vorher war die maximale Abweichung dort 10%, bei mehr 
Abweichung wurde das Bauteil nicht mehr als Widerstand erkannt.
Ich habe das mal auf 20% erhöht und auch noch einen unnötigen Codeteil 
bei der Widerstandsbessung entfernt.

Zumindest bei mir funktioniert es so einwandfrei, ich hatte aber auch 
mit der alten Version keine Probleme.

von Hubert G. (hubertg)


Bewertung
0 lesenswert
nicht lesenswert
Bei einem Darlingtontransistor TIP121 wird Stromverstärkung hfe0 
angezeigt. Bei einem BC516 oder vergleichbaren allerdings korrekt.
Könnte das mit der Diode zwischen CE zusammenhängen oder hat das andere 
Gründe?

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
=> Hubert G.:
Das ist einfach zu erklären. In der angehängten Grafik ist die 
Innenschaltung vom TIP121 zu sehen.
Der Widerstand R1 von 5kOhm sorgt dafür, dass der Transistor mit dem 
470k-Widerstand im Tester nicht zum Leiten gebracht werden kann. Das 
wäre aber für die hFE-Messung erforderlich.
Dank der bei solchen Transistoren praktisch immer vorhandenen internen 
Diode werden (zumindest bei etwa vergleichbaren BD675 und BD679; TIP121 
habe ich nicht) zumindest die Pins korrekt erkannt.

=> Alle:
Die Messung von Potis baue ich wohl doch nicht mehr ein.
Dafür (und auch nur dafür) wäre es nämlich nötig, dass der Tester 
mehrere Widerstände erkennen kann. Das macht dafür eine zusätzliche 
Array und eine ganze Menge zusätzlicher Überprüfungen nötig. Da der 
Flash vom ATMega8 ohnehin schon ziemlich voll ist (knapp 7kB belegt) und 
auch noch die Erkennung von UJTs rein soll, und auch noch etwas Platz 
für evtl. nötige Fehlerbehebungen frei bleiben soll werde ich dieses 
Gimmick doch nicht einbauen.

von Hubert G. (hubertg)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die Info, ich habe mir so etwas in dieser Richtung gedacht.
Die Pin werden richtig erkannt und die Diode angezeigt.
Ich bin sehr zufrieden mit diesem Gerät, danke.
Hubert

von Stefan B. (stefan) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Glückwunsch, der Transistortester hat es ins Makezine geschafft!
http://blog.makezine.com/archive/2009/10/how-to_transistor_tester.html

von Martin S. (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Welche Firmware ist denn jetzt aktuell?
Im zugehörigen Artikel ist noch eine Version vom August 2009 zu finden. 
Diese habe ich auch installiert. Allerdings tauchen hier immer wieder 
fehlerbereinigte Versionen auf. Auch eine Messung von Kondensatoren ist 
enthalten.
Welche Version (inc. C-Messung) läuft denn stabil?

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Martin S. schrieb:
> Welche Firmware ist denn jetzt aktuell?
> Welche Version (inc. C-Messung) läuft denn stabil?

Immer die letzte von Markus F. gepostete. Zur Zeit also diese: 
Beitrag "Re: Transistortester mit AVR"

Er testet die Version vor dem posten, man fährt also recht sicher damit.

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Markus,
HOW TO TEST UJT:
according to some documentation and to some experience about ujt 2N2646,
the UJT has 3 pins: Emetter = E , Base 1 = B1 , Base 2 = B2.
* between B1 and B2 there are resistor from 100 ohm to 25 kohm
    (ra==B1 && rb==B2) || (ra==B2 && rb==B1) .
* from E to B1 there is a diode 0.6v to 1.5v
     diode[0] (anode0==E && cathode0==B1)
* from E to B2 there is a diode 1v to 4.9v
     diode[1] (anode1==E && cathode1==B2)
* vEB1 < vEB2 ( doppeldiode AC )  so:

   E==anode0==anode1
   if (voltage.diode0 < voltage.diode1) {
      B1==cathode0 && B2==cathode1
      }else {
      B1==cathode1 && B2==cathode0
      }
   RBB==resistor between B1 and B2.
   vEB1==voltage between E and B1.
Is this methode enough to define UJT  and only UJT ?
thanx in advance.

von Michael Gomez (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gentlemen,
Thank you Markus for this design.
I am very interested but most hesitant.
I know two words in german: danke & bitte.
Following the blog threads is most difficult for me.
Still I am willing to jump into the water and try it.
Do you have it in full kit form?
Danke.
Pls let me know.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> misser:
This is a good idea. I will test it when I have got some UJT's...

=> Michael Gomez:
No, I don't have a full kit...
But you cann buy the circuit board here: 
https://www.it-wns.de/themes/kategorie/detail.php?artikelid=857
The other parts should be available at most electronics stores.

von Michael Gomez (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Markus,

Chus. Danke.

I found that web page where they sell the PCBs.
Unfortunately I know 1/2 word in German and they don't seem
to offer their wares in English.
I don't even know if they accept paypal.

Seems I'll need a German speaking friend in here to help me with these 
choicesbecause I don't understnad a gesunheit.


Hummm....

von Hc Z. (mizch)


Bewertung
0 lesenswert
nicht lesenswert
Try to feed the URL do translate.google.com or (if you're using firefox) 
install FoxLingo.  This should give you a translation, albeit not a 
fluent one.

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Michael Gomez schrieb:
> Unfortunately I know 1/2 word in German and they don't seem
> to offer their wares in English.
> Seems I'll need a German speaking friend in here to help me with these
> choicesbecause I don't understnad a gesunheit.

Hi Michael,
perhaps you find someone who can help you out. If you dont, contact me 
and I can buy it for you and send it to you. I also have a paypal 
account. I could also offer it to you via ebay, that would give you a 
safeness.

mit freundlichen Grüßen
(with friendly greetings)

Alexander Schmidt

von Michael Gomez (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alexander,

Danke. Mille danke.

Thank you for your kind offer.
I will take you up on this offer.
Please tell me where to send the Euros.
Please tell me how many.

I want to build this tester and with the help of some
friends, I might get it done.

Thank you.

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Drop me a mail at Benutzer:Esko. Your can send me the money via 
Paypal, then I will buy it and send it to you.
Where do you come from?
Do you want to have all parts or only the pcb?
Price for the pcb is 14€ +paypal+shipping to you
Price for the kit is 27€ +paypal+shipping to you

von Michael Gomez (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alexander,

Danke. I will go with the full kit.
I hope that includes a programmed chip.

I can send you the money directly from within paypal.

I am not sure how to use that "Benutzer:Esko" address.
Will paypal understand that? Sorry.
Is that an abrreviation for Benutzer@Esko.com  ?
Sorry. I have never used that form before.

A million thanks. I found an AVR story in Germany but they were not 
willing to buy this board for me and send it with their kit.

Thank you.
You can reach me directly at: xtalgrwr@yahoo.com

Looking forward to building that tester. Danke.

von micha (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Michael!

It's a link! just click on the adress in the above post and you will see 
a valid email adress ;-)

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Michael Gomez schrieb:
> Danke. I will go with the full kit.
> I hope that includes a programmed chip.

It does not, but i can program it for you.


> I am not sure how to use that "Benutzer:Esko" address.
micha schrieb:
> It's a link!
Thats it.


> You can reach me directly at: xtalgrwr@yahoo.com
I sent you a mail.

von Nils ‫. (n-regen)


Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich habe ein Problem mit meinem Nachbau des Testers auf einer 
Streifenrasterplatine:
Sobald ich ihn an eine Batterie oder ein Netzteil anschließe, zeigt er 
einige Sekunden lang "Batterie leer" und anschließend dauerhaft 
"Timeout!" an.
Die LED leuchtet dauerhaft, geht allerdings aus, solange ich den Taster 
gedrückt halte. Ansonsten hat der Taster keine Wirkung.
Merkwürdigerweise reagiert der Atmega8 auch nicht darauf, wenn man 
seinen Pin 1 (Reset) mit Pin 7 oder 8 (+5V und GND) verbindet.
Woran könnte das alles liegen? Lässt sich abschätzen, wo ich nach dem 
Fehler suchen muss?
Falls das relevant ist: Ich habe noch ein Poti zwischen +5V und GND 
eingebaut, um den Kontrast des Displays einzustellen (der Kontrastpin 
des Displays hängt am Schleifer) und die Verbindungen zwischen (jeweils) 
den beiden VCC- und den beiden GND-Pins weggelassen, da die ja intern 
verbunden sind.

von Hannes L. (hannes)


Bewertung
0 lesenswert
nicht lesenswert
> und die Verbindungen zwischen (jeweils)
> den beiden VCC- und den beiden GND-Pins weggelassen, da die ja intern
> verbunden sind.

Das ist Pfusch! Das solltest Du schleunigst ändern.

...

von Hc Z. (mizch)


Bewertung
0 lesenswert
nicht lesenswert
"Timeout!" erscheint, wenn die Software zu lange einen gedrückten Taster 
erkennt.  Da der Taster an sich geht (LED geht aus, Schaltung wird 
gestartet usw.), ist etwas mit der Rückmeldung des Tasterzustands nicht 
in Ordnung.  Prüfe mal die dafür zuständige Leitung.

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi ,
  The tester works very well, but yesterday when I had tested a N-MOSFET
" SSS7N60 " the tester did'nt detect this device as mosfet but as 
diode!!
  So where is the problem ?
Thanx in advance....
misser.

von Arne Rossius (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe gerade noch einen Fehler in der Widerstandsmessung entdeckt. 
Widerstaende mit ca. 250k werden bei mir (nach elend langer Messung, ca. 
20s) faelschlicherweise als Kondensator mit genau 77.46uF erkannt. 
Getestet habe ich 180k, 220k, 270k und 330k, korrekt wurden davon nur 
180k und 330k angezeigt, 220k und 270k wurden wie beschrieben als 
Kondensator angezeigt, ebenso ein Poti mit 250k (Klemmen nur an den 
beiden aeusseren Anschluessen). Schliesse ich 2 Klemmen an das eine Ende 
des Widerstands (und die dritte an das andere Ende) an, dauert die 
Messung sogar doppelt so lange, das Ergebnis ist aber das gleiche.

Die letzte Version, die das Problem noch nicht hat, ist die von 
2009-09-13 (ich habe nur die Versionen von Markus F. aus diesem Thread 
ausprobiert, immer fuer den ATMega8).

Fuer alle, die meine Version verwenden: auch damit besteht das Problem.


Gruss,
Arne

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> misser:
I think the mosfet needs more than 5 volts gate voltage. So it won't 
turn on with the 5 volts at the gate, and only the internal reverse 
diode is detected.

Und das Problem mit den Widerständen von ~250kOhm tritt bei mir auch 
auf. Sie werden als Kondensator mit 77,46µF erkannt.
Ich schaue mir das mal an...

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
=> Markus F.:
Und das Problem mit den Widerständen von ~250kOhm tritt bei mir auch
auf.

From ~180 kOhm up to ~270 kOhm in my case. Maybe this info will help.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe das Problem mit den Widerständen jetzt gelöst.
Die neue Firmware habe ich an diesen Beitrag angefügt.
Es wäre schön, wenn ein paar Leute diese Firmware mal aufspielen 
könnten, und dann über noch vorhandene Fehler, Probleme oder 
Verbesserungsvorschläge berichten.
Wenn keine weiteren Fehler mehr gefunden werden, dann würde ich diese 
Firmware demnächst mal in den Artikel zu diesem Projekt übernehmen. So 
langsam mal gehört der nämlich auch wieder aktualisiert...

von misser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Markus ,
  The tester works very well ....
  Thanks very much.
Misser.

von Michael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Markus!

I have a problem in the next line :  TransistorTestNew, main.c routine
AVRStudio shows a mistake here:
He is not defined : LCD_CHAR_U
..
  } else if(PartFound == PART_CAPACITOR) {  //Kapazit?tsmessung auch nur 
auf Mega8 verf?gbar
      lcd_eep_string(Capacitor);
      lcd_data(ca + 49);  //Pin-Angaben
      lcd_data('-');
      lcd_data(cb + 49);

      tmpval2 = 'n';
      // Merke: 100 ist "1"
      if (cv > 99999) //  ab 100000 {
          cv /= 1000;
         tmpval2 = LCD_CHAR_U;

Where is this defined?

Thanx,
Michael

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> Michael:

LCD_CHAR_U is defined in lcd-routines.h, in line 30
#define LCD_CHAR_U  228    //µ-Zeichen

von Michael (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Markus, works very well ....
  Thank you,
Michael

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Danke Markus F. für dieses schöne Projekt und die saubere Dokumentation. 
Damit konnte ich den Aufbau, Teil 1 = ohne Abschaltautomatik, schnell, 
sauber und sofort funktionstüchtig erstellen. WUN DER BAR! Sehr 
interessiert hatte mich die Ein- und Ausschaltautomatik; die wollte ich 
schon immer für andere Projektchen erstellen, wusste nur nicht wie. Der 
Aufbau war einfach, die Inbetriebnahme ziemlich aufregend - testen und 
vielfach kontrollieren - und hinterher waren es nur die <7,xx V am 
Eingang. Ich dachte eigentlich, dass mein LDO 2950 gut genug wäre, das 
Ganze, inclusive Ein-/Ausschaltautomatik, mit vier Knopfzellen zu 
betreiben, aber mein Schaltungsaufbau (derzeit nur am Steckbrett mit 
sehr guter Funktion) ist unter etwa 7,5 V nicht einzuschalten. Das liegt 
nicht an der lowbatt-Meldung. Kaum hatte ich das Netzteil auf 8..9 V 
gestellt, schon lief alles wie am Schnürchen.

Kann ich die Ein- und Ausschaltautomatik so abändern, dass das 
Einschalten schon bei 6V oder weniger geht? (Tut mir leid, ich verstehe 
bei Elektronik leider kaum mehr, als dass Transistoren drei Beine und 
Dioden nur zwei haben - krass ausgedrückt). Da wäre ich um einen Rat 
dankbar.

Nochmal vielen Dank für dieses Gerätchen, macht Riesenspass es zu bauen 
und damit zu messen.

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Walter Ti schrieb:
> mit vier Knopfzellen zu betreiben

Was sind das für Knopfzellen und wieviel Volt hat eine?

> aber mein Schaltungsaufbau ist unter etwa 7,5 V nicht einzuschalten.

Das sollte nicht so sein.
Ist der BC557 richtig angeschlossen und ist es auch sicher kein BC547?

Kann es sein, dass die Knopfzellen den Strom nicht bereitstellen können?
Funktioniert es mit (nachgemessenen) 6V vom Netzteil?

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Ohhh je,

na ja - manches hatte ich richtig gemacht. Stromversorgung war ein 
Labornetzteil (etwas einfaches, EA-PS 1501) - Strombegrenzung war erst 
auf 200 mA, dann auf 1000 mA, Spannung vorsichtig hoch . . . . so ab 
5,5V angefangen.

Knopfzellen - erstmal dachte ich an die V357 - wenn die genügend Strom 
bringen, aber ich hatte mit Licht am LCD rund 110 mA gemessen . . . . 
Ohne Licht sinds um die 60 mA. Daher hatte ich das Ganze vorerst auch 
NICHT mit Knopfzellen probiert. Mein Testblock mit 4xAA - tecxus 2700Ah 
- bei rund 5,4 V hatte nichts gebracht, sprich: Tasterdrücken führte 
weder zu Stromverbrauch (am Multimeter gemessen) noch zu einem 
erhellenden Licht an der LED oder am Display.

Ja - und der "ohh-je"-Teil: ich hatte statt der BC557 und BC547 ein paar 
vorhandene (neue) BC337 und BC327 genommen. gggg - stimmt - den 
"BC557", bei mir also ein BC327, hatte ich zuerst "andersrum" drin, bis 
ich den Pfeil genauer angesehen hatte.

Es funktionierte nicht mit nachgemessenen 6V am Netzteil (DMM = Metrahit 
12S - schien mir bisher vertrauenswürdig - und ist auch nicht auf low 
bat).

Jedenfalls danke Alexander für Deine schnelle Antwort von eben.

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Die Minimalspannung ist:
5V + 0,4V (LDO) + 0,3V (PNP)
Es müsste also mit 6V laufen.

Evtl hast du Übergangswiderstände auf dem Steckbrett.

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Danke Alexander. Ich stecke das Ganze grade wieder zusammen (hatte es 
vormittags auseinandergenommen). Übergangswiderstände - soweit ich mich 
erinnern kann - waren im Steckbrett meist so - Bauteilfuss B1 - 
Kontaktleiste1 - Steckbrücke - Kontaktleiste2 - Bauteilfuss B2 - von B1 
nach B2 etwa 2 bis 4 Ω (ohne Nulljustage am DMM).

Werde es heute+morgen neu aufbauen, nachmessen und dann mich nochmal 
melden.

Danke.

von Andreas S. (aschmitt)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Danke erstmal Markus für das klasse Projekt. Ich hab dabei richtig Spass 
gehabt und viel dabei gelernt.

Ich bin beim Durchtesten meiner Bauteile auf einen Effekt gestossen. In 
meiner Kiste zwischen den Transistoren und Dioden waren auch ein paar 
Spannungsregler. Lasst mal einen bei euch testen, bei mir kommt dann

Bauteil unbek.
oder defekt4d

dieses "4d" kommt auch mal als "5d" oder "6d".

Im Code hab ich schon nachgeschaut aber nichts ungewöhnliches entdeckt.

Gruß Andreas

von Walter J. (oberallgeier)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Alexander, hallo alle,

Walter Jo schrieb:
> ... mein Schaltungsaufbau ... unter etwa 7,5 V nicht einzuschalten...

Es geht besser. Es geht unter 6 V als Ubatt.

Vielleicht ist beim alten Aufbau ein nicht entdeckter schlechter Kontakt 
schuld gewesen, vielleicht weil heute Sonntag ist, ich kann mit 
Eingangsspannungen unter 6 V sicher schalten. ALLERDINGS NICHT, wenn das 
LCD angeschlossen ist. Also habe ich mir noch einen LP2950 genommen und 
noch einen BC337. Die Basis des 337 über 1k an den Eingang des 
originalen Spannungswandlers (D1) (= C des T3 der Originalschaltung) und 
mit 10k weiter an GND. Der Emitter des 337 direkt an GND. Der GND des 
zweiten Spannungswandlers an C des 337. Jetzt kann ich störungsfrei bis 
Ubatt,min 5,8V (Anzeige 5,79) schalten. Dabei bekomme ich am 
Controllereingang 4,93 V. Geringere Ubatt bringt einen Abfall am 
Controllereingang, höhere Ubatt bringt keine höhere Eingangsspannung am 
Controller. Die Spannungsmessungen leider nur gemessen, als der 
Testzyklus schon vorbei war.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> Andreas Schmitt

>Ich bin beim Durchtesten meiner Bauteile auf einen Effekt gestossen. In
>meiner Kiste zwischen den Transistoren und Dioden waren auch ein paar
>Spannungsregler. Lasst mal einen bei euch testen, bei mir kommt dann

>Bauteil unbek.
>oder defekt4d

>dieses "4d" kommt auch mal als "5d" oder "6d".

Wenn mehr als 2 Dioden gefunden wurden, aber nicht noch zusätzlich ein 
anderes Bauteil (z.B. Transistor), dann wird die Anzahl der Dioden 
angezeigt, in der Form:

Bauteil unbek.
oder defektyd

y ist dann die Anzahl der Dioden.

Das ist also kein Bug, sondern ein Feature...

Aber es stimmt, ein Leerzeichen zwischen dem "defekt" und der Anzahl der 
Dioden würde nicht schaden.

von Andreas S. (aschmitt)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb:

>
>>dieses "4d" kommt auch mal als "5d" oder "6d".
>
> Wenn mehr als 2 Dioden gefunden wurden, aber nicht noch zusätzlich ein
> anderes Bauteil (z.B. Transistor), dann wird die Anzahl der Dioden
> angezeigt, in der Form:
>
> Bauteil unbek.
> oder defektyd
>
> y ist dann die Anzahl der Dioden.
>
> Das ist also kein Bug, sondern ein Feature...
>
> Aber es stimmt, ein Leerzeichen zwischen dem "defekt" und der Anzahl der
> Dioden würde nicht schaden.

Muss ich mir mal genauer im Quellcode anschauen, man is ja lernfähig. 
Danke für die Info.
Ich hatte übrigens massive Probleme mit dem Starten des Testers, der 
wollte von 30 Versuchen vielleicht 1-2 mal richtig starten. Die anderen 
mal waren nur wirre Zeichen und ein blinkender Cursor zu sehen. Mit dem 
Kondensator auf Bild 2 (Kunstwerk von unten :D) war das Problem behoben 
und die Sache lief.

Vielleicht würde zu dem Leerzeichen noch statt dem "d" das Dioden-Symbol 
mehr passen.

von Walter J. (oberallgeier)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Der Tester ist fertig aufgebaut für einen 9V-Block, das Display wird auf 
Abstandshaltern oberhalb der Schaltung montiert. Für die Testbuchsen und 
den 3xPfostenstecker für ein Testkabel bleibt vorne genügend Platz.

http://oberallgeier.ob.funpic.de/TrTester_totale_1824.jpg

Derzeit zweifle ich noch, dass die 9V-Akkus den Tester treiben können. 
Leider zeigen meine beiden Akkus derzeit noch stets "Batterie leer", 
aber sie hängen am Ladegerät. Und für das Bild reicht eine fliegende 
Verbindung zum Labornetzteil. Die unmotiviert verlaufende Drahtschlaufe 
nach PC5 wird später nach PC3/ADC3 verlegt - dann wird der SCL-Pinn 
frei. Aktuell will ich den Code für einen mega168 umgtricken - mal 
sehen, ob ich dann noch zusätzliche Sachen einbauen kann. ISP ist ja 
dran . . . . Mag ja sein, dass Profis die Nase über die 
Lochraster+Spaghetti-Platine rümpfen.

Frage: Funktioniert der Tester bei irgend jemandem mit einem 
handelsüblichen 9V-Akku oder sind 9V-Blocks unabdingbar?

von Hannes L. (hannes)


Bewertung
0 lesenswert
nicht lesenswert
Abgesehen davon, dass Deine LCD-Hintergrundbeleuchtung Gift für einen 
9V-Block ist, miss mal die Spannung Deines 9V-Block-Akkus. Und dann miss 
mal die Spannung eines primären 9V-Blocks. Und dann überleg' mal, welche 
Spannungsdifferenz der 78L05 zum sauberen Regeln braucht.

...

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Hi Hannes,

> ... Spannung Deines 9V-Block-Akkus. Und dann miss
> mal die Spannung eines primären 9V-Blocks ...
Kennst Du den Unterschied in den Spannungen?

> ... Und dann überleg' mal, welche Spannungsdifferenz
> der 78L05 zum sauberen Regeln braucht.
Das Überlegen hilft da nix - das steht nämlich bei mir im Datenblatt. 
Aber oben habe ich ja geschrieben, dass ich einen LP2950 genommen hatte 
ggg.

> ... LCD-Hintergrundbeleuchtung Gift für einen
> 9V-Block ...
Deshalb gibts diesen hübschen, zweipoligen, separaten Stecker für die 
LED ggg. Mit dem grossen, weißen "+" auf einem Pol.

Aber irgendwie war das alles wohl nicht die Antwort auf meine Frage.

von Paul Baumann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Und für das Bild reicht eine fliegende Verbindung zum Labornetzteil.

Du hast 2 Möglichkeiten:
1.Stell an Deinem Labornetzteil die Spannung langsam runter und miß, bis
 wohin der Tester noch arbeitet
2. Warte, bis Dein Akku fertig geladen ist und probier's aus...

;-)
MfG Paul

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Walter Jo schrieb:

> Derzeit zweifle ich noch, dass die 9V-Akkus den Tester treiben können.
> Leider zeigen meine beiden Akkus derzeit noch stets "Batterie leer",
> aber sie hängen am Ladegerät.
>
> Frage: Funktioniert der Tester bei irgend jemandem mit einem
> handelsüblichen 9V-Akku oder sind 9V-Blocks unabdingbar?

CR2032 und ein stepup reichen auch :P

Wieso schaltest du die erkennung per hard oder noch besser software (da 
du eh code umbauen möchtest) einfach aus ?

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Paul, hallo Thomas,

danke für die Hilfen.

@Paul. Das mit dem Labornetzteil hatte ich bereits vor dem Posting 
gemacht, siehe oben vom 22.11.2009 10:43 und 21.11.2009 17:31. Der Akku 
ist fertig geladen, aber die LCDBeleuchtung zieht wirklich sauber viel 
Strom. Daher hatte ich ja vorsorglich die Versorgung mit einem separaten 
Stecker versehen. LED abstecken - und der Tester läuft völlig korrekt. 
Da ich selten im Dunklen sitze, gehts auch so . . . .

@Thomas. Der Tester zieht vom Labornetzteil mit 9,00V und 
Strombegrenzung auf 200 mA ohne LED ca. 10 mA, mit LED ist der 
Anlaufstrom, gemessen mit DMM (Gossen Metrahit 12S), über 100 mA, im 
Normalstatus über 60 mA. Ähnliches natürlich mit dem 9V-Akku Varta NiMH, 
der 9,4V Leerlaufspannung hat. Mit Tester im Normalbetrieb, ohne LED 
bleiben am Akku 8,7 V und mit LED noch 5,7V. Dabei messe ich im Tester 
4,97V im Normalbetrieb und 4,3 V mit LED, also viel zu wenig für eine 
korrekte Messung. Seltsam ist ja, dass beim LP2950 im Datenblatt von 
National Semiconductor steht: Guaranteed 100 mA output current. Und - 
ich hatte schon eine Wartesekunde nach dem Anmeldetext und vor der 
Spannungsüberprüfung eingelegt. UND - alle Zwischenräume auf der Platine 
gesäubert . . . .

> ... CR2032 und ein stepup reichen auch
Meinst Du? Ich bin nicht sicher. Werde ich auch nicht testen.

> ... schaltest du die erkennung ... einfach aus ?
Neeee. Die sichert mir doch eine ganz wichtige Funktion. Ich finde 
dieses Feature, die Versorgungsspannung in der Anmeldephase zu 
überprüfen einfach s..gut!

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Walter Jo schrieb:
> beim LP2950 im Datenblatt von National Semiconductor steht: Guaranteed
> 100 mA output current.

Wenn du die Kondensatoren mit einschaltest ist der Anfangsstrom 
kurzzeitig deutlich höher. Am besten die Kondensatoren immer am Akku 
lassen.
Außerdem dürfte der begrenzende Faktor hier der Akkus sein. Dort wird 
die Spannung einbrechen.

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Genau der Einbruch am Akku ist es, denn am Labornetzteil mit der 
Einstellung 9V und "max 200 mA" läuft der Tester problemlos - mit dem 
gleichen LDO. Selbst ein anderer 9V-Akku brachte nix.

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Wenn die Akkus keine 60mA liefern können, dann sind diese kaputt oder 
waren schon immer schlecht.
Ich habe mal exemplarisch in ein 9V-Block Datenblatt geschaut und dort 
steht bei 56mA Entladestrom eine Entladedauer von 5 Stunden bis 7V.
Bei 380mA ist es immer noch eine Stunde bis 7V.

9V-Block: http://www.reichelt.de/?;ARTICLE=82135
Datenblatt: 
http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=0;INDEX=0;FILENAME=D500%252FNIMH9V280.pdf;SID=32yiUUOqwQASAAAGwMYIw47f12e6a0620a1e3d4f8e2a7bdeea7f2

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Danke esko!

Ärgerlich - von meinen tecxus AA und AAA habe ich solche Datenblätter, 
direkt vom Hersteller natürlich. Diese Akkus können wirklich hohe Ströme 
abgeben, das weiß ich von meinen anderen Projektchen. Selbst das 
Leichtgewicht des 9V-Blocks sollte ja 100+ mA weit über eine Stunde 
liefern können. Hoffentlich ist mein Aussetzer nur temporär. Danke für 
Deine Mühe und Geduld.
http://www.tecxus.de/german/datenblatt/NIMH9V160.pdf

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Die Akkufrage ist positiv geklärt. Der neue tecxus 9V/280mAh lässt das 
LCD und die Bastleraugen bei der Messung hell leuchten.

Jetzt gehts an die Software. Wegen eines persönlichen Überangebotes an 
mega168 wird dieser genommen, zumal es ein gemeinsames Datenblatt von 
Atmel für ATmega48/88/168/328 gibt und die Software auch für m48 passen 
soll.
mega168:
Der Transistortest NPN und PNP geht beim mega168 recht ordentlich.
Bei Test eines Widerstandes mit 1k meldet der Tester 2 Dioden 
antiparallel, gelegentlich auch "kein, unbek..." oder tolerierbare 1003Ω 
... 1005Ω und beim Test eines 100nF meldet er entweder auf 3-2 22,60nF 
oder auf 2-1 172,33nF, 1-3 ist 20,60nF.
mega8:
Die IDENTISCHE Hardware meldet an allen Kombinationen Kapazitäten 
zwischen 99,99nF und 102,44nF und sinnvolle Widerstandswerte.

Da wird ein mühevoller Vergleich der docs notwendig :(.

von Hannes L. (hannes)


Bewertung
0 lesenswert
nicht lesenswert
> Die Akkufrage ist positiv geklärt.

Wirklich? Und was ist hiermit?
Beitrag "Re: Transistortester mit AVR"

> Da wird ein mühevoller Vergleich der docs notwendig :(.

Es gibt bei Atmel ANs zum Thema Migration.

...

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Der m168er Transistortester läuft sehr schön - auch problemlos am Akku 
und der Code scheut auch nicht den m328. Damit habe ich Teil 1 meines 
Projektziels erreicht. Teil 2 sind zusätzliche Routinen, die mit dem 
Bauteiltester nichts zu tun haben.

Änderungen im code waren
a) Redigieren der Typabhängigkeit, insbesondere alle #ifdef UseM8 / 
#endif
b) Verlegen des low batt Checkpins nach PC3 - damit wird das I²C frei 
(gehört zu Teil 2).
c) wirklich notwendig war natürlich die Anpassung bei den Faktoren für 
die Kapazitätsmessung bei Kondensatoren:
// War :
// #define H_CAPACITY_FACTOR 394
// #define L_CAPACITY_FACTOR 283
//   .. und ist neu :
 #define H_CAPACITY_FACTOR 241
 #define L_CAPACITY_FACTOR 167
Wen wunderts, der Kommentar dazu im originalen Code sagt ja genug.

Die oben (28.11.2009 12:15) erwähnten, seltsamen Effekte mit Meldungen 
zu antiparallelen Dioden oder 100 unterschlagenen nanoF verschwanden, 
als ich bei Testmessungen stets den ISP-Stecker entfernte. MISO, MOSI 
und SCK gehen ja zu drei Messwiderständen. Wieder etwas, das ich 
übersehen hatte.

Hannes Lux schrieb:
> Es gibt bei Atmel ANs zum Thema Migration.
Danke Hannes für den Hinweis. Diese ANs sind nicht wirklich erhellend zu 
diesem Thema. Dass der mega8 manche Registernamen anders hat als der 
m168, ist ja den meisten hier klar und die Unterschiede der 
48/88/168/328-Reihe zur Gruppe der 48P/88P/168P/328P (AVR512) sind 
vorwiegend Energiesparfragen mit den zugehörigen Quarzen und der Hinweis 
auf einige neue Register.

Danke allen für die freundlichen Hilfen.

von MartinSt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Erstmal: Danke für dieses tolle Projekt!

Problem:
Nach dem Update auf die neueste Firmwareversion werden bei meinem Gerät 
Kondensatoren unter etwa 1,5nF nicht mehr erkannt. Vorher konnte ich 
einen 1nF-Kondensator zuverlässig messen. Ist der Effekt durch die 
letzten Änderungen unvermeidlich oder handelt es sich um einen Bug?

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
MartinSt schrieb:
> ...
> Nach dem Update auf die neueste Firmwareversion ...

Hast Du vielleicht auch den Controller gewechselt? Ich habe bei meinem 
Nachbau festgestellt, dass ziemliche Fehlmessungen bei den Kondensatoren 
durch die
>...Faktoren für die Kapazitätsmessung bei Kondensatoren...
beeinflusst werden, siehe mein Posting oben. Vielleicht mal im niedrigen 
Kapazitätenbereich diese "Eich"werte selbst einjustieren? DAS hatte bei 
mir eine sehr gute Genauigkeit gebracht - allerdings messe ich nix unter 
50 nF.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
> Nach dem Update auf die neueste Firmwareversion werden bei meinem Gerät
> Kondensatoren unter etwa 1,5nF nicht mehr erkannt

Ja, ist bei mir auch so. Ist mir vorher aber auch noch nicht 
aufgefallen.
Alles unter ca. 1,25nF wird nicht erkannt. Ich sehe mir das mal an...

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Zu der Sache mit den Kondensatoren:
Das war tatsächlich ein Fehler in der Software. In der angehängten 
Firmware habe ich den Fehler berichtigt, jetzt werden wieder 
Kondensatoren ab ca. 0,2nF erkannt.
Ich habe diese Firmware auch wieder mit einigen Bauteilen getestet und 
es hat funktioniert, scheinbar sind durch diese Änderung auch keine 
neuen Fehler entstanden (ihr kennt das ja sicher: Man beseitigt einen 
Fehler und schafft damit zwei neue...).

Und die Dioden-Anzeige bei defekten oder nicht erkannten Bauteilen habe 
ich auch geändert. Jetzt wird es als
Bauteil unbek.
oder defekt y(Dioden-Icon)

angezeigt (y steht für die Anzahl der Dioden).

von Hubert G. (hubertg)


Bewertung
0 lesenswert
nicht lesenswert
Das mit den Kondensatoren funktioniert einwandfrei.
Bei meinen Triac TIC226 und fast allen TIC216 zeigt er allerdings
npn b1 c2 e3   hfe0
Bei denen er TRIAC anzeigt ist die Belegung falsch G=1 A1=2 A2=3
wenn man ihn umdreht, G und A2 tauscht, bleibt die Belegung gleich.

Transistoren und FET werden soweit ich getestet habe, richtig angezeigt.

von Matthias S. (matthias-aus-hc)


Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Nachdem ich auf dieses Gerät aufmerksam geworden bin und ich demnächst 
mel wieder eine bestellung bei Pollin tätigen werde. werde ich den TT 
mal nachbauen.

Klingt auf jedenfall interessant und vielversprechend.

lg

von Matthias S. (matthias-aus-hc)


Bewertung
0 lesenswert
nicht lesenswert
Kann man auch anstatt des LCD-Displays ein Display von einem S65 
benutzen und noch mehr Werte untereinander darstellen?

Was müsste ich dabei beachten?

lg

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
> Bei meinen Triac TIC226 und fast allen TIC216 zeigt er allerdings
> npn b1 c2 e3   hfe0

Das ist ein normales Verhalten. Der Tester liefert einfach nicht genug 
Strom, um den Haltestrom der Triacs zu erreichen. Über die 
680Ohm-Widerstände fließen ja nur max. 7mA. Die meisten Triacs haben 
aber >10mA Haltestrom.
Daher bleiben sie nach Wegnahme der Gatespannung nicht geschaltet und 
sind für den Tester nicht von einem NPN-Transistor zu unterscheiden.

Das mit der falschen Belegung weiß ich jetzt auch nicht. Ich erinnere 
mich, das auch mal gehabt zu haben, bei einem BT136. Da habe ich mich 
aber nicht gleich darum gekümmert, und dann ist es wieder in 
Vergessenheit geraten...

Ich habe aber gerade keinen Triac da, der auch als Triac erkannt wird 
(ich habe nur ein paar BTA24 mit max. 25A Laststrom und 50mA Haltestrom 
da, die werden aber verständlicherweise nicht erkant).

Wenn ich mal wieder ein paar geeignete Triacs habe (BT136 müssten 
gehen), dann teste ich es nochmal.

von Ollz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Kann man auch anstatt des LCD-Displays ein Display von einem S65
> benutzen und noch mehr Werte untereinander darstellen?

Wenn du genug frei Pins findest, den Code schreiben kannst und noch 
Platz im AVR ist, dann kann man das.

Ich verwende ein überbreites (24x2) HD44780-kompatibles Display, und 
hatte daher dafür an der Hardware und vom Treibercode wenig zu ändern.

Da ich eine andere Stromversorgung und Ein-Aus-Schaltung verwende, habe 
ich noch diverse andere Änderungen in der Software.

>
> Was müsste ich dabei beachten?

Das Updates auf neue offizielle Software-Versionen Mehrarbeit machen.

Ich habe alle Display-Strings und das Display-Layout auf 24x2 umgestellt 
(und dazu ein diverse weitere Änderungen). Bei jeder neuen offiziellen 
Software-Version muss ich den Code wieder patchen.

von Stephan H. (stephan-)


Bewertung
0 lesenswert
nicht lesenswert
Für jemanden der mit einem S65 Display noch nicht gearbeitet hat....
Vergiss es. !!
Wenn du "nur" ein Nachbauer bist, vergiss es !!
Wenn Du Ahnung hättest würdest Du die Frage nicht stllen.
Das ist ein  grafisches Display. Du mußt Dich um alles selbst kümmern.
Umrechnen der ASCI Werte, Aufbereiten der Pixel, umsetzen von 4 Bit Bus 
nach 8Bit Bus, Grafiktabelle etc.pp.
Wie gesagt, wenn Du Ahnung hättest...würdest Du nicht...
Aber so....

von Hannes L. (hannes)


Bewertung
0 lesenswert
nicht lesenswert
Zumal ein kompatibles LCD bei Pollin für 1,95 zu haben ist...

...

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
> Zumal ein kompatibles LCD bei Pollin für 1,95 zu haben ist...
.. welches übrigens auch ich verwendet habe (Bestellnummer 120545).
Mal davon abgesehen, dass das Display recht klein ist (was auch ein 
Vorteil sein kann) ist es nicht schlecht:
Der Kontrast ist super, der angezeigte Text ist sehr gut lesbar. Und ja, 
ich gebe es zu: Ich habe das auch hauptsächlich gekauft, weil es so 
billig ist...
Der Nachteil ist nur der Anschluss: Es ist ein Folienleiter mit 1mm 
Pitch.
Aber wenn man mit S65 Displays umgehen kann, sollte das kein Problem 
sein.

Man kann den Folienleiter auch ablöten und stattdessen Kupferlackdrähte 
anschließen. So habe ich das auch gemacht. Sieht dann ziemlich 
verbastelt aus, aber das stört mich nicht. Bei mir ist der Aufbau eh 
nicht gerade ein Design-Meisterstück (siehe Artikel zum 
Transistortester...).

von Hannes L. (hannes)


Bewertung
0 lesenswert
nicht lesenswert
Das 120545 ist mir etwas zu klein, das habe ich zwar da, aber noch nicht 
verwendet.

Ich bezog mich eigentlich auf das Solomon mit der Bestellnummer 120546. 
Es hat (auch ohne BL) einen guten Kontrast, das rötliche BL sieht auch 
recht passabel aus, zumindest an einem netzbetriebenen Gerät 
(Akkulader). Die Pinbelegung (Nummerierung) ist zwar etwas anders, aber 
damit kann man leben.

...

von oe5gpl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
ein Dankeschön für die Entwicklung und eine Frage: wenn ich den 
Quelltext kompiliere und in den Prozessor lade, wird die 
Stromverstärkung bei Transistoren um zwei Zehnerpotenzen zu gering 
angezeigt (statt 254 nur 2).
Kann es sein, daß sich im Programm noch ein Fehler versteckt hat?
MfG Helmut

von Freddy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Markus,
I found bug. I put BS170 transistor, than tester displays gd = 231, when 
I part was turned 180 degrees, tester displays GDS = 213.

Regards Freddy

von Thomas R. (tinman) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Freddy schrieb:
> Hi Markus,
> I found bug. I put BS170 transistor, than tester displays gd = 231, when
> I part was turned 180 degrees, tester displays GDS = 213.
>
> Regards Freddy

check the picture - BS170 have the Gate in the middle, so it is pin 2, 
if you turn around the pin 2 is still in the middle ... like 231, 213

von Freddy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
BS170 it's my mistake, but when I put BF245 transistor, than tester 
displays gd = 231, when part was turned 180 degrees, tester displays GDS 
= 321.

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Ollz schrieb:
> .... Bei jeder neuen offiziellen
> Software-Version muss ich den Code wieder patchen.

Meine Testerversion betreibe ich auf einem mega168, auch mal nem 328er - 
mit zusätzlichen Dingen und Gimmicks wie freiem I²C-Port. Sprich: auch 
ich muss patchen. Daher wird das neue Original immer mit meiner 
aktuellen Version verglichen mit einer Art "Diff". DAS erleichtert die 
Arbeit ungemein.

http://www.softinterface.com/DL/DL_Product.ASP?ProductType='Diff%20Doc'%20And%20WordDocDiff

von unalex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo, Markus F.
Super - Project
aber:

Es wäre shon die Pins-Reihenfolge(zwishen AVR und LCD) zu ändern

jetzt
PD0(2) - D4(11)
PD1(3) - D5(12)
PD2(4) - D6(13)
PD3(5) - D7(14)
PD4(6) - RS(4)
PD5(11) - R/W(5)

meine Meinung
PD0(2) - D7(14)
PD1(3) - D6(13)
PD2(4) - D5(12)
PD3(5) - D4(11)
PD4(6) - R/W(5)
PD5(11) - RS(4)

PCB-Layout wird einfacher

Ist das möglich?

von Sergei (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin ein absoluter Neuling was AVR angeht.

Ich benutze das myAVR Board MK2 USB mit ATMega8.
Zum Brennen benutze ich das Programm myAVR ProgTool.

Nun wollte ich gerne den Transistor-Tester ausprobieren.
Zuerst hab ich mir die erste Firmware runtergeladen. (Der erste 
Downloadlink im Artikel)
Leider bekomme ich beim Brennen eine Fehlermeldung.
vorbereiten ...
brennen ...
benutze: mySmartUSB MK2 an COM4 mit ATmega8
USB-Treiber installiert, aktiv (V 5.3.0.0), Port: COM4
Prozessor: ATmega8
schreibe 7036 Bytes in Flash-Memory ...
... erfolgreich (10.89 s)
schreibe 290 Bytes in EEPROM-Memory ...
Fehler: beim Schreiben der Daten.

Also hab ich das nochmal selbst kompiliert.
Danach lief das brennen reibungslos, und der Conroller schien richtig zu 
arbeiten.

Nun hab mir die aktuelleste Firmware runtergeladen.
Auch hier beim Brennen der selbe Fehler, neukompilieren bringt keine 
Veränderung.

Hat jemand einen Rat, warum es zum Fehler beim Brennen des EEPROMS 
führt?

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> Freddy:
Drain and source are almost equivalent at JFETs like the BF245, so they 
can't be identified.
If you conect a BF254 like gate=1; drain=2; source=3, the tester will 
show
N-JFET
GDS=132
If you connect ist gate=1; drain=3; source=2, it will give the same 
result.
But the gate pin was always detected correctly at my tests in all 
possible pin arrangements.

Are you sure you really got the result "GDS=231", and after turning ist 
180 degrees "GDS=321"? If you got this, it would be a bug.

=> unalex:
Ja, es ist möglich, die Pin-Reihenfolge zu ändern. Die Pins für RS und 
Enable kann man einfach in einem Define ändern.
Um die Datenleitungen "umzukehren", müsste man eben die Bit-Reihenfolge 
für alle Datenausgabe-Befehle ändern. Das ist nicht allzu schwierig.
Machbar ist es also ohne weiteres.

=> Sergei:
mySmartUSB und das myAVR Prog-Tool benutze ich selbst nicht.
Der Fehler erscheint mir aber etwas merkwürdig. Es wäre denkbar, dass 
das EEPROM vom ATMega8 einen Schaden hat. Ich weiß es aber nicht (mit 
myAVR kenne ich mich nicht aus).

von unalex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
<i>Um die Datenleitungen "umzukehren", müsste man eben die 
Bit-Reihenfolge
für alle Datenausgabe-Befehle ändern</i>

wäre es nett, wenn jemand zeigt mir was und wo muss ich ändern

von Freddy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Yes I sure Markus,
f.e
BF245B N-JFET display : GDS 132 after turning GDS 321
BF256C N-JFET display : GDS 132 after turning GDS 321
J310 N-JFET display :   GDS 321 after turning GDS 132

it's look like all N-JFET test is wrong.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> unalex:
Die Defines für RS und Enable stehen unten in der lcd-routines.h:
#define LCD_RS        PD4
#define LCD_EN1       PD5

Und zum Invertieren der Bit-Reihenfolge musst du diesen Codeabschnitt in 
lcd-routines.c ändern (Zeile 28-39):
//Eigentliche LCD-Zugriffs-Funktion; 4-Bit-Modus
void lcd_send(unsigned char data) {
   // oberes Nibble setzen
  LCD_PORT = (LCD_PORT & 0xF0) | ((data >> 4) & 0x0F); //Ändern
  _delay_us(5);
  lcd_enable();
   // unteres Nibble setzen
  LCD_PORT = (LCD_PORT & 0xF0) | (data & 0x0F); //Ändern
  _delay_us(5);
  lcd_enable();
  _delay_us(60);  
  LCD_PORT &= 0xF0;
}

Bevor die Variable "data" ausgegeben wird, muss ihre Bit-Reihenfolge 
gedreht werden. Das ist in den zwei Zeilen, die ich hier mit "Ändern" 
markiert habe.
Wie man die Bit-Reihenfolge dreht: Siehe z.B. 
Beitrag "Byte umdrehen"


=> Freddy:
No, the result you got ist not wrong...
At all those JFETs, the gate is one of the outside pins, not the middle 
pin.
And the tester either says gate ist pin 1 or pin 3. It never detects 
gate as the middle pin (Pin 2). So far, it is correct.
And as I said, it is not possible for the tester to tell drain and 
source apart. At every JFET, both directions are detected. But only the 
last test result will be displayed.
So it depends on the pin order which result is detected last and shown 
on the LCD. Because of that, the drain and source pin are often (50% of 
the cases) shown incorrectly.
This is not perfect, but I don't know how to improve it. Due to the 
design of JFETs, drain and source electrically are almost equivalent. So 
I think it is impossible to tell them apart with such a tester.

Even in the manual of commercial component testers it says that drain 
and source can not be told apart with those component testers.

von Freddy (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Markus,
but I checked same JFET on the tester published by the Elector in 
2008(attach docu. attached), and it display good.

von zaphod_beebelbrox (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich möchte mir den Tester auch nachbauen.

Müssen es 680R Widerstände sein? Oder kann ich auch ähnliche (hab 540R 
1% hier liegen) nehmen, solange sie alle gleich sind?


Viele Grüße,
Matthias

von zaphod_beebelbrox (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hab mir gerade mal die Sauce angeschaut. Vergesst meine Frage :-)

Schönen Sonntag noch,
Matthias

von Alexander S. (esko) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch einige der 470k und 680 Ohm 1% Widerstände und 
schicke jedem einen Satz davon zu. Kostenlos.
Als einzige Gegenleistung erwarte ich eine Postkarte aus eurer Stadt.

Kontakt per PN oder per Email (hier: Benutzer:Esko)

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Walter Jo schrieb:

>> ... CR2032 und ein stepup reichen auch
> Meinst Du? Ich bin nicht sicher. Werde ich auch nicht testen.
>

Walter,

2 stk CR2032 parallel geschaltet (die waren schon beim ~2.85V, also 
nicht ganz frisch), ein TPS61070DDC um auf 5V zu kommen mit EN auf PD6 - 
das hab ich getestet. Im dauerbetrieb haben die 1std mit LCD ohne 
hintergrunbeleuchtung und 40 minuten mit einen OLED display gehalten.
OLED hat lediglich 30 zeichen angezeigt - ohne funktion, ging nur um 
stromverbrauch test.

Im normalbetrieb mit frischen CRs sollte also für mehrere "mess"stunden 
reichen.

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
=>Freddy (Gast)
I've made just Sc-analyser 1.0e (as in magazine) and found after some 
experiments: for P- or N-JFETs it can't recognize drain and source, 
because they really are (almoust) the same. Except this, the device 
"don't like" Germanium transistors - try to name them as P- or N-JFETs: 
pin connection sensitive - one connection - bipolar, other - JFET for 
small-power Ge-transistors.
The irremovable problem for this device - use of analog switches. Their 
non-linear channel resistance made it unstable, by my opinion.

von Freddy (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Serge S. --> I have no tester from Elektro, I ask my friend (by phone) 
for some test only.

von Janusz B. (freddypl)


Bewertung
0 lesenswert
nicht lesenswert
Finally, I had registered on Forum. I was Freddy (Gast) before, now I'm 
as Janusz B. (or FreddyPL)

von R. M. (rmax)


Bewertung
0 lesenswert
nicht lesenswert
Markus, ich hätte da noch einen Vorschlag zur Verbesserung der 
Genauigkeit bei Widerstandsmessungen. Sorry, falls das schonmal genannt 
wurde, aber zumindest beim Durchsuchen des Threads nach dem Stichwort 
"Widerstand" bin ich nicht darauf gestoßen.

Also zu meinem Vorschlag: Wenn ich das richtig sehe, sind an Deinem 
Mega8 noch vier Portleitungen frei, nämlich PB6, PB7, PC3 und PC4. Die 
könntest Du doch verwenden, um gegen einen der Testpins weitere 
Meßwiderstände zu schalten und so die "Lücken" im Meßbereich zu füllen. 
Vorstellbar wären z.B. Werte von 4R7, 47R, 4k7 und 47k.

Evtl. könnten diese zusätzlichen Widerstände auch die Genauigkeit von 
anderen Messungen verbessern, ggf. nachdem das Programm den Benutzer 
aufgefordert hat, das Bauteil umzustecken, so daß das richtige Beinchen 
in der "genaueren" Meßbuchse steckt.

von Serge S. (sergebs)


Bewertung
0 lesenswert
nicht lesenswert
=>Janusz B.
I have VERY old soft (2005) of Analyser By Elector, and made 2 variants 
of AVR-tester and compared all 3 of them about 1 month ago on about 50 
semiconductors, most in SOT23/223/DPAK etc.
After this Elector got pension. :) It was made first and was enough 
useful, but AVR - better. By my experience.
Take in mind that new soft can make Analyser some better, but can't 
solve problem of non-linearity of multiplexors, which needs 
DAC/RC-integrator (or other analog signal source) and sophisticated 
calculations for better calibration, so it hasn't future. By my opinion, 
of course.
Thanks to Markus F.(5volt) once more for his outstanding desigh and 
programming.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> R.Max:
Dieser Vorschlag kam schon mal, aber nicht im Zusammenhang mit der 
Widerstandsmessung.
Ich habe mal ausgerechnet, dass der Tester bei einem angeschlossenen 
Widerstand von
von dem niedrigen Widerstand auf den hohen umschaltet. Bei 680 Ohm und 
470kOhm ergibt das knapp 18kOhm.
In diesem Bereich ist die Messung am ungenauesten, weil keiner der 
beiden Widerstände dafür gut geeignet ist (der gebildete Spannungsteiler 
hat immer ein recht großes Teilerverhältnis).

Nochmal 3 zusätzliche 18kOhm-Widerstände wären also meiner Meinung nach 
noch am sinnvollsten.
Kleiner als 120 Ohm sollten die Widerstände sowieso nicht sein, sonst 
kann der ATMega8 überlastet werden (nur 40mA je Pin zulässig).
Und zu dem zusätzlichen Testbuchsen: Naja, das finde ich auch nicht so 
toll, wenn man das Bauteil dann nochmal umstecken muss.
Mal ganz nebenbei: Der ATMega8 ist mit dem jetztigen Code sowieso schon 
recht voll. Und ehe ich dann einen ATMega168 nehmen würde, würde ich 
eher auf einen ATMega16 umsteigen: Ist billiger als der Mega168 und hat 
9 bzw. 10 I/O-Pins mehr...
Damit wäre es auch kein Problem, 4 zusätzliche Sätze von Widerständen 
vorzusehen.
Zum Beispiel 120 Ohm, 3.5kOhm, 18kOhm und 92kOhm.

Aber die Idee ist nicht schlecht!

von R. M. (rmax)


Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb:

> Und zu dem zusätzlichen Testbuchsen: Naja, das finde ich auch nicht so
> toll, wenn man das Bauteil dann nochmal umstecken muss.

Da hast Du mich falsch verstanden: ich meinte nicht, eine zusätzliche 
Buchse vorzusehen, sondern die zusätzlichen Widerstände an eine der 
vorhandenen Buchsen zu legen. Das ändert natürlich nichts an der 
Umsteckerei, es sei denn man trifft zufällig schon die richtige 
Orientierung.

von Michael Gomez (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Markus,

I finally put together my tester. It works. But I have a porblem with 
the start circuit. I cannot get to work right. If I short the Vin of the 
2805L with +9 I can get to to start. But I cannot get it to start with 
the S1 switch. Any suggestions?
I have tested a couple of transistors. I just can't get it to start 
correctly. Transistors are good. 7805L is good. Resistors with correct 
values are in the right places!?
Should I just bypass the transistor starter circuit? I don't have an AVR 
programmer. So that is a problem. Any ideas or suggestions are welcomed.
Many thnx.

von Janusz B. (freddypl)


Bewertung
0 lesenswert
nicht lesenswert
Markus, I change some elements on tester schematics. Add L, and change 
some Resistor. Can You send me source of schematic, than I will place my 
corrections and post a diagram. With these corrections tester work 
better, and I have not startup problems.

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
Dein Tester ist wunderbar! Sonst habe ich noch ein Paar Bitten. Kannst 
Du bitte im Program  RX/TX freigeben? Ich denke, das kann man  fuer 
weitere Funktonalitaet benutzen.
Was ist Deine meinung, wenn diese Formel:
#define RH_RL_RATIO (R_H_VAL / R_L_VAL)
mit einer Kaliebrierung und mit die drei genauen Koefifizienten 
austauschen?

Hast Du dafuer eiene Regel oder eine Idee fuer Kaliebrierung?
#define H_CAPACITY_FACTOR 394
#define L_CAPACITY_FACTOR 283

Und am Ende - ich denke bei alle Messungen, am Anfang soll ein Reset 
(wie DischargePin) fuer alle Messung Pine durchgefuehrt sein. Was meinst 
Du?

Viele Gruesse!

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
mszr schrieb:
>
> Und am Ende - ich denke bei alle Messungen, am Anfang soll ein Reset
> (wie DischargePin) fuer alle Messung Pine durchgefuehrt sein. Was meinst
> Du?
>

bin zwar nicht Markus, aber discharge sollte "offline" gemacht werde. 
Ich sehe schon wie schnell der µC sterben wird sobald jemand aus reiner 
gewohnheit einen 400V elko dran anschliest :\

von Michael Gomez (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Addendum.
I want to compile my own file so that I exclude the transistor control 
features and just bypass the battery directly into the 7805L. You 
suggested this can be done but I have to modify the code.

Well, I donwloaded the code and all comments are in German.
Too bad. I was already getting used to using it for testing devices.

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Michael Gomez schrieb:
>
> Well, I donwloaded the code and all comments are in German.
> Too bad. I was already getting used to using it for testing devices.

you can translate it  http://www.microsofttranslator.com/
it will be probably a bit "strange" but still better than in german

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,
Du hast mich falsch verstanden. Heute morgen habe ich eine kleine 
Korrektur gemacht:

es war früher:
  //Alle 6 Kombinationsmöglichkeiten für die 3 Pins prüfen
  CheckPins(TP1, TP2, TP3);
  CheckPins(TP1, TP3, TP2);
  CheckPins(TP2, TP1, TP3);
  CheckPins(TP2, TP3, TP1);
  CheckPins(TP3, TP2, TP1);
  CheckPins(TP3, TP1, TP2);
  #ifdef UseM8
und jetzt:

  //Alle 6 Kombinationsmöglichkeiten für die 3 Pins prüfen
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP1, TP2, TP3);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP1, TP3, TP2);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP2, TP1, TP3);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP2, TP3, TP1);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP3, TP2, TP1);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  CheckPins(TP3, TP1, TP2);
  DischargePin(TP1,0);
  DischargePin(TP2,0);
  DischargePin(TP3,0);
  #ifdef UseM8

Ich machte das, weil bei fast alle Messungen z.B. hfe stabilisiert na 5. 
Messung, nach Pin änderung. Jetzt hfe ist stabil und ändert sich nicht, 
auch wenn ich Pin ändere.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=>  Michael Gomez:
It is possible to bypass the start circuit. Look in the article, there 
is also a schematic without the start circuit, but still with a button 
to start a new test without turning the tester off and on again.

Normally, it should also work with the start circuit. Please make sure 
you used the correct transistors (T3 is PNP, T1 and T2 are NPN) and 
everything is connected correctly...

And if you bypass the start circuit, you don't need to modify the code. 
The code works for the tester with and without start circuit.

=>  Janusz B.:
I will send you the schematic files (Eagle) this afternoon.

=>  mszr:
> Kannst Du bitte im Program  RX/TX freigeben? Ich denke, das kann man  fuer
> weitere Funktonalitaet benutzen.
Das Problem ist, dass RxD und TxD des ATMega8 als Steuerpins für das LCD 
verwendet werden. Soweit habe ich damals nicht gedacht, dass man die 
nochmal brauchen könnte.
Im Prinzip wäre es aber möglich.
Man müsste dafür z.B. die Pins für die automatische Abschaltung und den 
Start-Taster (PD6 und PD7) auf PC3 und PC4 umlegen. Dann muss man die 
ganzen LCD-Pins um 2 "nach oben" schieben, und natürlich das Programm 
entsprechend anpassen. Damit werden RxD und TxD frei.

Kondensatoren werden in der Funktion zur Kapazitätsmessung sowieso nach 
jeder Messung entladen. Und fast alle anderen Bauteile haben eine so 
geringe Kapazität, dass sie in den nach Umschalten der Pins gelassenen 
Wartezeiten von ein paar ms praktisch vollständig umgeladen werden.
Geladene Kondensatoren sollte man natürlich nicht anschließen, das würde 
den µC zerstören. Also erst kurzschließen oder per Widerstand entladen 
(je nach Größe, wenn man einen voll geladenen 4700µF/350V Elko 
kurzschließt, dann knallt das nämlich ganz ordentlich...).

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
wegen Kaliebrierung für beide Wiederstanden, meine Idee ist jetzt 
einfach:

U1/U2 = 680/(470k + delta)

wo
U1 - U für 680
U2 - U für 470k

also kann man delta berechnen und bischen alles beser wird gezeigen. 
Sonst 1% Wiederstand wird nur für 680 nötig.

Viele Grüße.

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo, noch eine kleine Korrektur für pF zu messen.
1. Der Takt ist jetzt 4MHz
2. C Korrekturen wie unten:

uint8_t cv_range;  - globale Variable

Sie muss bei alle Messungen initializieren sein, also

start:
      ...
      cv_range =0;
      ...

und zusätzlich die Fragmente mit 'ab 1 pF' Kommentar:

mpval2 = 'n';
cv /=4;
if(cv > 99999) { //ab 1µF
cv /= 1000;
tmpval2 = LCD_CHAR_U;
}
if(cv_range == 1) { //ab 1pF
cv *= 1000;
tmpval2 = 'p';
}
ultoa(cv, outval, 10);
tmpval = strlen(outval);
lcd_show_format_cap(outval, tmpval, tmpval);
lcd_data(tmpval2);
lcd_data('F');
goto end;


cv /=4; //ab 1pF

if(cv > 99999) { //ab 1uF
cv /= 1000;
tmpval2 = LCD_CHAR_U;
}
if(cv_range == 1) { //ab 1pF
cv *= 1000;
tmpval2 = 'p';
}
ultoa(cv, outval, 10);
tmpval = strlen(outval);


Das ist nur für Kondensatoren, sonstige Konsequentze im Programm (4MHz) 
habe ich nicht korriegiert.

VG

von Ollz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Walter Jo schrieb:
> Ollz schrieb:
>> .... Bei jeder neuen offiziellen
>> Software-Version muss ich den Code wieder patchen.
>
> Meine Testerversion betreibe ich auf einem mega168, auch mal nem 328er -
> mit zusätzlichen Dingen und Gimmicks wie freiem I²C-Port. Sprich: auch
> ich muss patchen. Daher wird das neue Original immer mit meiner
> aktuellen Version verglichen mit einer Art "Diff". DAS erleichtert die
> Arbeit ungemein.

Ich mache das unter Linux mit diff und patch. Trotzdem ist es lästig.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=>  mszr:
Wie meinst du das mit
> U1/U2 = 680/(470k + delta)
und der Kalibrierung? Ich verstehe irgendwie nicht ganz, worauf du da 
hinaus willst.

Ich meine, die exakten Widerstandswerte kannst du doch in diesen Zeilen 
festlegen:
#define R_L_VAL 680      //R_L; Normwert 680 Ohm
#define R_H_VAL 470000UL  //R_H; Normwert 470000 Ohm, als unsigned long angeben

Ok, jetzt habe ich verstanden, was du mit dem "Discharge" vor jeder 
Messung meinst.
Schaden kann das meiner Meinung nach nicht, es kostet aber natürlich 
Zeit (insgesamt so ca. 0,2s). Zumindest bei meinem Tester ist die 
hFE-Messung auch ohne das stabil, auch bei Pin-Änderungen.
Die Idee ist aber nicht schlecht!

Und zu der Anzeige in pF:
Hast du auch die Kondensator-Messfunktion so geändert, dass sie 
Kondensatoren von wenigen pF messen kann?
Die Untergrenze liegt sonst nämlich bei ca. 200pF, was ohne die Änderung 
als "0,20nF" angezeigt wird. Zumindest meiner Meinung nach ist das 
hinreichend genau, ein Präzisions-Messgerät ist dieser Tester ja eh 
nicht.

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
ja, der Kalibrierung ist für R_H_VAL, wenn ich nehme 680hm mit 1%, 
bedeutet das nur ca. +/-7.O Ohm, aber für 470k das wird 47000 sein. Also 
es läst sich einfach  Schätzen und nich als Konstant  definieren.Das 
R_H_VAL/R_L_VAL stark hängt von  R_H_VAL auch ab. Ja?
Praktisch das Error hier kann man schätzen wie unten
470000*1.01 = 474700, 680*0.99 = 673.2, also R_H_VAL/R_L_VAL wird nicht 
681.18 sondern 705.12. Letztendlich bedeutet das, dass das Error ca. 14 
mal größer sein wird. Nächste Bemerkung  ist auch einfach, kleine 
Kondesatoren benutzen R_H_VAL als Basis für die Messung. Man kann mit 
einfache Formel besser R_H_VAL schätzen und sonst 1% Tolerantz für 
R_H_VAL wird nicht so wichtig, weil das man berechnen kann. Ist es schon 
klaar?

VG

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Hast du auch die Kondensator-Messfunktion so geändert, dass sie
>Kondensatoren von wenigen pF messen kann?
Das habe ich auch geendert und es geht (oben wurde nicht Alles gezogen, 
später wurde von mir noch etwas gemacht) , aber leider Alles zu stärk 
hängt von  '470k' Wierderstanden ab. Ich habe das mit 30pF Kondensator 
abgecheckt. Ohne den Kalibrierung der '470k' Wiederstanden das wird 
nicht praktisch sein. Error hängt zu stärk von Pins wegen der Toleranz 
des'470k' Wiederstanden ab. Der erste Release des Kalibrierung habe ich 
auch gemacht, aber leider das Hex Code zu gross für klein atmega8 war, 
also ich musste das wegwerfen.


VG

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
=> mszr:
Sorry, aber ich habe immer noch nicht ganz verstanden was du genau 
willst.
Das mit der Toleranz ist doch eigentlich kein Problem, weil man die 
genauen Widerstandswerte ja im Programm festlegen kann.
Wenn die 680Ohm-Widerstände z.B. 674 Ohm haben, und die 470k-Widerstände 
haben 473256 Ohm, dann trägt man das eben im Programm so ein, dann 
stören die Toleranzen nicht mehr, nur noch der Langzeit- und 
Temperaturdrift der Widerstände wirkt sich aus.
Die beiden Faktoren für die Kapazitätsmessung kann man ja auch 
entsprechend anpassen.

Das Problem bei der Messung kleiner Kondensatoren ist auch recht einfach 
zu erklären: Der ADC des ATmega8 hat interne Kapazitäten von ca. 15pF.

Eine Idee von Janusz B. (freddypl):
Man könnte die ganzen Kalibrierungs-Werte ins EEPROM legen. Da kann man 
sie recht problemlos anpassen.

Und eine automatische Ermittlung, wie groß R_H ist, ist praktisch 
unmöglich.
Dazu müsste man aus R_L und R_H einen Spannungsteiler bauen. Das geht ja 
noch.
Bei R_L = 680 Ohm und R_H = 470kOhm und 5V Spannung fallen 4,993V an R_H 
ab, und 0,007V an R_L.
Der ADC des ATMega8 hat aber nur 10 Bit, also 1024 Stufen Auflösung.
Daher ist jede Stufe 0,0048V.
Ich denke du siehst, dass das viel zu ungenau für eine automatische 
Ermittlung von R_H ist.

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Bei R_L = 680 Ohm und R_H = 470kOhm und 5V Spannung fallen 4,993V an R_H
>ab, und 0,007V an R_L.

Ja klaar, aber Spannung kann man immer versterken und das ist auch 
einfach zu kalibrieren, ich meine diese Versterkung.  Wenn ich den Zeit 
finde, versuche ich das realiesieren.

Sonst habe ich noch eine alte Frage:

Hast Du dafuer eiene Regel oder eine Idee fuer Kaliebrierung?
#define H_CAPACITY_FACTOR 394
#define L_CAPACITY_FACTOR 283

mfg

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
> Hast Du dafuer eiene Regel oder eine Idee fuer Kaliebrierung?
> #define H_CAPACITY_FACTOR 394
> #define L_CAPACITY_FACTOR 283

Nein, das habe ich einfach experimentell bestimmt...
Also ein paar Kondensatoren mit einem guten Multimeter nachgemessen, und 
dann die Werte so eingestellt dass der Tester das Gleiche anzeigt.
Diese Werte sind aber etwas von den Toleranzen des ATMega8 abhängig.
Trotzdem bleibt die Genauigkeit in meinem Aufbau auch mit verschiedenen 
ATMega8 im Bereich +/-5%. Das finde ich ausreichend. Wer es genauer 
haben will, kann es ja genau auf den verwendeten Controller kalibrieren.

von Janusz B. (freddypl)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
I attache the schematic diagram with all my (and my friend Bobo) 
modifications.
All modifications, and the entire scheme was approved by Markus F.

After this modifications :

 - tester is more resistant to interference,
 - there is no problem when you press "Start Taste",
 - no silly displays that sometimes occurred,

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Die An-Aus-Automatik macht bei mir Probleme, siehe gleich.

Thomas R. schrieb:
> ... normalbetrieb mit frischen CRs sollte also für mehrere "mess"stunden
> reichen.
Danke Thomas für die ausführliche Erläuterung. Der erste Tester in THT 
mit 9V-Akku läuft prächtig - aber ich werde mir mal einen Tester in SMD 
aufbauen. Ich suche ja noch immer nach einem schönen SMD-Projektchen. 
Und dann werde ich das mit den CR2032 machen. Einen ersten Test werde 
ich natürlich mit meinem jetzigen Gerät machen.

@all:
PROBLEM:
Die An-Aus-Automatik funktioniert bei mir derzeit nicht richtig.
Der Tester läuft mit der schönen An-Aus-Automatik als "Vorschaltgerät". 
Getrennt davon habe ich dieses Vorschaltgerät auch in einer kleinen, 
anderen Schaltung (Pacer = Schrittmacher mit LEDs) aufgebaut - vorerst 
als Vorversion auf Steckbrett.

Beide Male habe ich geändert: BC337/327 statt der BC547/327. LP2950 
statt des 7805L, R7=16k statt 27k, R8=33k statt 27k. Sowohl der 
Transistortester als auch der Pacer gehen problemlos an - und durch 
Abschalten vom Controller auch wieder aus.

Beim TTester geht die LED1 aus, solange bzw. so oft ich den Taster S1 
drücke. Auch die Funktion eines neuerlichen Tests startet nach Druck auf 
S1 problemlos und der Pegel auf PD7 ist erwartungsgemäß low bei 
Tastendruck.

Beim Pacer ging das genauso - S1 drücken => LED1 geht aus und der 
zugehörige Port auf low. Der Tastendruck, gemessen am Portpegel, wird 
mehrfach für Steuerzwecke genutzt. Die ganze Funktion des Vorschaltteils 
war tagelang genauso wie beim TTester. Seit ein paar Stunden wechselt 
der Portpegel nach S1/T2 am Controller nicht mehr, möglicherweise habe 
ich irgendwo gerüttelt oder die Verdrahtung "verbessert". Eine mehrfache 
Kontrolle der Bauteile, der Verkabelung und eine Durchgangsprüfung 
ergaben keine Fehler (ich erkenne zumindest keinen). Austausch der 
Transistoren hatte nicht geholfen, die werden aber im TTester als 
korrekt identifiziert. Beim Tastendruck auf S1 gehen die LED und die 
Schaltung sofort an und bleiben so, bis der Controller ausschaltet (oder 
/RES gedrückt wird). ALLERDINGS bleibt die LED1 bei Tastendruck an und 
auch der Pegel auf PD7 (bei mir PB2 weils ein tiny85 ist) bleibt auf 
high.

Hat bitte jemand eine Idee, woran das liegen könnte? Tut mir leid, dass 
der Text sooo lang wurde. Danke für die Hilfe

von Walter J. (oberallgeier)


Bewertung
0 lesenswert
nicht lesenswert
Walter Jo schrieb:
> Die An-Aus-Automatik macht bei mir Probleme, siehe gleich.

Die Fehlermeldung ist hinfällig - tut mir leid. Es WAR (m)ein Fehler, 
der Abzweig von der LED1 zum S1 war im Fehlerfall "nach" der LED und vor 
dem Transistor und nicht zwischen LED1 und R7. Nun läufts wieder.

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt die Erkennung von Triacs berichtigt. Die war nämlich 
vollkommen falsch...
Jetzt wird die Belegung korrekt erkannt, zumindest beim BT136. Einen 
anderen Typen mit gering genugem Gate- und Haltestrom habe ich gerade 
nicht.

Ich habe die neue Firmware gleich in den Artikel gestellt und diesen 
auch (endlich mal) aktualisiert.

von Janusz B. (freddypl)


Bewertung
0 lesenswert
nicht lesenswert
Add folowing change yet:
//#define R_L_VAL 680      //R_L; Norm  wert 680 Ohm
//#define R_H_VAL 470000UL  //R_H; Normwert 470000 Ohm, als unsigned long angeben
// export resistor value to EEPROM
unsigned long R_H_VAL EEMEM = 470000;
unsigned int R_L_VAL EEMEM = 680;

von Markus F. (5volt) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
> Add following change yet:
//#define R_L_VAL 680      //R_L; Norm  wert 680 Ohm
//#define R_H_VAL 470000UL  //R_H; Normwert 470000 Ohm, als unsigned long angeben
// export resistor value to EEPROM
unsigned long R_H_VAL EEMEM = 470000;
unsigned int R_L_VAL EEMEM = 680;

Sorry, I forgot this...
I will add it soon!

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ein fehler gefunden,
warme Diode ist als Kondensator identifiziert.

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
=> mszr:

> Ein fehler gefunden,
> warme Diode ist als Kondensator identifiziert.
Ist das nur einmal passiert oder schon häufiger?
Ich habe es gerade mal getestet: Eine 1N4007-Diode in den Tester 
gesteckt, dann für 60s 1,5A über die Diode fließen lassen. Das lässt die 
Diode ordentlich warm werden.
Dann den Strom abgeschaltet und sofort den Test gestartet. Wird 
einwandfrei als Diode erkannt, nur mit ca. 140mV weniger 
Durchlassspannung als im kalten Zustand (ist auch klar, die Spannung 
fällt um so 1,5...2mV je °C Temperaturerhöhung).
Ich habe es auch noch mit etwas Größerem (1600V/35A 
Brückengleichrichter) versucht, auch kein Problem.

Mit welcher Diode hattest du den das Problem?


Ich habe jetzt in der angehängten Firmware einige 
Konfigurations-Einstellungen (Werte der Widerstände, Faktoren fpr die 
Kapazitätsmessung) ins EEPROM verlegt. Somit sind sie ohne 
Neukompilieren der Firmware problemlos anpassbar.
Außerdem ist das Readme nun eine HTML-Seite und wurde deutlich 
erweitert. Da ist auch die EEPROM-Konfiguration beschrieben.
Bei einigen Tests mit der ATMega48-Version habe ich festgestellt, dass 
ein Testvorgang da viel schneller als in der ATMega8-Version geht.
Das liegt an der Überprüfung, ob ein Kondensator angeschlossen ist. 
Diese kostet recht viel Zeit, immerhin etwa 300...500ms.
Daher ist diese Messung nun auch konfigurierbar, auch im EEPROM:
Man kann sie entweder ganz deaktivieren, für eine Pin-Kombination 
aktivieren oder (wie bisher) für alle Pin-Kombinationen aktivieren.
Standard ist die Messung für alle Pin-Kombinationen.
Diese Einstellungen sind auch im Readme beschrieben.

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,
>Mit welcher Diode hattest du den das Problem?
mit 1N4148, wenn ich wärme die Diode mit der Tischlampe an, immer ein 
Kondesator gezogen ist. Das ist für ca. 80C Graden. Ich teste die Diode 
direkt 'unter' der Tischlampe. Zusätzlich habe ich ein LM35 an Tester 
zugegeben und das ich für mich einfach zu messen:

unsigned long int ut1;
unsigned int  ut1a, ut2a, ut1_whole, ut1_fraction;
void temp_lm35(void);
void temp_ky(void);

unsigned char T[] EEMEM = " T=";
unsigned char A[] EEMEM = " A=";

...
  testend:
  ut1a = ReadADC(4 | (1<<REFS1));
  ADC_DDR = 0;
  ADC_PORT = 0;
  R_DDR = 0;
  R_PORT = 0;
}
...
  if(PartFound == PART_DIODE) {
    if(NumOfDiodes == 1) {
      //Standard-Diode
      lcd_eep_string(Diode);  //"Diode: "
      lcd_eep_string(Anode);
      lcd_data(diodes[0].Anode + 49);
      lcd_string(";K=");
      lcd_data(diodes[0].Cathode + 49);
      Line2();  //2. Zeile
      lcd_eep_string(Uf);  //"Uf = "
      lcd_string(itoa(diodes[0].Voltage, outval, 10));
      lcd_eep_string(mV);
//mszr
      temp_lm35();
//mszr
      goto end;
...

void temp_lm35()
         {
      lcd_eep_string(T);
      if(ut1a > 512) ut1a=ut1a+1;

//      ultoa(ut1a,outval,10);
//      lcd_string(outval);
      ut1 = 25*ut1a;
                        ut1_whole = (int)(ut1/100);
                        ultoa(ut1_whole,outval,10);
      lcd_string(outval);
            ut1_fraction = (int)(ut1 % 100);
      if(ut1_fraction>0) {
            lcd_data ('.');
            ultoa(ut1_fraction,outval,10);
      lcd_string(outval); }
            lcd_data ('C');
      ut1 =0;
      ut1_whole=0;
                        ut1_fraction=0;
       }

Viele Grüße!

von MartinSt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Könnte die Erkennung der Diode unter der Lampe als Kondensator an dem 
Glasgehäuse der 1N4148 liegen, die dann als Fotodiode arbeitet?

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich versuche heute Abend die Spanung ohne den Tester auch messen, 
sowieso er soll immer nur eine Diode zeigen. LED praktisch ist auch eine 
sensitive Fotodiode aber ist richtig bei 20-25C Grad erkennt, auch mit 
meiner Lampe aber  ca. 30-40 cm  entfernt.

von mszr (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Alle Glassdiode stark auf Licht reagieren. Die Spanung z.B. für glasse 
Diode direkt unter der Lampe kann 0.4V generieren.

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich hab Markus mal angeboten, das Projekt im SVN zu hosten. Dazu koennte 
ich noch ein alternatives Layout (mehr SMD) anbieten.

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Sooo... ich hab den Bauteiltester jetzt auch mal aufgebaut und dabei 
mein Layout verwendet. Funktioniert teilweise sehr gut, einen 
Kondensator mit 47nf erkennt und misst er korrekt und genau, aber einen 
BC337 erkennt er nur als FET. Dioden erkennt er wiederum super, aber 
Widerstaende (160Ohm) erkennt er als Doppeldiode...

Mal sehen ob Markus sich aendert, vielleicht kann ich ja auch noch das 
ein oder andere helfen, um diese Fehler auszubuegeln.

Michael

von Bert 0. (maschinist)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Markus,

habe meinen TransiTester mit Deiner neuen SW vom 17.1.10 geladen, uC ist 
ATMega8.

Seitdem werden alle Transistoren mit ganz geringen hfe-Werten (alle 
kleiner 10) angezeigt, vorher, mit der Software vom 2.1. hatte z.B. ein 
BC548 ein hfe von über 200...kann es vielleicht sein, daß da noch ein 
Fehler drin steckt?


Gruß...Bert

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
ja, die version vom 17.01 ist an einigen stelen verbesser worden, und 
stimmt einige sachen funktionieren nicht mehr, z.b. hFE

von Janusz B. (freddypl)


Bewertung
0 lesenswert
nicht lesenswert
Markus entered wrong value of resistors in this version, this should be 
improved in EEROM as described !

von Bert 0. (maschinist)


Bewertung
0 lesenswert
nicht lesenswert
Janusz B. schrieb:
> Markus entered wrong value of resistors in this version, this should be
> improved in EEROM as described !

Ah, thanks Janusz for this info!
I will go to check the content of my EEPROM later at the day and revert 
with the results.


Regards...Bert

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Bert Braun schrieb:

> Seitdem werden alle Transistoren mit ganz geringen hfe-Werten (alle
> kleiner 10) angezeigt, vorher, mit der Software vom 2.1. hatte z.B. ein
> BC548 ein hfe von über 200...kann es vielleicht sein, daß da noch ein
> Fehler drin steckt?

Ist bei mir genau so, wird also wohl ein Fehler sein. Sind noch ein paar 
mehr drinnen, aber insg. ist das schon eine super Sache.

Markus: Bitte arbeite mit der Archiv-Version und checke alle fixes dort 
ein. Als Basis diente die letzte Version, die Du hier gepostet hast.

An alle anderen:
Ich hoste das Projekt fuer Markus unter
http://svn.coremelt.net/avr/semiconductor_tester

Wer (schoener) online browsen will:
http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester

Die aktuelle Version (inkl. einiger Zugaben), bekommt man mit:
$ svn co http://svn.coremelt.net/avr/semiconductor_tester

Wer selber Zugaben hat (z.B. Layouts, weitere Schaltungsversionen, ...) 
soll sie bitte an Markus oder mich senden, dass sie ebenfalls ins Archiv 
aufgenommen werden.

Michael

P.S.
Ganz vergessen: Einen taeglich aktualisierten Snapshot als Archiv 
bekommt man unter: 
http://coremelt.net/files/software/repository-tarballs/semiconductor_tester.tar.gz 
(dann braucht man gar keinen SVN-Client)

von Alex H. (hoal) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Michael G. schrieb:
> Markus: Bitte arbeite mit der Archiv-Version und checke alle fixes dort
> ein. Als Basis diente die letzte Version, die Du hier gepostet hast.

Ich hoffe sehr, dass die Archivdatei auf der Artikelseite auch 
aktualisiert wird. Wer hat schon Lust, je nach Projekt zusätzlich zur 
jeweiligen Artikelseite auch noch in diversen SVNs nachzusehen?

von Hannes L. (hannes)


Bewertung
0 lesenswert
nicht lesenswert
Warum coremelt.net? - Ist mikrocontroller.net nicht mehr gut genug?

...

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hannes Lux schrieb:
> Warum coremelt.net? - Ist mikrocontroller.net nicht mehr gut genug?
>
> ...

Weil die eine Kiste unter meiner Kontrolle steht und die andere nicht?
Wegen dem Artikel: Ich denke man sollte die Links dort entsprechend 
anpassen bzw. hinzufuegen, ein Tarball wird ja automatisch generiert, so 
dass diese Option nicht verloren geht (normaler Download).

von Simon K. (simon) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Leider kann man die PNG Dateien (und andere nicht-Text Dateien) nicht 
öffnen.
http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester/board_armin_diehl/layout.png?view=markup

von Markus F. (5volt) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
> Mal sehen ob Markus sich aendert, vielleicht kann ich ja auch noch das
> ein oder andere helfen, um diese Fehler auszubuegeln.

Wie meinst du das?
Natürlich darf hier jeder Fehler beseitigen. Das ist ja der Sinn an Open 
Source...

> Seitdem werden alle Transistoren mit ganz geringen hfe-Werten (alle
> kleiner 10) angezeigt
Stimmt. Ist ein Fehler in der Berechnung (Überlauf einer "unsigned int", 
in Zeile 443 in main.c). Habe ich im angehängten Archiv korrigiert.

> Markus entered wrong value of resistors in this version, this should be
> improved in EEROM as described !
I think it is correct. R_L ist "680", and R_H is "4700" in EEPROM, isn't 
it?

R_H is internally multiplied with 100 (because then 2 EEPROM bytes are 
enough), then it results 470k.

> einen BC337 erkennt er nur als FET. Dioden erkennt er wiederum super, >aber 
Widerstaende (160Ohm) erkennt er als Doppeldiode...

Das finde ich merkwürdig. An diesen Routinen habe ich doch eigentlich 
gar nix verändert...
Bei mir passiert das nämlich nicht. Wenn es mit der angehängten Firmware 
auch nicht geht (und es mit der Firmware aus dem Artikel nach wie vor 
klappt), dann muss sich doch irgendwo ein Fehler eingeschlichen haben...

Ich stelle das Archiv hier nochmal rein. Sobald ich Zugang zu dem 
Repository auf Michaels SVS-Server erhalten habe, aktualisiere ich es 
auch da.

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb:

> Ich stelle das Archiv hier nochmal rein. Sobald ich Zugang zu dem
> Repository auf Michaels SVS-Server erhalten habe, aktualisiere ich es
> auch da.

Ich bin dran... schreib Dir gerade eine Mail.

von Thomas R. (tinman) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Michael G. schrieb:
>
> Weil die eine Kiste unter meiner Kontrolle steht und die andere nicht?

das verstehe ich jetzt nciht, es ist doch hier gepostet, reicht es nciht 
?

> Wegen dem Artikel: Ich denke man sollte die Links dort entsprechend
> anpassen bzw. hinzufuegen, ein Tarball wird ja automatisch generiert, so
> dass diese Option nicht verloren geht (normaler Download).

hast du auch SAS/SCSI raid mit backup, redundante leitung und zwei dns 
server ?

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Markus: Du hast nicht die Archiv-Version genommen, ich pflege Deine 
Aenderungen jetzt manuell ein. Ich bitte Dich aber, dann auch auf dem 
Archiv weiter zu arbeiten, sonst bringt das nichts.

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Thomas R. schrieb:

> hast du auch SAS/SCSI raid mit backup, redundante leitung und zwei dns
> server ?

Nicht dass es etwas zur Sache tun wuerde: Gespiegeltes Hardware-RAID, 
dediziertes Backup und redundante DNS-Server sind vorhanden.

von Michael G. (linuxgeek) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
AVR Memory Usage
----------------
Device: atmega48

Program:    4128 bytes (100.8% Full)
(.text + .data + .bootloader)


Haut nicht so ganz hin...

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.