Inhoudsopgave:

I - V-curve met Arduino - Ajarnpa
I - V-curve met Arduino - Ajarnpa

Video: I - V-curve met Arduino - Ajarnpa

Video: I - V-curve met Arduino - Ajarnpa
Video: Measure DC Voltage and Current with Arduino 2024, Mei
Anonim
I - V-curve met Arduino
I - V-curve met Arduino

Ik besloot om een IV-curve van leds te maken. Maar ik heb maar één multimeter, dus ik heb een eenvoudige IV-meter gemaakt met Arduino Uno.

Van Wiki: Een stroom-spanningskarakteristiek of I-V-curve (stroom-spanningscurve) is een relatie, meestal weergegeven als een grafiek of grafiek, tussen de elektrische stroom door een circuit, apparaat of materiaal en de bijbehorende spanning, of potentiaalverschil eroverheen.

Stap 1: Lijst met materialen

Voor dit project heb je nodig:

Arduino Uno met USB-kabel

breadboard en duponts kabel

leds (ik gebruikte 5 mm rode en blauwe leds)

valweerstand (shuntweerstand) - ik heb gekozen voor 200 ohm (voor 5V is de maximale stroom 25 mA)

weerstanden of potenciometer, ik gebruik een mix van weerstanden - 100k, 50k, 20k, 10k, 5k, 2.2k, 1k, 500k

Stap 2: Circuit

Stroomkring
Stroomkring

Circuit bestaat uit testled, shuntweerstand (R_drop) voor meetstroom. Om spanningsval en stroom te veranderen, gebruik ik verschillende weerstanden (R_x).

Basisprincipe is:

  • krijg totale stroom I in circuit
  • spanningsval krijgen bij het testen van led Ul

Totale stroom I

Om de totale stroom te krijgen, meet ik de spanningsval Ur op de shuntweerstand. Ik gebruik daarvoor analoge pinnen. Ik meet spanning:

  • U1 tussen GND en A0
  • U2 tussen GND en A2

Verschillend van deze spanningen is gelijk spanningsverlies op shuntweerstand: Ur = U2-U1.

Totale stroom I is: I = Ur/R_drop = Ur/250

Spanningsval Ul

Om spanningsval op led te krijgen, trek ik U2 af van de totale spanning U (die 5V zou moeten zijn): Ul = U - U2

Stap 3: Coderen

vlotter U = 4980; // spanning tussen GND en arduino VCC in mV = totale spanning

vlotter U1=0; // 1 sonde

vlotter U2=0; // 2 sonde

zweven Ur=0; // spanningsval op shuntweerstand

zweven Ul=0; // spanningsval op led

zweven I =0; // totale stroom in circuit

zweven R_drop=200; // weerstand van afsluitweerstand

ongeldige setup()

{

Serieel.begin(9600);

pinMode (A0, INGANG);

pinMode (A1, INGANG);

}

lege lus()

{

U1 = float(analogRead(A0))/1023*U; // krijg spanning tussen GND en A0 in milliVolt

U2 = float(analogRead(A1))/1023*U; // krijg spanning tussen GND en A1 in milliVolts

Ur=U2-U1; // laat de spanning op de shuntweerstand vallen

I=Ur/R_drop*1000; // totale stroom in microAmps

Ul=U-U2; // spanningsval op led

Serieel.print("1 ");

Serieafdruk (U1);

Serieel.print(" 2 ");

Serieafdruk (U2);

Serial.print(" //// ");

Serial.print ("spanningsdaling op shuntweerstand: ");

Serial.print(Ur);

Serial.print(" spanningsval op led: ");

Serial.print(Ul);

Serial.print(" totale stroom: ");

Serial.println(I);

// pauze

vertraging (500);

}

Stap 4: Testen

Testen
Testen
Testen
Testen
Testen
Testen

Ik test 2 leds, rood en blauw. Zoals je kunt zien, heeft blauwe led een hogere kniespanning en daarom moet blauwe led rond de 3 volt beginnen te blazen.

Stap 5: Weerstand testen

Weerstand testen
Weerstand testen
Weerstand testen
Weerstand testen

Ik doe I - V-curve voor weerstand. Zoals je kunt zien, is de grafiek lineair. Grafieken laten zien dat de wet van Ohm alleen werkt voor weerstanden, niet voor leds. Ik bereken weerstand, R = U/I. Metingen zijn niet nauwkeurig bij lage stroomwaarden, omdat analoog - digitaal converter in Arduino resolutie heeft:

5V / 1024 = 4,8 mV en stroom -> 19,2 microampère.

Ik denk dat meetfouten zijn:

  • breadboard contanten zijn geen super contanten en maken enkele fouten in spanning
  • gebruikte weerstanden heeft ongeveer 5% variatie in weerstand
  • ADC-waarden van analoog lezen oscilleren

Aanbevolen: