Przejdź do głównej zawartości

[Arduino] Trójkanałowy pomiar rezystancji

Moduł Arduino posiada kilka portów analogowych, poprzez które możemy mierzyć napięcie. Napięcie jest taką wielkością, że przy odrobinie wyobraźni i znajomości elektrotechniki w zasadzie każdą inną możemy sprowadzić właśnie do napięcia. Dzisiejszy projekt dotyczy trójkanałowego pomiaru rezystancji z wykorzystaniem Arduino. Oprócz modułu procesora wykorzystany będzie moduł wyświetlacza LCD. Dlaczego trójkanałowego? Ano dlatego, że taki układ można wykorzystać np. do pomiaru przenośnych uziemiaczy trójfazowych. 




Przykładowy uziemiacz 3-fazowy

Badanie takiego uziemiacza polega na pomiarze rezystancji każdej końcówki fazowej względem końcówki uziemiającej. Pomysł z Arduino polega na wykorzystaniu trzech analogowych portów wejściowych i pomiarze napięcia. Jak zatem zamienić wartość rezystancję na proporcjonalną wartość napięcia? Sposób jest bardzo prosty i oparty jest na zasadzie działania rezystancyjnego dzielnika napięcia.

Dzielnik rezystancyjny

Zasada działania takiego dzielnika opisana jest następującym wzorem:

Czyli znając wartość napięcia U1, napięcia U2 oraz rezystancji R1 jesteśmy w stanie przekształcić wzór i policzyć mierzoną rezystancję R2:

Jako napięcie U1 wykorzystany zostanie port zasilający Arduino o wartości 5 V. Wartość napięcia U2 zmierzymy, zaś wartość rezystancji R1 zostanie określona. 

Aby można było zobaczyć wyniki do Arduino dołączony zostanie wyświetlacz LCD. Cały schemat wygląda następująco:

Schemat układu
Centralnym punktem jest płytka Arduino. Na lewo część rezystancyjna, czyli rezystory wzorcowe o znanej wartości rezystancji, oraz pontencjometry symulujące mierzoną rezystancję. Z prawej strony zaś płytka stykowa oraz wyświetlacz LCD. Informację o tym jak go podłączyć można łatwo znaleźć w sieci, stąd nie będę tutaj tego powielać. Pomiar napięcia na mierzonych rezystancjach odbywa się przy użyciu trzech portów A0 - A2. Program realizujący funkcjonalność wygląda następująco:

#include <LiquidCrystal.h>

int pinR1 = 0;
int pinR2 = 1;
int pinR3 = 2;

int Rd = 1;
int Uwe = 5;

int a = 0;
float Uwy = 0;
float R1 = 0;
float R2 = 0;
float R3 = 0;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{

//inicjalizacja i ustawienie rozmiaru wyświetlacza
  lcd.begin(16, 2);
}

void loop()
{

//wyswietlenie kursora na danej pozycji
  lcd.setCursor(0,0);


  //pomiary dla L1
a = analogRead(pinR1);
if(a)
{
Uwy=a*(Uwe/1024.0);
R1=(Uwy*Rd)/(Uwe-Uwy);
}
 
  //pomiary dla L2
a = analogRead(pinR2);
if(a)
{
Uwy=a*(Uwe/1024.0);
R2=(Uwy*Rd)/(Uwe-Uwy);
}
 
  //pomiary dla L3
a = analogRead(pinR3);
if(a)
{
Uwy=a*(Uwe/1024.0);
R3=(Uwy*Rd)/(Uwe-Uwy);
}



//wyswietlenie wynikow
  lcd.print("R1="); lcd.print(R1,1); lcd.print(" ");
  lcd.print("R2="); lcd.print(R2,1);
  lcd.setCursor(0,1);
  lcd.print("R3="); lcd.print(R3,1);
  delay(500);
}


Pierwsza część programu są to deklaracje zmiennych i stałych oraz definicje.Główna część programu polega na odczycie napięcia z danego portu i przeliczeniu go na odpowiadającą wartość rezystancji. Przeliczenie czyli uwzględnienie 10-bitowej charakterystyki przetwornika AC/DC oraz podstawienie do wzoru na wartość rezystancji R2. Ostatnia część to wyświetlenie zaokrąglonych do dziesiątych części oma wyników na LCD. 

Projekt został wykonany na platformie TinkerCAD i tam też można go na żywo obejrzeć.

Bibliografia

[1] Strona internetowa sklepu uziemiacze.pl
[2] Projekt na stronie TinkerCAD - tutaj

Komentarze

Popularne posty z tego bloga

[Arduino] Czujnik martwej strefy w lusterku bocznym

Poruszanie się motocyklem, w szczególności w mieście, związane jest z ryzykiem wjechania innemu uczestnikowi ruchu przed przysłowiową maskę. Jest to o tyle niebezpieczne, że mimo względnie niewielkich prędkości może dojść do wywrotki motocykla wraz z kierującym i pasażerem. Aby tego uniknąć trzeba umiejętnie korzystać z lusterek, jednak w przypadku motocykli są one na ogół dość małe i bardziej niż ma to miejsce w samochodach doświadczamy tzw. martwej strefy. Ogólnie rzecz biorąc jest to strefa w bliskiej odległości od motocykla, której nie widzimy w lusterku (trzeba się wychylić i spojrzeć w nie pod innym kątem albo odwrócić głowę), a w której może znaleźć się inny pojazd. Z pomocną ręką może przyjść nowoczesna elektronika. W niniejszym wpisie przedstawię bardzo prostą propozycję wykorzystania Arduino jako czujnika martwej strefy motocykla.  Oczywiście zamiast motocykla można wstawić każdy inny pojazd, a wręcz pomysł można potraktować jako czujkę alarmową (czujnik ruchu). Cały pro...

Z psem na Turbacz

 Wyjazd wakacyjny nie musi się wiązać z zostawianiem psa w domu pod opieką rodziny czy sąsiadów, albo oddawaniem do psiego hotelu. Przy odrobinie wyobraźni i dobrych chęci czas ten można znakomicie spędzić wspólnie. Pewną propozycją dla osób posiadających psa lubiącego dalekie spacery może być wycieczka na Turbacz. Turbacz jest najwyższym szczytem Gorców, a jego wysokość to 1310 m.  Dojście z psem na szczyt możliwe jest legalnie niebieskim szlakiem z Łopusznej. O tyle zaznaczam legalność wejścia, ponieważ wstęp psów do parków narodowych jest w większości przypadków zabroniony, a Trubacz od północy otacza Gorczański Park Narodowy. Proponowany niebieski szlak jest to dość długi, bowiem ma około 11 km licząc od parkingu. Część turystów zostawia samochód na dzikim parkingu 3 km dalej po trasie szlaku, ale miejsca jest tam nie za dużo i może być problem. Poza tym umówmy się, że jak się idzie szlakiem to się idzie, a nie jedzie - do czego wrócę w innym wpisie. A zatem samochód zosta...