Spisu treści:

PCF8591 (analogowy ekspander we/wy i2c) Szybka i łatwa obsługa: 9 kroków
PCF8591 (analogowy ekspander we/wy i2c) Szybka i łatwa obsługa: 9 kroków

Wideo: PCF8591 (analogowy ekspander we/wy i2c) Szybka i łatwa obsługa: 9 kroków

Wideo: PCF8591 (analogowy ekspander we/wy i2c) Szybka i łatwa obsługa: 9 kroków
Wideo: Atom Hydrogen - универсальный контроллер умного дома, обзор, возможности, ESP Home, Home Assistant 2024, Listopad
Anonim
PCF8591 (ekspander we/wy analogowych i2c) Szybka i łatwa obsługa
PCF8591 (ekspander we/wy analogowych i2c) Szybka i łatwa obsługa

Biblioteka do obsługi i2c pcf8591 IC z arduino i esp8266.

Ten układ scalony może sterować (aż do 4) wejściem analogowym i/lub 1 wyjściem analogowym, takim jak pomiar napięcia, odczyt wartości termistora lub zanikanie diody LED.

Może odczytywać wartość analogową i zapisywać wartość analogową za pomocą tylko 2 przewodów (idealne dla ESP-01).

Staram się uprościć korzystanie z tego układu scalonego przy minimalnym zestawie operacji.

Aktualną wersję można znaleźć na mojej stronie

Krok 1: Jak działa I2c

Jak działa I2c
Jak działa I2c

I2C współpracuje z dwoma przewodami, SDA (linia danych) i SCL (linia zegara).

Obie te linie są otwarte, ale są podciągnięte rezystorami.

Zwykle na linii jest jeden master i jeden lub więcej slaveów, chociaż może być wielu masterów, ale o tym porozmawiamy później.

Zarówno urządzenia nadrzędne, jak i podrzędne mogą przesyłać lub odbierać dane, dlatego urządzenie może znajdować się w jednym z tych czterech stanów: przesyłanie urządzenia nadrzędnego, odbiór urządzenia nadrzędnego, przesyłanie urządzenia podrzędnego, odbiór urządzenia podrzędnego.

Krok 2:

Moją bibliotekę znajdziesz tutaj.

Pobrać.

Kliknij przycisk POBIERZ w prawym górnym rogu, zmień nazwę nieskompresowanego folderu PCF8591.

Sprawdź, czy folder PCF8591 zawiera PCF8591.cpp i PCF8591.h.

Umieść folder biblioteki PCF8591 w folderze /libraries/.

Może być konieczne utworzenie podfolderu biblioteki, jeśli jest to Twoja pierwsza biblioteka.

Uruchom ponownie środowisko IDE.

Krok 3: Użycie

Konstruktor: musisz podać adres i2c (aby sprawdzić adres skorzystaj z tego przewodnika I2cScanner)

PCF8591 (adres uint8_t);

dla esp8266, jeśli chcesz określić pin SDA e SCL, użyj tego:

PCF8591 (adres uint8_t, uint8_t sda, uint8_t scl);

Krok 4: Przeczytaj wartość

Przeczytaj wartość
Przeczytaj wartość

IC jak widać na obrazku ma 4 wejścia analogowe i 1 wyjście analogowe.

Czyli aby odczytać wszystkie wejścia analogowe w jednej transmisji można zrobić (wartość wynosi od 0 do 255):

PCF8591::AnalogInput ai = pcf8591.analogReadAll();

Serial.print(ai.ain0); Serial.print(" - "); Serial.print(ai.ain1); Serial.print(" - "); Serial.print(ai.ain2); Serial.print(" - "); Serial.println(ai.ain3);

jeśli chcesz odczytać pojedyncze wejście analogowe lub kanał:

int ana = pcf8591.analogRead(AIN0); // odczytaj analogowe 0

Krok 5: Odczytaj Vale z kanału

Przeczytaj Vale z kanału
Przeczytaj Vale z kanału

Ten układ scalony ma wiele rodzajów odczytu i można użyć wejścia analogowego lub kanału analogowego (gdy używasz pojedynczego wejścia analogowego do odczytu i kanału są na zdjęciach).

Na przykład, aby odczytać wartość kanału 0 na wejściu różnicowym Two należy wykonać:

int ana = pcf8591.analogRead(CHANNEL0, TWO_DIFFERENTIAL_INPUT); // odczytaj analogowe 0

Krok 6: Wpisz wartość

Jeśli chcesz zapisać wartość analogową, musisz to zrobić (wartość wynosi od 0 do 255):

pcf8591.analogWrite(128);

Krok 7: Dodatkowe funkcje

Dodatkową funkcją jest odczyt napięcia zapisu: Do obliczenia napięcia należy podać parametr:

  • microcontrollerReferenceVoltage: pobierz napięcie z mikrokontrolera (tylko AVR nie esp8266 dla esp 3.3v stałe)
  • referenceVoltage: jeśli microcontrollerReferenceVoltage false przyjmij tę wartość. Polecenie to:

void voltageWrite(wartość zmiennoprzecinkowa, mikrokontrolerReferenceVoltage bool = true, napięcie referencyjne zmiennoprzecinkowe = 5.0);

float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Przykładem jest:

pcf8591.napięcieZapis(2.7); // Wyjście 2,7 V

opóźnienie(3000);

pływak ana0V = pcf8591.voltageRead(AIN0); // Odczytaj napięcie z analogowego 0

Serial.println(ana0V);

Krok 8: Przykładowy schemat połączeń

Przykłady Schemat połączeń
Przykłady Schemat połączeń

Krok 9: Dzięki

Seria projektów i2c (Kolekcja):

  • Czujnik wilgotności temperatury
  • Ekspander analogowy
  • Ekspander cyfrowy
  • Wyświetlacz LCD

Zalecana: