Pfad: Home => AVR-DE => Anwendungen => Durchgangsprüfer   This page in english: Flag EN Logo
Durchgangspruefer AVR-Anwendungen

Durchgangsprüfer mit ATtiny25


Ein Durchgangsprüfer mit ATtiny25

Das kriegt man hier: einen Durchgangstester mit
  1. IC-/CMOS-Pin-schützend
  2. das Messergebnis mit Tönen ausgibt, die über 3 1/2 Oktaven variieren,
  3. nach einer Nicht-Messzeit von 15 Minuten (konfigurierbar bis 18 Minuten) eine Erinnerung ausgibt (um die Batterie zu schonen), was man abstellen kann, indem man ausschaltet oder halt die nächste Messung anstößt.
  4. niedrigstem Stromverbrauch im Standby-Betrieb (ca. 0,55 mA) für lange Batterie-Lebensdauer durch Nutzung aller prozessorinterner Sparmaßnahmen,
  5. viel Platz für eigene Modifikationen lässt (viele Register frei, gesamtes SRAM frei - bis auf den Platz für den Stapel),
  6. leicht anpassbar an fast alle Betriebsspannungen bis 5V.
Möglich macht das alles ein ATtiny25, der genügend niedrige Spannungen misst, als Langzeit-Timer geeignet ist und überhaupt sehr viel tolle Innereien bietet.

Die Zeichnungen sind als LibreOffice-Draw-Dateien hier, die Berechnungen sind als LibreOffice-Calc-Datei hier verfügbar.

Top Hardware Aufbau Software

1 Die Hardware

1.1 Schaltbild

Schaltbild des Durchgangspruefers Die Schaltung besteht aus folgenden Teilen:
  1. dem Prozessor ATtiny25, es kann auch ein ATtiny25V sein oder ein ATtiny45 oder ATtiny85 (dann dies bitte im Kopf so einstellen), er arbeitet mit dem internen RC-Oszillator bei 1MHz Takt (es brauchen keine Fuses gesetzt oder gelöscht werden),
  2. der Stromversorgung aus zwei 1,5V AA oder AAA-Zellen, mit dem Schalter S1,
  3. dem Reset-Widerstand von 10kΩ,
  4. einer roten 2mA-LED, die bei einem Widerstand von 10Ω oder weniger oder bei einer Dioden-Durchgangsspannung von weniger als 1,1V angeht,
  5. dem Schalter S2, der zwischen Widerstandsmessung (S2 offen) und Dioden-Messung (S2 geschlossen) umschaltet,
  6. dem Lautsprecher mit 45Ω, der die Töne ausgibt, Gleichstrom-getrennt mit einem Elko und durch einen Widerstand getrennt (wegen des ISP6-Programmierens),
  7. dem ISP6-Interface, mit dem der ATtiny25 programmiert werden kann (Schalter S2 muss beim Programmieren ausgeschaltet sein!),
  8. dem Messeingang an den Messpitzen 0 (minus) und 1 (plus) sowie die Mimik geht an die Eingänge ADC2 und ADC3, die als Differenzverstärker mit einer Verstärkung von 20 fungieren (wenn Widerstandsmessung eingeschaltet ist) bzw. mit 1 (wenn Diodenmessung eingeschaltet ist). ADC3 liegt dabei auf GND, sodass bei Widerstandmessung der Vollausschlag bei 1,1 V / 20 = 55 mV liegt.

1.2 Modifikationen

Die grüne LED ist entbehrlich, wenn keine größeren Widerstände als 10Ω angezeigt werden sollen. In diesem Fall wird der 180Ω-Widerstand einfach auf 560Ω vergrößert.

Die Schaltung lässt sich auch leicht an andere Betriebsspannungen oder Widerstands-Messbereiche anpassen. Die Tabelle gibt dazu Dimensionierungshinweise, der Defaultfall ist gelb hinterlegt.

MessmodusWiderstand für die Strombegrenzung (E24) bei einer Betriebsspannung von
Widerstands-
bereich
AuflösungMessstrom
Vollausschlag
ULEDMessstrom
max.
2,4 V3,0 V3,3 V3,6 V3,7 V4,5 V4,8 V5,0 V
1 Ω(5)0,033 Ω53,28 mA(1)2,32 V85,83 mA(1)-(4)12 Ω18 Ω24 Ω39 Ω47 Ω51 Ω
2 Ω(5)0,067 Ω26,64 mA(3)2,30 V42,92 mA(3)-(4)24 Ω36 Ω47 Ω51 Ω82 Ω91 Ω100 Ω
5 Ω(5)0,167 Ω10,66 mA(3)2,07 V15,93 mA(3)27 Ω82 Ω110 Ω130 Ω150 Ω220 Ω240 Ω270 Ω
10 Ω0,333 Ω5,33 mA(3)1,96 V5,73 mA(3)75 Ω180 Ω240 Ω300 Ω330 Ω470 Ω510 Ω560 Ω
15 Ω0,500 Ω3,55 mA1,92 V3,72 mA120 Ω300 Ω360 Ω470 Ω680 Ω820 Ω
20 Ω0,667 Ω2,66 mA1,89 V2,69 mA160 Ω390 Ω510 Ω620 Ω680 Ω1,0 kΩ1,1 kΩ
50 Ω1,667 Ω1,07 mA(2)1,85 V1,42 mA470 Ω1,0 kΩ1,3 kΩ1,6 kΩ2,0 kΩ
(1): Zu hoher Strom durch die grüne LED!
(2): Zu niedriger Strom durch die grüne LED!
(3): Keine Niedrigstrom-LED erforderlich!
(4): Funktioniert so nicht!
(5): Achtung! Kann bei falscher Polung CMOS-Eingangs-Schutzdioden beschädigen!

Sollte das Programmiergerät die 100 Ω nicht schaffen und es Fehlermeldungen beim Programmieren hageln, kann man den auch größer machen oder durch einen Jumper ersetzen. Die Lautstärke leidet kaum vom Vergrößern!

1.3 Die Vorwärtsspannung von grünen LEDs

Bei der Berechnung alternativer Beschaltungen ist die Vorwärtsspannung der Leuchtdiode eine wichtige Größe, besonders bei niedrigen Betriebsspannungen der Schaltung. Ich habe daher eine grüne LED im Detail ausgemessen.

Die Vorwärtsspannung einer grünen LED Das Diagramm zeigt die Messergebnisse. Alle Messdaten wurden mit angenähert. Wie man sieht, liefert die logarithmische Näherung in allen Bereichen der Kurve keine vernünftigen Ergebnisse. Ich habe daher die Berechnung auf die quadratische Näherung umgestellt, die den Messdaten besser angepasst ist.

Top Hardware Aufbau Software

2 Aufbau

2.1 Aufbau auf dem Steckbrett

Durchgangspruefer auf dem Steckbrett Die wenigen Bauteile sind schnell mal auf dem Steckbrett zusammengesteckt. Die Schaltung ist sehr empfindlich und quitscht, wenn die Batterie alt wird und deren Spannung nachlässt. Auf die beiden Schutzdioden wurde hier mal verzichtet.

2.2 Aufbau auf Lochraster und in einem Plastikgehäuse

Lochraster-Aufbau des Durchgangspruefers So kann er auf einer großzügig bestückten Sechzehntel-Euro-Lochraster-Platine mit 50x40mm aufgebaut werden. Wer es unbedingt braucht, kann auf dieser Basis der Platzierung auch eine einseitig gedruckte Schaltung produzieren, die mit ein oder zwei Brücken auskommt.

2.3 Teile-Liste

Teileliste fuer den Durchgangspruefer Das ist die Teileliste mit ganz viel Kleinzeugs. Mit knapp 20 Euronen bist Du dabei, sozusagen weniger als 1 Euro pro Ton.

Top Hardware Aufbau Software

3 Software

Die geteste Version der Software in Assembler-Format gibt es zum Download hier.

Der Prozessor läuft mit den default-mäßig eingestellten 1 MHz internem RC-Oszillator-Takt mit voreingestelltem Teiler durch Acht, Fuses müssen daher nicht geändert werden.

Wegen der geringen Aktivität des Prozessors ist der Strombedarf in jeder Hinsicht minimiert. Dazu trägt der erweiterte Sleep-Modus und das Abschalten nicht benötigter interner Hardware bei. Der Betriebsstrom in Bereitschaft beträgt 0,54 mA. Der Messstrom liegt bei 4,44 mA (bei 200Ω statt 180Ω), der Betriebsstrom bei aktivem Lautsprecher bei knapp 11 mA.

Wegen des geringen Rechenaufwands und dem entspannten Timing finden alle Aktivitäten innerhalb der Interrupt-Service-Routinen statt, so dass im Programm-Loop alle Aufwachvorgänge nur wieder mit Sleep enden.

3.1 Wie es funktioniert: Widerstands- und Diodenmessung

Der AD-Wandler im ATtiny25 läuft im Freilauf, d.h.: immer, wenn ein Messwert abgeholt wird (mit ADCC-Interrupt), wird die nächste Messung automatisch angestoßen. Beim Interrupt werden die LSB- und MSB-Werte des Messergebnisses abgeholt und zu einer 16-Bit-Summe in rAdcH:rAdcL hinzu addiert. Nach 64 Messungen wird das MSB dieser Summe ausgewertet. Dazu wird es durch acht geteilt und abgefragt, ob es kleiner als 30 ist. Ist das nicht der Fall, wird der Tonausgang OC0A auf Clear gestellt und die rote LED ausgeschaltet.

Ist das Ergebnis kleiner als 30, wird es mit zwei multipliziert und zum Beginn der Tontabelle hinzuaddiert. Die beiden Bytes aus dem Flash werden als Compare-Wert-A und als Vorteiler in TCCRB von Timer TC0 geschrieben. Der Timerausgang OC0A wird auf Toggle eingestellt und die rote LED eingeschaltet.

Die Umschaltung von Widerstands- auf Diodenmessung wird dadurch vorgenommen, indem die Differenzspannung zwischen ADC2 und ADC3 (mit ADC3 auf 0 Volt) nicht mehr mit 20 multipliziert wird, sondern mit Eins. Dadurch wird der Eingang ADC2 mit der internen Referenzspannung von 1,1 V verglichen, was dann auch die Messspannung an die Durchlassspannung von Dioden anpasst.

Diese Umschaltung zwischen beiden Verstärkungsfaktoren wird auch bei jedem Pegelwechsel am Eingang von PB1 vorgenommen, an dem der Schalter S2 angeschlossen ist und dessen Pull-Up-Widerstand eingeschaltet ist.

3.2 Wie es funktioniert: Time-Out-Erkennung

Nach fünfzehn Minuten Inaktivität am Messeingang soll der Lautsprecher an das angeschaltete Gerät erinnern. Dazu ist Timer TC1 auf die höchste Vorteiler-Rate eingestellt. Erreicht der Zähler nach 16.384 * 256 / 1.000.000 = 4,19 Sekunden einen Überlauf, wird der TC1OVF-Interrupt ausgelöst und ein Zähler abwärts gezählt. Erreicht dieser Null, wird der OC0A-Tonausgang auf Toggle eingestellt und die rote LED eingeschaltet.

Durch Kurzschließen der Messeingänge lässt sich dieser Zustand wieder aufheben, da damit der Zähler wieder auf seinen Ausgangswert gesetzt wird.

Top Hardware Aufbau Software



Lob, Tadel, Fehlermeldungen, Genöle und Geschimpfe oder Spam bitte per Email an mich (info und die Web-URL-Adresse), ich freue mich über alle Arten von Rückmeldungen.

©2023 by http://www.avr-asm-tutorial.net