Obsah:

PCF8591 (i2c Analog I/O Expander) Rychlé snadné použití: 9 kroků
PCF8591 (i2c Analog I/O Expander) Rychlé snadné použití: 9 kroků

Video: PCF8591 (i2c Analog I/O Expander) Rychlé snadné použití: 9 kroků

Video: PCF8591 (i2c Analog I/O Expander) Rychlé snadné použití: 9 kroků
Video: Arduino analog port expander - pcf8591 with I2C protocol 2024, Červenec
Anonim
PCF8591 (i2c Analog I/O Expander) Rychlé snadné použití
PCF8591 (i2c Analog I/O Expander) Rychlé snadné použití

Knihovna pro použití i2c pcf8591 IC s arduino a esp8266.

Tento IC může ovládat (až 4) analogový vstup a/nebo 1 analogový výstup, jako je měření napětí, čtení hodnoty termistoru nebo vyblednutí LED.

Může číst analogovou hodnotu a zapisovat analogovou hodnotu pouze pomocí 2 vodičů (ideální pro ESP-01).

Snažím se zjednodušit používání tohoto IC s minimální sadou operací.

Aktualizovanou verzi najdete na mém webu

Krok 1: Jak I2c funguje

Jak I2c funguje
Jak I2c funguje

I2C pracuje se dvěma vodiči, SDA (datový řádek) a SCL (hodinový řádek).

Obě tyto linky jsou otevřené, ale jsou vytaženy rezistory.

Obvykle je na lince jeden pán a jeden nebo více otroků, i když může být více mistrů, ale o tom si povíme později.

Master i slave mohou přenášet nebo přijímat data, proto může být zařízení v jednom z těchto čtyř stavů: hlavní vysílání, hlavní příjem, podřízený přenos, podřízený příjem.

Krok 2:

Moji knihovnu najdete zde.

Ke stažení.

Klikněte na tlačítko STAŽENÍ v pravém horním rohu, přejmenujte nekomprimovanou složku PCF8591.

Zkontrolujte, zda složka PCF8591 obsahuje PCF8591.cpp a PCF8591.h.

Umístěte složku knihovny PCF8591 do složky / libraries /.

Pokud je to vaše první knihovna, budete možná muset vytvořit podsložku knihoven.

Restartujte IDE.

Krok 3: Použití

Konstruktor: musíte zadat adresu i2c (pro kontrolu adresy použijte tuto příručku I2cScanner)

PCF8591 (adresa uint8_t);

pro esp8266, pokud chcete specifikovat pin SDA e SCL, použijte toto:

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

Krok 4: Přečtěte hodnotu

Přečíst hodnotu
Přečíst hodnotu

IC, jak vidíte na obrázku, má 4 analogové vstupy a 1 analogový výstup.

Chcete -li tedy přečíst všechny analogové vstupy jedním přenosem, můžete provést (hodnota je 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);

pokud chcete přečíst jeden analogový vstup nebo kanál:

int ana = pcf8591.analogRead (AIN0); // číst analogový 0

Krok 5: Přečtěte si Vale z kanálu

Přečtěte si Vale z kanálu
Přečtěte si Vale z kanálu

Tento IC má více typů čtení a můžete použít analogový vstup nebo analogový kanál (pokud používáte jedno čtení, analogový vstup a kanál jsou na obrázcích).

Chcete -li například přečíst hodnotu kanálu 0 ve dvou diferenciálních vstupech, musíte provést:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // číst analogový 0

Krok 6: Zapište hodnotu

Pokud chcete napsat analogovou hodnotu, musíte to udělat (hodnota je od 0 do 255):

pcf8591.analogWrite (128);

Krok 7: Další funkce

Další funkcí je čtení zapisovacího napětí: Pro výpočet napětí musíte předat nějaký parametr:

  • mikrokontrolérReferenceVoltage: získejte napětí z napětí mikrokontroléru (pouze AVR bez esp8266 pro pevné napětí 3,3v)
  • referenceVoltage: if microcontrollerReferenceVoltage false take this valuePříkaz jsou:

neplatné napětíPis

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

Příkladem je:

pcf8591.voltageWrite (2.7); // Výstup 2,7 voltů

zpoždění (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Odečtěte napětí z analogu 0

Serial.println (ana0V);

Krok 8: Příklady schématu připojení

Příklady Schéma připojení
Příklady Schéma připojení

Krok 9: Díky

Série projektů i2c (kolekce):

  • Teplotní vlhkostní senzor
  • Analogový expandér
  • Digitální expandér
  • LCD displej

Doporučuje: