Isi kandungan:

PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Pantas: 9 Langkah
PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Pantas: 9 Langkah

Video: PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Pantas: 9 Langkah

Video: PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Pantas: 9 Langkah
Video: Analog extender for ESP-8266 and Arduino 2024, Julai
Anonim
PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Pantas
PCF8591 (i2c Analog I / O Expander) Penggunaan Mudah Pantas

Perpustakaan untuk menggunakan i2c pcf8591 IC dengan arduino dan esp8266.

IC ini dapat mengawal (hingga 4) input analog dan / atau 1 output analog seperti mengukur voltan, membaca nilai termistor atau memudar led.

Boleh membaca nilai analog dan menulis nilai analog dengan hanya 2 wayar (sesuai untuk ESP-01).

Saya cuba mempermudah penggunaan IC ini, dengan satu set operasi yang minimum.

Anda boleh mendapatkan versi terkini di laman web saya

Langkah 1: Bagaimana I2c Berfungsi

Bagaimana I2c Berfungsi
Bagaimana I2c Berfungsi

I2C berfungsi dengan dua wayar, SDA (garis data) dan SCL (garis jam).

Kedua-dua garisan ini terbuka, tetapi ditarik dengan perintang.

Biasanya ada satu tuan dan satu atau beberapa hamba di talian, walaupun boleh ada banyak tuan, tetapi kita akan membincangkannya kemudian.

Baik tuan dan hamba dapat menghantar atau menerima data, oleh itu, perangkat dapat berada di salah satu dari empat keadaan ini: transmisi induk, penerima utama, transmisi hamba, penerimaan hamba.

Langkah 2:

Anda boleh menemui perpustakaan saya di sini.

Untuk muat turun.

Klik butang DOWNLOADS di sudut kanan atas, ganti nama folder PCF8591 yang tidak dimampatkan.

Pastikan folder PCF8591 mengandungi PCF8591.cpp dan PCF8591.h.

Letakkan folder perpustakaan PCF8591 anda / pustaka / folder.

Anda mungkin perlu membuat subfolder perpustakaan jika itu adalah perpustakaan pertama anda.

Mulakan semula IDE.

Langkah 3: Penggunaan

Pembina: anda mesti memasukkan alamat i2c (untuk memeriksa alamat menggunakan panduan ini I2cScanner)

PCF8591 (alamat uint8_t);

untuk esp8266 jika anda mahu tentukan pin SDA e SCL gunakan ini:

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

Langkah 4: Nilai Baca

Nilai Baca
Nilai Baca

IC seperti yang anda lihat dalam gambar mempunyai 4 input analog dan 1 output analog.

Oleh itu, untuk membaca semua input analog dalam satu trasmission yang boleh anda lakukan (nilainya adalah dari 0 hingga 255):

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

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

jika anda mahu membaca satu input analog atau saluran:

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

Langkah 5: Baca Vale Dari Saluran

Baca Vale Dari Saluran
Baca Vale Dari Saluran

IC ini mempunyai pelbagai jenis bacaan dan anda boleh menggunakan input Analog atau saluran analog (apabila anda menggunakan input analog baca tunggal dan saluran terdapat dalam gambar).

Contohnya untuk membaca nilai saluran 0 dalam Dua input pembezaan yang mesti anda lakukan:

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

Langkah 6: Tuliskan Nilai

Sekiranya anda mahu menulis nilai analog yang mesti anda lakukan (nilainya dari 0 hingga 255):

pcf8591.analogWrite (128);

Langkah 7: Ciri Tambahan

Ciri tambahan ialah membaca voltan tulis: Untuk pengiraan voltan, anda mesti melewati beberapa parameter:

  • mikrokontrolerReferenceVoltage: dapatkan voltan dari voltan mikrokontroler (hanya AVR no esp8266 untuk esp 3.3v tetap)
  • ReferenceVoltage: if microcontrollerReferenceVoltage false mengambil nilai ini Perintahnya adalah:

voltan voidWrite (nilai apungan, mikrokontroler boolReferenceVoltage = true, float ReferenceVoltage = 5.0);

voltan apunganRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float ReferenceVoltage = 5.0);

Contohnya ialah:

pcf8591.voltageWrite (2.7); // 2.7Volt output

kelewatan (3000);

terapung ana0V = pcf8591.voltageRead (AIN0); // Baca voltan dari analog 0

Serial.println (ana0V);

Langkah 8: Contoh Sambungan Diagram

Contoh Sambungan Diagram
Contoh Sambungan Diagram

Langkah 9: Terima kasih

Siri projek i2c (Koleksi):

  • Sensor kelembapan suhu
  • Pengembang analog
  • Pengembang digital
  • Paparan LCD

Disyorkan: