Мазмуну:

PCF8591 (i2c Analog I/O Expander) Fast Easy Use: 9 Steps
PCF8591 (i2c Analog I/O Expander) Fast Easy Use: 9 Steps

Video: PCF8591 (i2c Analog I/O Expander) Fast Easy Use: 9 Steps

Video: PCF8591 (i2c Analog I/O Expander) Fast Easy Use: 9 Steps
Video: Electronic Basics #10: Digital to Analog Converter (DAC) 2024, Ноябрь
Anonim
PCF8591 (i2c Analog I/O Expander) Fast Easy Use
PCF8591 (i2c Analog I/O Expander) Fast Easy Use

I2c pcf8591 ICди arduino жана esp8266 менен колдонуу үчүн китепкана.

Бул IC (4кө чейин) аналогдук кирүүнү жана/же 1 аналогдук чыгууну өлчөй алат, термистордун маанисин окуй алат же ледди өчүрөт.

Аналогдук маанини окуй алат жана аналогдук маанини 2 зым менен гана жаза алат (ESP-01 үчүн идеалдуу).

Мен минималдуу операция топтому менен бул ICди колдонууну жөнөкөйлөтүүгө аракет кылам.

Сиз жаңыртылган версияны менин сайтымдан таба аласыз

1 -кадам: I2c кантип иштейт

I2c кантип иштейт
I2c кантип иштейт

I2C эки зым менен иштейт, SDA (маалымат линиясы) жана SCL (саат линиясы).

Бул эки линия тең ачык дренаждуу, бирок резисторлор менен тартылган.

Адатта линияда бир кожоюн жана бир же бир нече кул бар, бирок бир нече кожоюн болушу мүмкүн, бирок бул тууралуу кийинчерээк сүйлөшөбүз.

Кожоюндар да, кулдар да маалыматтарды жөнөтө же ала алышат, андыктан аппарат бул төрт абалдын биринде болушу мүмкүн: кожоюн берүү, кожоюн алуу, кул берүү, кул алуу.

2-кадам:

Бул жерден менин китепканамды таба аласыз.

Жүктөө үчүн.

Жогорку оң бурчтагы ЖҮКТӨР баскычын чыкылдатыңыз, кысылбаган папканы PCF8591 атын өзгөртүңүз.

PCF8591 папкасында PCF8591.cpp жана PCF8591.h бар экендигин текшериңиз.

PCF8591 китепкана папкасын сиздин / libraries / папканы коюңуз.

Сиз биринчи китепкана болсоңуз, китепканалар субфольдорун түзүшүңүз керек болот.

IDEди кайра жүктөө.

3 -кадам: Колдонуу

Конструктор: i2c дарегин тапшырышыңыз керек (даректи текшерүү үчүн I2cScanner бул колдонмону колдонуңуз)

PCF8591 (uint8_t дареги);

esp8266 үчүн, эгер сиз SDA e SCL пинин көрсөтүүнү кааласаңыз, муну колдонуңуз:

PCF8591 (uint8_t дареги, uint8_t sda, uint8_t scl);

4 -кадам: баалуулуктарды окуу

Окуу мааниси
Окуу мааниси

IC сүрөттө көрүнүп тургандай, 4 аналогдук киргизүү жана 1 аналогдук чыгаруу бар.

Ошентип, аналогдук киргизүүнү бир тразмияда окуу үчүн (мааниси 0дон 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);

Эгерде сиз бир аналогдук кирүүнү же каналды окууну кааласаңыз:

int ana = pcf8591.analogRead (AIN0); // 0 аналогун окуу

5 -кадам: Vale каналынан окуу

Vale каналынан окуу
Vale каналынан окуу

Бул ICде бир нече окуу түрү бар жана сиз аналогдук кирүүнү же аналогдук каналды колдоно аласыз (бир жолу окуганыңызда аналогдук киргизүү жана канал сүрөттөрдө).

Мисалы, 0 каналынын маанисин эки дифференциалдуу киргизүүдө окуу үчүн, сиз:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // 0 аналогун окуу

6 -кадам: Жазуу мааниси

Эгерде сиз аналогдук маанини жазгыңыз келсе, анда кылышыңыз керек (мааниси 0дон 255ке чейин):

pcf8591.analogWrite (128);

7 -кадам: Кошумча өзгөчөлүктөр

Кошумча өзгөчөлүк - жазуу чыңалуусун окуу: Чыңалууну эсептөө үчүн сиз кээ бир параметрден өтүшүңүз керек:

  • microcontrollerReferenceVoltage: микроконтроллердин чыңалуусунан чыңалуусун алуу (esp 3.3v үчүн AVR гана esp8266 жок)
  • referenceVoltage: if microcontrollerReferenceVoltage false бул маанини алыңыз Команда:

void kuchlanishWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

сүзүүчү чыңалууRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Буга мисал:

pcf8591.voltageWrite (2.7); // 2.7Вольт чыгаруу

кечигүү (3000);

float ana0V = pcf8591.voltageRead (AIN0); // 0 чыңалуусун аналогдон окуу

Serial.println (ana0V);

8 -кадам: Кошулуу диаграммасынын мисалдары

Мисалдар Байланыш диаграммасы
Мисалдар Байланыш диаграммасы

9 -кадам: рахмат

i2c долбоорунун сериясы (Коллекция):

  • Температура нымдуулугу сенсору
  • Аналогдук экспантер
  • Санарип экспантер
  • LCD дисплей

Сунушталууда: