In diesem Projekt werden wir ein Amperemeter mit niedriger Reichweite unter Verwendung eines ATMEGA8-Mikrocontrollers herstellen. In ATMEGA8 verwenden wir dazu die 10-Bit-ADC-Funktion (Analog to Digital Conversion). Obwohl wir nur wenige andere Möglichkeiten haben, den aktuellen Parameter von einer Schaltung abzurufen, werden wir die resistive Drop-Methode verwenden, da dies der einfachste und einfachste Weg ist, den aktuellen Parameter abzurufen.
Bei dieser Methode werden wir den Strom, der gemessen werden musste, an einen kleinen Widerstand weiterleiten. Dadurch erhalten wir einen Abfall über den Widerstand, der mit dem durch ihn fließenden Strom zusammenhängt. Diese Spannung über dem Widerstand wird ATMEGA8 zur ADC-Umwandlung zugeführt. Damit haben wir den aktuellen digitalen Wert, der auf einem 16x2 LCD angezeigt wird.
Dafür werden wir eine Spannungsteilerschaltung verwenden. Wir werden den Strom durch den gesamten Widerstandszweig speisen. Der Mittelpunkt der Verzweigung wird zur Messung gebracht. Wenn sich der Strom ändert, ändert sich der Widerstand linear. Damit haben wir eine Spannung, die sich mit der Linearität ändert.
Hierbei ist zu beachten, dass der vom Controller für die ADC-Konvertierung verwendete Eingang nur 50 µAmp beträgt. Dieser Belastungseffekt des auf Widerstand basierenden Spannungsteilers ist wichtig, da der aus Vout des Spannungsteilers entnommene Strom den Fehlerprozentsatz erhöht, da wir uns jetzt nicht um den Belastungseffekt kümmern müssen.
Erforderliche Komponenten
Hardware: ATMEGA8, Netzteil (5 V), AVR-ISP-PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100 uF-Kondensator, 100 nF-Kondensator (4 Teile), 100 Ω-Widerstand (7 Teile) oder 2,5 Ω (2 Teile), 100 kΩ-Widerstand.
Software: Atmel Studio 6.1, Progisp oder Flash Magic.
Schaltplan und Arbeitserklärung
Die Spannung an R2 und R4 ist nicht vollständig linear; es wird laut sein. Um das Rauschen herauszufiltern, werden Kondensatoren über jedem Widerstand in der Teilerschaltung angeordnet, wie in der Abbildung gezeigt.
In ATMEGA8 können wir jedem der VIER PORTC-Kanäle einen Analogeingang geben. Es spielt keine Rolle, welchen Kanal wir wählen, da alle gleich sind. Wir werden Kanal 0 oder PIN0 von PORTC wählen. In ATMEGA8 hat der ADC eine Auflösung von 10 Bit, sodass der Controller eine minimale Änderung von Vref / 2 ^ 10 erkennen kann. Wenn also die Referenzspannung 5 V beträgt, erhalten wir ein digitales Ausgangsinkrement für jeweils 5/2 ^ 10 = 5 mV. Für jedes 5-mV-Inkrement am Eingang haben wir also ein Inkrement von eins am digitalen Ausgang.
Jetzt müssen wir das ADC-Register basierend auf den folgenden Begriffen einstellen:
1. Zunächst müssen wir die ADC-Funktion in ADC aktivieren.
2. Hier erhalten Sie eine maximale Eingangsspannung für die ADC-Umwandlung von + 5V. So können wir den Maximalwert oder die Referenz des ADC auf 5 V einstellen.
3. Der Controller verfügt über eine Triggerkonvertierungsfunktion, die bedeutet, dass die ADC-Konvertierung erst nach einem externen Trigger erfolgt, da wir nicht möchten, dass die Register so eingestellt werden müssen, dass der ADC im kontinuierlichen Freilaufmodus ausgeführt wird.
4. Bei jedem ADC sind die Umwandlungsfrequenz (Analogwert zu Digitalwert) und die Genauigkeit der Digitalausgabe umgekehrt proportional. Für eine bessere Genauigkeit der digitalen Ausgabe müssen wir daher eine geringere Frequenz wählen. Für die normale ADC-Uhr stellen wir den Vorverkauf des ADC auf den Maximalwert (2) ein. Da wir die interne Uhr von 1 MHz verwenden, ist die Uhr von ADC (1000000/2).
Dies sind die einzigen vier Dinge, die wir wissen müssen, um mit ADC beginnen zu können.
Alle oben genannten vier Merkmale werden durch zwei Register eingestellt.
ROT (ADEN): Dieses Bit muss gesetzt sein, um die ADC-Funktion von ATMEGA zu aktivieren.
BLAU (REFS1, REFS0): Diese beiden Bits werden verwendet, um die Referenzspannung (oder die maximale Eingangsspannung, die wir geben werden) einzustellen. Da wir eine Referenzspannung von 5 V haben möchten, sollte REFS0 anhand der Tabelle eingestellt werden.
GELB (ADFR): Dieses Bit muss gesetzt sein, damit der ADC kontinuierlich läuft (Freilaufmodus).
PINK (MUX0-MUX3): Diese vier Bits dienen zum Teilen des Eingangskanals. Da wir ADC0 oder PIN0 verwenden werden, müssen wir keine Bits wie in der Tabelle setzen.
BRAUN (ADPS0-ADPS2): Diese drei Bits dienen zum Einstellen des Prescalars für ADC. Da wir einen Prescalar von 2 verwenden, müssen wir ein Bit setzen.
DARK GREEN (ADSC): Dieses Bit wird gesetzt, damit der ADC die Konvertierung startet. Dieses Bit kann im Programm deaktiviert werden, wenn die Konvertierung gestoppt werden muss.