İçindekiler:

PCF8591 (i2c Analog I/O Genişletici) Hızlı Kolay Kullanım: 9 Adım
PCF8591 (i2c Analog I/O Genişletici) Hızlı Kolay Kullanım: 9 Adım

Video: PCF8591 (i2c Analog I/O Genişletici) Hızlı Kolay Kullanım: 9 Adım

Video: PCF8591 (i2c Analog I/O Genişletici) Hızlı Kolay Kullanım: 9 Adım
Video: Arduino analog port expander - pcf8591 with I2C protocol 2024, Kasım
Anonim
PCF8591 (i2c Analog I/O Genişletici) Hızlı Kolay Kullanım
PCF8591 (i2c Analog I/O Genişletici) Hızlı Kolay Kullanım

Arduino ve esp8266 ile i2c pcf8591 IC'yi kullanmak için kitaplık.

Bu IC (4'e kadar) analog girişi ve/veya voltaj ölçmek, termistör değerini okumak veya bir led'i söndürmek gibi 1 analog çıkışı kontrol edebilir.

Sadece 2 kablo ile analog değeri okuyabilir ve analog değeri yazabilir (ESP-01 için mükemmel).

Minimum işlem seti ile bu IC'nin kullanımını basitleştirmeye çalışıyorum.

Güncellenmiş sürümü sitemde bulabilirsiniz

Adım 1: I2c Nasıl Çalışır?

I2c Nasıl Çalışır?
I2c Nasıl Çalışır?

I2C, SDA(veri hattı) ve SCL(saat hattı) olmak üzere iki kablosuyla çalışır.

Bu hatların her ikisi de açık drenajdır, ancak dirençlerle çekilir.

Genellikle hatta bir master ve bir veya daha fazla slave bulunur, ancak birden fazla master olabilir, ancak bunu daha sonra konuşacağız.

Hem master hem de slave'ler veri iletebilir veya alabilir, bu nedenle bir cihaz şu dört durumdan birinde olabilir: ana iletim, ana alma, bağımlı iletim, köle alma.

Adım 2:

Kütüphaneme buradan ulaşabilirsiniz.

İndirmek.

Sağ üst köşedeki İNDİRMELER düğmesine tıklayın, sıkıştırılmamış PCF8591 klasörünü yeniden adlandırın.

PCF8591 klasörünün PCF8591.cpp ve PCF8591.h içerdiğini kontrol edin.

PCF8591 kitaplık klasörünü /libraries/ klasörünüze yerleştirin.

İlk kitaplığınızsa, kitaplıklar alt klasörünü oluşturmanız gerekebilir.

IDE'yi yeniden başlatın.

3. Adım: Kullanım

Yapıcı: i2c adresini girmelisiniz (adresi kontrol etmek için bu kılavuzu I2cScanner kullanın)

PCF8591(uint8_t adresi);

esp8266 için SDA e SCL pinini belirtmek istiyorsanız şunu kullanın:

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

Adım 4: Değeri Okuyun

Değeri Oku
Değeri Oku

IC resimde gördüğünüz gibi 4 analog giriş ve 1 analog çıkışa sahiptir.

Tüm analog girişleri tek bir aktarımda okumak için şunları yapabilirsiniz (değer 0 ile 255 arasındadır):

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

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

tek bir analog giriş veya kanal okumak istiyorsanız:

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

Adım 5: Kanaldan Vale Okuyun

Kanaldan Vale Oku
Kanaldan Vale Oku

Bu IC'nin birden fazla okuma türü vardır ve Analog giriş veya analog kanal kullanabilirsiniz (tek okuma analog girişi kullandığınızda ve kanal resimlerdedir).

Örneğin İki diferansiyel girişte kanal 0 değerini okumak için yapmanız gerekenler:

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

Adım 6: Değer Yaz

Analog bir değer yazmak istiyorsanız yapmanız gerekenler (değer 0 ile 255 arasındadır):

pcf8591.analogWrite(128);

7. Adım: Ek Özellikler

Ek özellik, bir yazma voltajını okumaktır: Voltaj hesaplaması için bazı parametreleri geçmelisiniz:

  • microcontrollerReferenceVoltage: mikrodenetleyici voltajından voltaj alın (esp 3.3v için yalnızca AVR yok esp8266 sabit)
  • referansVoltage: mikrodenetleyiciReferenceVoltage false ise bu değeri alKomut şunlardır:

void voltajıWrite(float değeri, bool mikrodenetleyiciReferenceVoltage = true, float referansVoltage = 5.0);

float voltajıRead(uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referansVoltage = 5.0);

Bir örnek:

pcf8591.voltageWrite(2.7); // 2.7Volt çıkış

gecikme(3000);

float ana0V = pcf8591.voltageRead(AIN0); // Analog 0'dan voltajı oku

Seri.println(ana0V);

Adım 8: Örnek Bağlantı Şeması

Örnekler Bağlantı Şeması
Örnekler Bağlantı Şeması

9. Adım: Teşekkürler

i2c proje serisi (Koleksiyon):

  • Sıcaklık nem sensörü
  • Analog genişletici
  • Dijital genişletici
  • LCD ekran

Önerilen: