Inhaltsverzeichnis:

I - V-Kurve mit Arduino - Gunook
I - V-Kurve mit Arduino - Gunook

Video: I - V-Kurve mit Arduino - Gunook

Video: I - V-Kurve mit Arduino - Gunook
Video: Different Ways for Measuring Current With Arduino 2024, April
Anonim
I - V-Kurve mit Arduino
I - V-Kurve mit Arduino

Ich beschloss, eine I-V-Kurve von LEDs zu erstellen. Aber ich habe nur ein Multimeter, also habe ich mit Arduino Uno ein einfaches I-V-Meter erstellt.

Aus Wiki: Eine Strom-Spannungs-Kennlinie oder I-V-Kurve (Strom-Spannungs-Kurve) ist eine normalerweise als Diagramm oder Grafik dargestellte Beziehung zwischen dem elektrischen Strom durch eine Schaltung, ein Gerät oder ein Material und der entsprechenden Spannung, oder Potentialunterschied darüber.

Schritt 1: Materialliste

Für dieses Projekt benötigen Sie:

Arduino Uno mit USB-Kabel

Steckbrett und Duponts-Kabel

LEDs (ich habe 5 mm rote und blaue LEDs verwendet)

Drop-Widerstand (Shunt-Widerstand) - ich habe mich für 200 Ohm entschieden (für 5V ist maximaler Strom 25 mA)

Widerstände oder Potenziometer, ich verwende eine Mischung aus Widerständen - 100k, 50k, 20k, 10k, 5k, 2.2k, 1k, 500k

Schritt 2: Schaltung

Schaltkreis
Schaltkreis

Schaltung besteht aus Test-LED, Shunt-Widerstand (R_drop) zum Messen des Stroms. Um Spannungsabfall und Strom zu ändern, verwende ich verschiedene Widerstände (R_x).

Grundprinzip ist:

  • Gesamtstrom I im Stromkreis erhalten
  • Spannungsabfall beim Testen der LED-Ul erhalten

Gesamtstrom I

Um den Gesamtstrom zu erhalten, messe ich den Spannungsabfall Ur am Shunt-Widerstand. Dafür verwende ich analoge Pins. Ich messe Spannung:

  • U1 zwischen GND und A0
  • U2 zwischen GND und A2

Von diesen Spannungen unterscheidet sich der gleiche Spannungsabfall am Shunt-Widerstand: Ur = U2-U1.

Der Gesamtstrom I beträgt: I = Ur/R_drop = Ur/250

Spannungsabfall Ul

Um einen Spannungsabfall an der LED zu erhalten, subtrahiere ich U2 von der Gesamtspannung U (die 5 V betragen sollte): Ul = U - U2

Schritt 3: Code

Schwimmer U = 4980; // Spannung zwischen GND und Arduino VCC in mV = Gesamtspannung

Schwimmer U1=0; // 1 Sonde

Schwimmer U2=0; // 2 Sonde

Schwimmer Ur=0; // Spannungsabfall am Shunt-Widerstand

Schwimmer Ul=0; // Spannungsabfall an der LED

Schwimmer I = 0; // Gesamtstrom im Stromkreis

Float R_drop=200; // Widerstand des Schließwiderstands

Void-Setup ()

{

Serial.begin (9600);

PinMode (A0, EINGANG);

PinMode (A1, EINGANG);

}

Leere Schleife ()

{

U1 = float(analogRead(A0))/1023*U; // Spannung zwischen GND und A0 in Millivolt abrufen

U2 = float(analogRead(A1))/1023*U; // Spannung zwischen GND und A1 in Millivolt abrufen

Ur=U2-U1; // Spannung am Shunt-Widerstand absenken

I=Ur/R_drop*1000; // Gesamtstrom in Mikroampere

Ul=U-U2; // Spannungsabfall an der LED

Serial.print("1");

Seriendruck (U1);

Serial.print("2");

Seriendruck (U2);

Serial.print("///");

Serial.print ("Spannungsabfall am Shunt-Widerstand: ");

Serial.print (Ur);

Serial.print ("Spannungsabfall an der LED: ");

Serial.print (Ul);

Serial.print ("Gesamtstrom: ");

Serial.println (I);

// Pause

Verzögerung (500);

}

Schritt 4: Testen

Testen
Testen
Testen
Testen
Testen
Testen

Ich teste 2 LEDs, rot und blau. Wie Sie sehen können, hat die blaue LED eine größere Kniespannung, und deshalb brauchen blaue LEDs eine blaue LED, die um 3 Volt brennt.

Schritt 5: Widerstand testen

Testwiderstand
Testwiderstand
Testwiderstand
Testwiderstand

Ich mache I - V-Kurve für Widerstand. Wie Sie sehen, ist der Graph linear. Grafiken zeigen, dass das Ohmsche Gesetz nur für Widerstände gilt, nicht für LEDs. Ich berechne Widerstand, R = U/I. Die Messungen sind bei niedrigen Stromwerten nicht genau, da der Analog-Digital-Wandler in Arduino eine Auflösung hat:

5V / 1024 = 4,8 mV und Strom -> 19,2 Mikroampere.

Ich denke, Messfehler sind:

  • Breadboard-Inhalte sind keine Super-Inhalte und machen einige Fehler in der Spannung
  • gebrauchte Widerstände haben ca. 5 % Widerstandsvarianz
  • ADC-Werte von analogen Leseschwingungen

Empfohlen: