Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
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
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
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
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
Langkah 9: Terima kasih
seri proyek i2c (Koleksi):
- Sensor kelembaban suhu
- Ekspander analog
- Ekspander digital
- Layar LCD