Autor Instructables pod pseudonimem CreativeStuff mówi, jak zaimplementować Arduino najprostszy omomierz. Aby to zrobić, bierze płytkę typu breadboard:
Właściwie Arduino:
Wyświetl na HD44780 (KB1013VG6):
Swetry „dupont” lub domowe:
Rezystor zmienny 10 kΩ z lutowanymi cienkimi twardymi przewodami (do regulacji kontrastu obrazu na wyświetlaczu):
Nic nie przypomina? Zgadza się, wszystko nowe jest dobrze zapomniane. Koneserzy zapamiętają, co to jest i gdzie:
Stały rezystor 470 Ω:
A wszystko to łączy się zgodnie z tym schematem:
Ponieważ schematy skompilowane w programie Fritzing nie są zbyt pouczające, kreator kompiluje deszyfrowanie:
Pin wyświetlacza 1 - wspólny przewód
Wyświetlacz Pin 2 - Plus Power
Wyświetlacz Pin 3 - Styk ruchomy rezystora zmiennego
Wyświetlacz 4 pin - Arduino D12 pin
Pin wyświetlacza 5 - wspólny przewód
Pin wyświetlacza 6 - pin D11 Arduino
Styki wyświetlacza 7, 8, 9, 10 nie są do niczego podłączone
Pin wyświetlacza 11 - Pin Arduino D5
Wyświetlacz 12 pinów - Arduino D4 pin
Pin wyświetlacza 13 - Pin Arduino D3
Pin wyświetlacza 14 - Pin Arduino D2
Wyświetlacz Pin 15 - Plus Power
Pin wyświetlacza 16 - Wspólny przewód
Powtarzając projekt, należy przestudiować arkusz danych na wyświetlaczu, aby dowiedzieć się, czy jego podstawa różni się od standardu.
Master łączy jeden ze stałych styków rezystora zmiennego z mocą plus, a drugi ze wspólnym drutem. Dzielnik napięcia składa się z przykładowego i przetestowanego opornika: testowany opornik z jednym wyjściem na moc dodatnią i przykładowy z jednym wyjściem na wspólny przewód. Pozostałe niezajęte wyjścia obu rezystorów są połączone razem i podłączone do styku Adu Arduino. Wypełnij szkic:
#include
// LiquidCrystal (rs, sc, d4, d5, d6, d7)
LCD ciekłokrystaliczny (12, 11, 5, 4, 3, 2);
const int analogPin = 0;
int analogval = 0;
int vin = 5;
float buff = 0;
float vout = 0;
zmiennoprzecinkowa R1 = 0;
pływak R2 = 470;
void setup () {
lcd.begin (16, 2);
}
void loop () {
analogval = analogRead (analogPin);
if (analogval) {
buff = analogval * vin;
vout = (buff) / 1024.0;
if (vout> 0,9) {
buff = (vin / vout) - 1;
R1 = buff * R2;
lcd.setCursor (0, 0);
lcd.print („-Resistance-”);
lcd.setCursor (0, 1);
jeśli ((R1)> 999) {
lcd.print („”);
druk lcd (R1 / 1000);
lcd.print („K ohm”);
}
jeszcze {
lcd.print („”);
druk lcd (okrągły (R1));
lcd.print („om”);
}
opóźnienie (1000);
lcd.clear ();
}
jeszcze {
lcd.setCursor (0, 0);
lcd.print („Włóż rezystor”);
lcd.setCursor (0, 1);
}
}
}
Zaleca się dokładniejszy pomiar rezystancji rezystora odniesienia, a także napięcia zasilania (oczywiście podczas pomiaru rezystora odniesienia należy tymczasowo usunąć), a następnie wprowadzić wyniki pomiaru w odpowiednich liniach na początku szkicu. Weź źródło zasilania z dobrą stabilizacją napięcia wyjściowego. Program oblicza rezystancję zgodnie ze wzorem:
R2 = Vout * R1 / (Vin - Vout),
wyprowadzony ze wzoru:
Vout = Vin * R2 / (R1 + R2),
gdzie R1 jest oporem modelu, R2 jest oporem mierzonym, Vin jest napięciem zasilania, Vout jest napięciem w punkcie środkowym dzielnika.
Pozostaje usunąć płytkę ścienną, wykonać wszystkie połączenia przez lutowanie i przeniesienie domowej roboty do skrzynki. Ale w tej formie jest to niepraktyczne, ponieważ powiela funkcję omomierza dostępną w multimetrze. Poprzez przemodelowanie szkicu i zastosowanie precyzyjnego źródła zasilania i rezystora modelowego można na przykład użyć projektu do sortowania rezystorów według dokładności ich produkcji. Aby natychmiast wyświetlić informacje, do której z pięciu grup należy element po podłączeniu rezystora: 1, 2, 5, 10 lub 20%.