Mündəricat:

PCF8591 (i2c Analog I/O Genişləndiricisi) Sürətli Asan İstifadə: 9 Addım
PCF8591 (i2c Analog I/O Genişləndiricisi) Sürətli Asan İstifadə: 9 Addım

Video: PCF8591 (i2c Analog I/O Genişləndiricisi) Sürətli Asan İstifadə: 9 Addım

Video: PCF8591 (i2c Analog I/O Genişləndiricisi) Sürətli Asan İstifadə: 9 Addım
Video: Кратенький обзор PCF8591 2024, Iyul
Anonim
PCF8591 (i2c Analog I/O Genişləndiricisi) Sürətli Asan İstifadə
PCF8591 (i2c Analog I/O Genişləndiricisi) Sürətli Asan İstifadə

Arduino və esp8266 ilə i2c pcf8591 IC istifadə etmək üçün kitabxana.

Bu IC, (4 -ə qədər) analoq girişi və/və ya 1 analoq çıxışı ölçə bilər, termistor dəyərini oxuya bilər və ya bir led sönür.

Yalnız 2 tel ilə analoq dəyər oxuya və analoq dəyər yaza bilər (ESP-01 üçün idealdır).

Minimum əməliyyat dəsti ilə bu IC -nin istifadəsini asanlaşdırmağa çalışıram.

Yenilənmiş versiyanı https://www.mischianti.org/2019/01/03/pcf8591-i2c-analog-i-o-expander/ saytımda tapa bilərsiniz.

Addım 1: I2c necə işləyir

I2c necə işləyir
I2c necə işləyir

I2C iki tel ilə işləyir: SDA (məlumat xətti) və SCL (saat xətti).

Bu xətlərin hər ikisi açıq drenajdır, lakin rezistorlar ilə çəkilir.

Adətən xətdə bir usta və bir və ya birdən çox qul var, baxmayaraq ki, birdən çox usta ola bilər, amma bu barədə sonra danışacağıq.

Həm ustalar, həm də qullar məlumatları ötürə və ya ala bilərlər, buna görə də bir cihaz bu dörd vəziyyətdən birində ola bilər: usta ötürmə, usta qəbulu, kölə ötürmə, kölə qəbulu.

Addım 2:

Kitabxanamı burada tapa bilərsiniz.

Yükləmək üçün.

Sağ üst köşedeki YÜKLƏMƏ düyməsini basın, sıxılmamış qovluğun adını PCF8591 adlandırın.

PCF8591 qovluğunda PCF8591.cpp və PCF8591.h olduğunu yoxlayın.

PCF8591 kitabxana qovluğunu / libraries / qovluğunuza yerləşdirin.

İlk kitabxananız varsa, kitabxanalar alt qovluğunu yaratmağınız lazım ola bilər.

IDE -ni yenidən başladın.

Addım 3: İstifadə

Konstruktor: i2c ünvanını yazmalısınız (ünvanı yoxlamaq üçün bu təlimatdan istifadə edin I2cScanner)

PCF8591 (uint8_t ünvanı);

esp8266 üçün SDA və SCL pinini təyin etmək istəyirsinizsə bunu istifadə edin:

PCF8591 (uint8_t ünvanı, uint8_t sda, uint8_t scl);

Addım 4: Dəyəri oxuyun

Dəyəri oxuyun
Dəyəri oxuyun

Şəkildə gördüyünüz kimi IC 4 analog giriş və 1 analoq çıxışı var.

Beləliklə, bütün analoq girişləri bir trasmisyonda oxumaq üçün edə bilərsiniz (dəyər 0 ilə 255 arasındadır):

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

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

bir analoq girişi və ya kanalı oxumaq istəyirsinizsə:

int ana = pcf8591.analogRead (AIN0); // analoq 0 oxuyun

Addım 5: Kanaldan Vale oxuyun

Kanaldan Vale oxuyun
Kanaldan Vale oxuyun

Bu IC -nin birdən çox oxunuş növü var və siz analoq girişi və ya analoq kanaldan istifadə edə bilərsiniz (bir dəfə oxuduğunuzda analog giriş və kanal şəkillərdədir).

Məsələn, 0 kanalının dəyərini iki diferensial girişdə oxumaq üçün etməlisiniz:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // analoq 0 oxuyun

Addım 6: Dəyər Yazın

Bir analoq dəyər yazmaq istəyirsinizsə etməlisiniz (dəyər 0 -dan 255 -ə qədərdir):

pcf8591.analogWrite (128);

Addım 7: Əlavə Xüsusiyyətlər

Əlavə xüsusiyyət yazma gərginliyini oxumaqdır: Gərginliyin hesablanması üçün bəzi parametrlərdən keçməlisiniz:

  • microcontrollerReferenceVoltage: mikro nəzarətçi gərginliyindən gərginlik əldə edin (yalnız esp 3.3v üçün AVR yox esp8266)
  • referenceVoltage: əgər microcontrollerReferenceVoltage false bu dəyəri götürsün Komanda:

void gərginlikWrite (float dəyəri, bool microcontrollerReferenceVoltage = doğru, float referenceVoltage = 5.0);

float gərginliyiRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Bir nümunə budur:

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

gecikmə (3000);

float ana0V = pcf8591.voltageRead (AIN0); // Analog 0 -dan gərginliyi oxuyun

Serial.println (ana0V);

Addım 8: Bağlantı Şemasının nümunələri

Bağlantı Şemasına nümunələr
Bağlantı Şemasına nümunələr

Addım 9: Təşəkkürlər

i2c layihə seriyası (Kolleksiya):

  • Rütubət sensoru
  • Analog genişləndirici
  • Rəqəmsal genişləndirici
  • LCD Ekran

Tövsiyə: