Daftar Isi:

PCF8591 (i2c Analog I/O Expander) Cepat Mudah Digunakan: 9 Langkah
PCF8591 (i2c Analog I/O Expander) Cepat Mudah Digunakan: 9 Langkah

Video: PCF8591 (i2c Analog I/O Expander) Cepat Mudah Digunakan: 9 Langkah

Video: PCF8591 (i2c Analog I/O Expander) Cepat Mudah Digunakan: 9 Langkah
Video: Стол Ладады — это ключевой переключатель «Рог изобилия» плюс «Стемма Сандей» 2024, November
Anonim
PCF8591 (i2c Analog I/O Expander) Cepat Mudah Digunakan
PCF8591 (i2c Analog I/O Expander) Cepat Mudah Digunakan

Library untuk menggunakan IC i2c pcf8591 dengan arduino dan esp8266.

IC ini dapat mengontrol (sampai 4) input analog dan/atau 1 output analog seperti mengukur tegangan, membaca nilai termistor atau memudarkan led.

Dapat membaca nilai analog dan menulis nilai analog hanya dengan 2 kabel (sempurna untuk ESP-01).

Saya mencoba menyederhanakan penggunaan IC ini, dengan operasi set yang minimal.

Anda dapat menemukan versi terbaru di situs saya

Langkah 1: Cara Kerja I2c

Bagaimana I2c Bekerja
Bagaimana I2c Bekerja

I2C bekerja dengan dua kabelnya, SDA (jalur data) dan SCL (jalur jam).

Kedua saluran ini adalah saluran terbuka, tetapi ditarik dengan resistor.

Biasanya ada satu master dan satu atau beberapa budak di telepon, meskipun bisa ada beberapa master, tapi kita akan membicarakannya nanti.

Baik master dan budak dapat mengirim atau menerima data, oleh karena itu, perangkat dapat berada di salah satu dari empat status ini: transmisi master, penerima master, transmisi slave, penerima slave.

Langkah 2:

Anda dapat menemukan perpustakaan saya di sini.

Untuk mengunduh.

Klik tombol UNDUH di sudut kanan atas, ganti nama folder terkompresi PCF8591.

Periksa apakah folder PCF8591 berisi PCF8591.cpp dan PCF8591.h.

Tempatkan folder library PCF8591 di folder /libraries/ Anda.

Anda mungkin perlu membuat subfolder perpustakaan jika ini adalah perpustakaan pertama Anda.

Mulai ulang IDE.

Langkah 3: Penggunaan

Konstruktor: Anda harus memasukkan alamat i2c (untuk memeriksa alamat, gunakan panduan ini I2cScanner)

PCF8591 (alamat uint8_t);

untuk esp8266 jika Anda ingin menentukan pin SDA e SCL gunakan ini:

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

Langkah 4: Baca Nilai

Baca Nilai
Baca Nilai

IC seperti yang Anda lihat pada gambar memiliki 4 input analog dan 1 output analog.

Jadi untuk membaca semua input analog dalam satu trasmission bisa anda lakukan (nilainya dari 0 sampai 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);

jika Anda ingin membaca satu input atau saluran analog:

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

Langkah 5: Baca Vale Dari Saluran

Baca Vale Dari Saluran
Baca Vale Dari Saluran

IC ini memiliki beberapa jenis pembacaan dan Anda dapat menggunakan input Analog atau saluran analog (bila Anda menggunakan input analog baca tunggal dan saluran ada di gambar).

Misalnya untuk membaca nilai saluran 0 di Dua input diferensial yang harus Anda lakukan:

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

Langkah 6: Tulis Nilai

Jika Anda ingin menulis nilai analog yang harus Anda lakukan (nilainya dari 0 hingga 255):

pcf8591.analogWrite(128);

Langkah 7: Fitur Tambahan

Fitur tambahan untuk membaca tegangan tulis: Untuk perhitungan tegangan Anda harus melewati beberapa parameter:

  • MicrocontrollerReferenceVoltage: mendapatkan tegangan dari tegangan mikrokontroler (hanya AVR no esp8266 untuk esp 3.3v tetap)
  • referenceVoltage: jika mikrokontrolerReferenceVoltage false ambil nilai iniPerintahnya adalah:

void voltageWrite(nilai float, mikrokontroler boolReferenceVoltage = true, float referenceVoltage = 5.0);

float voltageRead(uint8_t analogPin, mikrokontroler boolReferenceVoltage = true, float referenceVoltage = 5.0);

Contohnya adalah:

pcf8591.voltageWrite(2.7); // keluaran 2,7Volt

penundaan(3000);

float ana0V = pcf8591.voltageRead(AIN0); // Baca tegangan dari analog 0

Serial.println(ana0V);

Langkah 8: Contoh Diagram Koneksi

Contoh Diagram Koneksi
Contoh Diagram Koneksi

Langkah 9: Terima kasih

seri proyek i2c (Koleksi):

  • Sensor kelembaban suhu
  • Ekspander analog
  • Ekspander digital
  • Layar LCD

Direkomendasikan: