Мазмұны:

PCF8591 (i2c аналогтық енгізу -шығару кеңейткіші) Жылдам қарапайым қолдану: 9 қадам
PCF8591 (i2c аналогтық енгізу -шығару кеңейткіші) Жылдам қарапайым қолдану: 9 қадам
Anonim
PCF8591 (i2c аналогтық енгізу -шығару кеңейткіші) Жылдам қарапайым пайдалану
PCF8591 (i2c аналогтық енгізу -шығару кеңейткіші) Жылдам қарапайым пайдалану

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 -қадам: қосымша мүмкіндіктер

Қосымша мүмкіндік - жазу кернеуін оқу: Кернеуді есептеу үшін сізге кейбір параметрлерді беру қажет:

  • Микроконтроллер ReferenceVoltage: кернеуді микроконтроллерден алу
  • referenceVoltage: if microcontrollerReferenceVoltage false бұл мәнді алады Пәрмен:

void kuchlanishWrite (өзгермелі мән, 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 жобалар сериясы (Топтама):

  • Температура ылғалдылығы сенсоры
  • Аналогты кеңейтуші
  • Сандық кеңейткіш
  • СКД дисплей

Ұсынылған: