Mündəricat:

Arduino ilə I - V əyrisi: 5 addım
Arduino ilə I - V əyrisi: 5 addım

Video: Arduino ilə I - V əyrisi: 5 addım

Video: Arduino ilə I - V əyrisi: 5 addım
Video: Home Assistant - подключаем адресную ленту WS2812B через ESP8266 с прошивкой WLED 2024, Noyabr
Anonim
Arduino ilə I - V əyrisi
Arduino ilə I - V əyrisi

Ledlərin I -V əyrisini yaratmaq qərarına gəldim. Ancaq mənim yalnız bir multimetrim var, buna görə Arduino Uno ilə sadə I-V sayğac yaratdım.

Wiki -dən: Cərəyan -gərginlik xarakteristikası və ya I -V əyrisi (cərəyan -gərginlik əyrisi), bir dövrə, cihaz və ya materialdan keçən elektrik cərəyanı ilə müvafiq gərginlik və ya arasındakı potensial fərq.

Addım 1: Materialların siyahısı

Bu layihə üçün sizə lazım olacaq:

USB kabel ilə Arduino Uno

çörək taxtası və duponts kabeli

ledlər (5 mm qırmızı və mavi ledlərdən istifadə etdim)

düşmə rezistoru (şant müqaviməti) - 200 ohm üçün qərar verdim (5V üçün maksimum cərəyan 25 mA)

rezistorlar və ya potensiometr, rezistorların qarışığından istifadə edirəm - 100k, 50k, 20k, 10k, 5k, 2.2k, 1k, 500k

Addım 2: Dövrə

Dövrə
Dövrə

Dövrə, cərəyanı ölçmək üçün LED, şönt rezistorundan (R_drop) ibarətdir. Gərginliyi və cərəyanı dəyişdirmək üçün müxtəlif rezistorlardan (R_x) istifadə edirəm.

Əsas prinsip budur:

  • dövrədə ümumi cərəyan I əldə edin
  • testdə Ul gərginliyini azaldın

Ümumi cərəyan I

Ümumi cərəyanı əldə etmək üçün şunt rezistorunda Ur geriliminin düşməsini ölçürəm. Bunun üçün analog pinlərdən istifadə edirəm. Gərginliyi ölçürəm:

  • GND və A0 arasındakı U1
  • GND və A2 arasında U2

Bu gərginliklərdən fərqli olaraq şönt rezistorunda bərabər gərginlik düşməsi var: Ur = U2-U1.

Ümumi cərəyan I: I = Ur/R_drop = Ur/250

Gərginlik düşməsi Ul

Leddə gərginlik düşməsini əldə etmək üçün U2 -ni ümumi gərginlikdən (5V olmalıdır) çıxarıram: Ul = U - U2

Addım 3: Kod

üzmək U = 4980; // mV -də GND ilə arduino VCC arasındakı gərginlik = ümumi gərginlik

float U1 = 0; // 1 zond

float U2 = 0; // 2 zond

üzən Ur = 0; // şönt rezistorunda gərginlik düşməsi

float Ul = 0; // LED -də gərginlik azalması

float I = 0; // dövrədəki ümumi cərəyan

float R_drop = 200; // bağlanma müqavimətinin müqaviməti

boş quraşdırma ()

{

Serial.begin (9600);

pinMode (A0, GİRİŞ);

pinMode (A1, GİRİŞ);

}

boşluq döngəsi ()

{

U1 = float (analogRead (A0))/1023*U; // milliVolts ilə GND və A0 arasındakı gərginliyi əldə edin

U2 = float (analogRead (A1))/1023*U; // GND ilə A1 arasındakı gərginliyi milliVolt ilə əldə edin

Ur = U2-U1; // şönt rezistorunda gerilim düşməsi

I = Ur/R_drop*1000; // microAmps -də ümumi cərəyan

Ul = U-U2; // LED -də gərginlik azalması

Serial.print ("1");

Serial. çap (U1);

Serial.print ("2");

Serial. çap (U2);

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

Serial.print ("şönt rezistorunda gərginlik düşməsi:");

Serial. çap (Ur);

Serial.print ("LED -də gərginlik düşməsi:");

Serial. çap (Ul);

Serial.print ("cari cərəyan:");

Serial.println (I);

// fasilə

gecikmə (500);

}

Addım 4: Test

Test
Test
Test
Test
Test
Test

Qırmızı və mavi olmaqla 2 led sınayıram. Gördüyünüz kimi, mavi ledin diz gərginliyi daha böyükdür və buna görə də mavi ledin 3 volt ətrafında üfürmək üçün mavi ledə ehtiyacı var.

Addım 5: Rezistoru sınayın

Test Rezistoru
Test Rezistoru
Test Rezistoru
Test Rezistoru

Rezistor üçün I - V əyrisini edirəm. Gördüyünüz kimi, qrafik xətti olur. Qrafiklər göstərir ki, Ohm qanunu yalnız rezistorlar üçün işləyir, ledlər üçün deyil. R = U/I müqavimətini hesablayıram. Ölçmələr aşağı cərəyan dəyərində dəqiq deyil, çünki Arduinodakı analog -rəqəmsal çeviricinin qətnaməsi var:

5V / 1024 = 4.8 mV və cərəyan -> 19.2 microAmps.

Düşünürəm ki, ölçü səhvləri bunlardır:

  • çörək taxtası iştirakçıları super yarışmacılar deyil və gərginlikdə bəzi səhvlər edir
  • istifadə olunan rezistorlar 5 % -ə yaxın müqavimət göstərir
  • Analog oxunuşdan ADC dəyərləri salınır

Tövsiyə: