Turinys:

PCF8591 (i2c analoginis įvesties/išvesties plėtiklis) Greitas ir paprastas naudojimas: 9 žingsniai
PCF8591 (i2c analoginis įvesties/išvesties plėtiklis) Greitas ir paprastas naudojimas: 9 žingsniai

Video: PCF8591 (i2c analoginis įvesties/išvesties plėtiklis) Greitas ir paprastas naudojimas: 9 žingsniai

Video: PCF8591 (i2c analoginis įvesties/išvesties plėtiklis) Greitas ir paprastas naudojimas: 9 žingsniai
Video: Arduino analog port expander - pcf8591 with I2C protocol 2024, Liepa
Anonim
PCF8591 (i2c analoginis įvesties/išvesties plėtiklis) Greitas ir paprastas naudojimas
PCF8591 (i2c analoginis įvesties/išvesties plėtiklis) Greitas ir paprastas naudojimas

Biblioteka, skirta naudoti i2c pcf8591 IC su arduino ir esp8266.

Šis IC gali valdyti (iki 4) analoginį įėjimą ir (arba) 1 analoginį išėjimą, pavyzdžiui, išmatuoti įtampą, nuskaityti termistoriaus vertę arba išblukti.

Gali skaityti analoginę vertę ir rašyti analoginę reikšmę tik 2 laidais (puikiai tinka ESP-01).

Stengiuosi supaprastinti šio IC naudojimą su minimaliu operacijų rinkiniu.

Atnaujintą versiją rasite mano svetainėje

1 žingsnis: Kaip veikia „I2c“

Kaip veikia „I2c“
Kaip veikia „I2c“

„I2C“veikia su dviem laidais: SDA (duomenų linija) ir SCL (laikrodžio linija).

Abi šios linijos yra atviro nutekėjimo, tačiau ištraukiamos su rezistoriais.

Paprastai linijoje yra vienas šeimininkas ir vienas ar keli vergai, nors gali būti keli šeimininkai, tačiau apie tai kalbėsime vėliau.

Tiek šeimininkai, tiek vergai gali perduoti arba priimti duomenis, todėl įrenginys gali būti vienoje iš šių keturių būsenų: pagrindinis perdavimas, pagrindinis priėmimas, vergo perdavimas, vergo priėmimas.

2 žingsnis:

Mano biblioteką rasite čia.

Atsisiųsti.

Viršutiniame dešiniajame kampe spustelėkite mygtuką ATSISIŲSTI, pervardykite nesuspaustą aplanką PCF8591.

Patikrinkite, ar aplanke PCF8591 yra PCF8591.cpp ir PCF8591.h.

Įdėkite bibliotekos aplanką PCF8591 į savo / libraries / aplanką.

Jums gali tekti sukurti bibliotekų pakatalogį, jei tai jūsų pirmoji biblioteka.

Iš naujo paleiskite IDE.

3 žingsnis: naudojimas

Konstruktorius: turite įvesti „i2c“adresą (norėdami patikrinti adresą, naudokite šį vadovą „I2cScanner“)

PCF8591 (adresas uint8_t);

Esp8266, jei norite nurodyti SDA ir SCL kaištį, naudokite tai:

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

4 žingsnis: perskaitykite vertę

Skaityti vertę
Skaityti vertę

IC, kaip matote paveikslėlyje, turi 4 analogines įvestis ir 1 analoginę išvestį.

Taigi, norėdami perskaityti visas analogines įvestis viename perdavime, galite tai padaryti (vertė yra nuo 0 iki 255):

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

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

jei norite skaityti vieną analoginį įėjimą ar kanalą:

int ana = pcf8591.analogRead (AIN0); // skaityti analogą 0

5 veiksmas: perskaitykite „Vale“iš kanalo

Skaitykite Vale iš kanalo
Skaitykite Vale iš kanalo

Šis IC turi kelių tipų skaitymą ir galite naudoti analoginį įvestį arba analoginį kanalą (kai naudojate vieno skaitymo analoginę įvestį ir kanalas yra nuotraukose).

Pavyzdžiui, norėdami perskaityti 0 kanalo vertę dviejuose diferenciniuose įėjimuose, turite atlikti šiuos veiksmus:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // skaityti analogą 0

6 veiksmas: parašykite vertę

Jei norite parašyti analoginę vertę, turite tai padaryti (vertė yra nuo 0 iki 255):

pcf8591.analogWrite (128);

7 žingsnis: papildomos funkcijos

Papildoma funkcija yra skaityti rašymo įtampą: Norėdami apskaičiuoti įtampą, turite perduoti tam tikrą parametrą:

  • Įtampa: gauti įtampą iš mikrovaldiklio įtampos (tik AVR Nr. esp8266, jei esp 3.3v fiksuota)
  • referenceVoltage: jei mikrokontrolerisReferenceVoltage false, paimkite šią vertę Komanda yra:

tuščia įtampaWrite (plūdės vertė, bool mikrovaldiklisReferenceVoltage = true, float referenceVoltage = 5.0);

plūdės įtampaRead (uint8_t analoginis Pin, bool mikrokontrolerisReferenceVoltage = tiesa, plūdės nuorodaVoltage = 5,0);

Pavyzdys yra:

pcf8591.voltageWrite (2.7); // 2.7 voltų išvestis

vėlavimas (3000);

plūdė ana0V = pcf8591.voltageRead (AIN0); // Skaitykite įtampą iš analoginio 0

Serial.println (ana0V);

8 veiksmas: jungties schemos pavyzdžiai

Ryšio schemos pavyzdžiai
Ryšio schemos pavyzdžiai

9 žingsnis: ačiū

„i2c“projektų serija (kolekcija):

  • Drėgmės temperatūros jutiklis
  • Analoginis plėtiklis
  • Skaitmeninis plėtiklis
  • LCD ekranas

Rekomenduojamas: