Serwisy partnerskie:
Close icon
Serwisy partnerskie

Miernik prądu z wyświetlaczem OLED i niewielką płytką Arduino

Projekt zapewnia ekonomiczne i precyzyjne rozwiązanie wykrywania i wyświetlania wartości prądu stałego na wyświetlaczu OLED. Płytka wykorzystuje liniowy czujnik prądu ACS715T-20A oparty na efekcie Halla, wyświetlacz OLED 0,96 cala I2C i mikrokontroler Atmega328. To sprzęt open-source kompatybilny z Arduino, który może być dowolnie modyfikowany - jest łatwo programowalny za pomocą Arduino IDE.
Article Image

Konstrukcja miernika jest zbliżona do opisywanego już termometru ThermoDuino. Złącze CN2 jest przeznaczone do nagrywania Boot-Loadera i programowania układu Atmega328 za pomocą Arduino IDE. Zapoznaj się ze schematami poniżej, aby uzyskać informacje na temat programowania i połączeń. Płytka może mierzyć prąd do 20 A DC. Przy zasilaniu 5 V DC amperomierz pobiera ok. 20 mA.

Układ ACS715 składa się z precyzyjnego, nisko offsetowego, liniowego obwodu Halla z miedzianą ścieżką przewodzącą umieszczoną blisko powierzchni matrycy. Mierzony prąd, płynąc przez tę miedzianą ścieżkę, generuje pole magnetyczne, które układ scalony Halla przekształca na proporcjonalne napięcie. Dokładność urządzenia jest zoptymalizowana dzięki bliskiej odległości sygnału magnetycznego do przetwornika Halla. Precyzyjne, proporcjonalne napięcie jest dostarczane przez układ scalony Halla Bi-CMOS o niskim offsecie, stabilizowany chopperem, który jest programowany pod względem dokładności po montażu w obudowie. Napięcie wyjściowe ma dodatnie nachylenie (>VIOUT(Q)), gdy wzrastający prąd przepływa przez główną miedzianą ścieżkę przewodzenia (od pinów 1 i 2 do pinów 3 i 4), która jest ścieżką używaną do próbkowania prądu. Rezystancja wewnętrzna tej ścieżki przewodzącej wynosi typowo 1,2 mΩ, co zapewnia małe straty mocy. Grubość miedzianego przewodnika pozwala na odporność nawet 5-krotnego przeciążenia. Końcówki ścieżki przewodzącej są elektrycznie odizolowane od przewodów sygnałowych (piny od 5 do 8). Dzięki temu ACS715 może być stosowany w aplikacjach wymagających izolacji elektrycznej bez użycia optoizolatorów lub innych kosztownych technik izolacyjnych.

Nagrywanie Boot-Loadera i programowanie Arduino

Nowy układ ATmega328 wymaga wypalenia programu Boot-Loader i zaprogramowania go. Poniższe linki pomogą Ci zrozumieć ten proces.

Przykładowy kod Arduino znajduje się poniżej. Ten kod pomoże Ci przetestować projekt, my testowaliśmy go prądem do 3 A.

Płytka jest wykonana do pomiaru prądu do 5 A i należy użyć odpowiednio grubego przewodu do pomiaru prądu 20 A.

Parametry układu do pomiaru prądu

  • Zasilanie 5 V DC
  • Pobór prądu ok. 20 mA
  • Zakres pomiaru prądu od 0 do 20 A (tylko DC)
  • Czułość ACS715-20A: 185 mV/A
  • Czas narastania sygnału wyjściowego 5 µs w odpowiedzi na skokowy wzrost prądu wejściowego
  • Szerokość pasma 80 kHz
  • Całkowity błąd wyjściowy 1,5% typowy przy TA= 25°C
  • Mała powierzchnia podstawy, niskoprofilowa obudowa SOIC8
  • Wewnętrzna rezystancja przewodnika 1,2 mΩ
  • Minimalne napięcie izolacji 2,1 kVRMS od pinów 1-4 do pinów 5-8
  • Pojedyncze zasilanie 5 V
  • Czułość wyjściowa 133 do 185 mV/A
  • Napięcie wyjściowe proporcjonalne do prądu stałego

Schemat elektryczny miernika prądu z wyświetlaczem OLED i Arduino

Schemat elektryczny amperomierza
Schemat elektryczny amperomierza

Połączenia do programowania Arduino

Schemat połączenia Arduino z płytką celem wypalenia Boot-Loadera
Schemat połączenia Arduino z płytką celem wypalenia Boot-Loadera
Schemat połączenia Arduino z płytką celem zaprogramowania
Schemat połączenia Arduino z płytką celem zaprogramowania

Schemat 

Schemat połączenia testowego: zasilacza, płytki i odbiornika (tu silniczek)
Schemat połączenia testowego: zasilacza, płytki i odbiornika (tu silniczek)

Listing

#include <Adafruit_GFX.h> //Ekran kütüphanelerini ekleme
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display; 

const int currentSensor = A0;
const int voltageSensor = A1;
float vOUT = 0.0;
float vIN = 0.0;
float R1 = 10000.0;
float R2 = 1980.0;
float Vdata = 0;
float V,I,I1;
float Cdata;
float value;

void setup(){ 

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.display();

}
void loop(){

//float vIN = 0.0;

   for(int i = 0; i < 300; i++) // daha kararlı ortalama bir sonuç almak için 300 kez okuma yapma
   {
     Cdata = Cdata + analogRead(currentSensor);
     Vdata = Vdata + analogRead(voltageSensor);
     delay(1);
   }

 Cdata=Cdata/300;           
 V=(Cdata/1024.0)*5000;                       
 I=((V - 500)/ 192);

 Vdata=Vdata/300;
 vOUT = (Vdata * 5.0) / 1024.0;
 vIN = (vOUT / (R2/(R1+R2)));

// OLED Ekrana Yazma
  display.setTextColor(WHITE);
   
  // Amper değerini ekrana yazdırma
  display.setTextSize(1);
  display.setCursor(58,23);
  display.print(" Ampere");
  display.setCursor(0,16);
  display.setTextSize(2);
  if (I<0) {display.println("0.0");} else {display.println(I);}
    
display.display();
display.clearDisplay();

// Değerleri sıfırlama
  Cdata=0;
  I=0;
  V=0;
  Vdata=0;
  vIN=0;
  value;
}

electronics-lab.com - 2021, praca jest licencjonowana na podstawie licencji CC by sa 4.0 Creative Commons License

DATA SHEET
Wideo
Do pobrania
Download icon Gerbery Download icon Listing Download icon Schemat elektryczny miernika Download icon Nota aplikacyjna

Artykuł CURRENT METER USING 0.96″ OLED DISPLAY opracowano w wersji polskiej na podstawie współpracy z portalem www.electronics-lab.com.

Tematyka materiału: ACS715, ACS715T-20A, ATMEGA328
AUTOR
Źródło
www.electronics-lab.com
Udostępnij
UK Logo