İçindekiler:
- Adım 1: I2c Nasıl Çalışır?
- Adım 2:
- 3. Adım: Kullanım
- Adım 4: Değeri Okuyun
- Adım 5: Kanaldan Vale Okuyun
- Adım 6: Değer Yaz
- 7. Adım: Ek Özellikler
- Adım 8: Örnek Bağlantı Şeması
- 9. Adım: Teşekkürler
Video: PCF8591 (i2c Analog I/O Genişletici) Hızlı Kolay Kullanım: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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, 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
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
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ı
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:
50 $ Altında Hızlı Shifter! Kazeshifter Arduino Ayarlanabilir Hızlı Shifter: 7 Adım
50 $ Altında Hızlı Shifter! Kazeshifter Arduino Ayarlanabilir Hızlı Shifter: Merhaba Superbike veya motosiklet severler!Bu talimatta, ucuza kendi Quick Shifter'ınızı nasıl yapacağınızı paylaşacağım!Bu talimatı okumak için tembel olanlar için videomu izleyin!Not: Bazı bisikletler için Halihazırda Yakıt Enjeksiyon Sistemini kullanıyor, bazen
DHT12 (i2c Ucuz Nem ve Sıcaklık Sensörü), Hızlı Kolay Kullanım: 14 Adım
DHT12 (i2c Ucuz Nem ve Sıcaklık Sensörü), Hızlı Kolay Kullanım: Güncelleme ve diğerlerini sitemde bulabilirsiniz https://www.mischianti.org/2019/01/01/dht12-library-en/. 2 telli (i2c protokolü) kullanılabilir, ancak ucuz olanı seviyorum. Bu, DHT12 serisi için bir Arduino ve esp8266 kütüphanesidir
DIY MusiLED, Tek Tıkla Windows ve Linux Uygulaması ile Müzik Senkronize LED'ler (32-bit ve 64-bit). Yeniden Oluşturması Kolay, Kullanımı Kolay, Taşıması Kolay.: 3 Adım
DIY MusiLED, Tek Tıkla Windows ve Linux Uygulaması ile Müzik Senkronize LED'ler (32-bit ve 64-bit). Yeniden Oluşturması Kolay, Kullanımı Kolay, Portu Kolay.: Bu proje, Arduino Board'unuza 18 LED (6 Kırmızı + 6 Mavi + 6 Sarı) bağlamanıza ve bilgisayarınızın Ses Kartının gerçek zamanlı sinyallerini analiz etmenize ve bunları aktarmanıza yardımcı olacaktır. Vuruş efektlerine göre onları aydınlatmak için LED'ler (Snare, High Hat, Kick)
Hızlı, Hızlı, Ucuz, İyi Görünümlü LED Oda Aydınlatması (Herkes İçin): 5 Adım (Resimli)
Hızlı, Hızlı, Ucuz, İyi Görünümlü LED Oda Aydınlatması (Herkes için): Herkese hoş geldiniz :-) Bu benim ilk talimatım, bu yüzden yorumları bekliyoruz :-) Size göstermeyi umduğum şey, KÜÇÜK bütçe.Neye ihtiyacınız var:KabloLED'lerDirençler (12V için 510Ohm)ZımbalarLehimleme demirKesiciler ve diğer temel
Hızlı ve Basit Yumuşak Anahtarlar (Hızlı Prototipleme için): 5 Adım
Hızlı ve Basit Yumuşak Anahtarlar (Hızlı Prototipleme için): Bir yazılım anahtarı yapmanın birçok farklı yolu vardır. Bu talimat, yumuşak anahtar için çok hızlı bir prototipin başka bir seçeneğini gösterir; iletken kumaş yerine alüminyum bant ve iletken iplik yerine katı teller kullanarak bot