Съдържание:

PCF8591 (i2c аналогов I/O разширител) Бързо и лесно използване: 9 стъпки
PCF8591 (i2c аналогов I/O разширител) Бързо и лесно използване: 9 стъпки

Видео: PCF8591 (i2c аналогов I/O разширител) Бързо и лесно използване: 9 стъпки

Видео: PCF8591 (i2c аналогов I/O разширител) Бързо и лесно използване: 9 стъпки
Видео: Использование плат Digispark Attiny85 Mini Arduino: Урок 108 2024, Юли
Anonim
PCF8591 (i2c Analog I/O Expander) Бързо лесно използване
PCF8591 (i2c Analog I/O Expander) Бързо лесно използване

Библиотека за използване на i2c pcf8591 IC с arduino и esp8266.

Тази IC може да контролира (до 4) аналогов вход и/или 1 аналогов изход като измерване на напрежение, да прочете стойността на термистора или да избледнее светодиода.

Може да чете аналогова стойност и да записва аналогова стойност само с 2 проводника (идеално за ESP-01).

Опитвам се да опростя използването на тази интегрална схема с минимален набор от операции.

Можете да намерите актуализирана версия на моя сайт

Стъпка 1: Как работи I2c

Как работи I2c
Как работи I2c

I2C работи с двата си проводника, SDA (линия за данни) и SCL (линия на часовника).

И двете линии са с отворен дренаж, но са изтеглени с резистори.

Обикновено на линията има един главен и един или няколко подчинени, въпреки че може да има няколко господари, но ще говорим за това по -късно.

И господарите, и подчинените могат да предават или получават данни, следователно, устройството може да бъде в едно от тези четири състояния: главно предаване, главно приемане, предаване на подчинено устройство, приемане на подчинено устройство.

Стъпка 2:

Моята библиотека можете да намерите тук.

За изтегляне.

Щракнете върху бутона ИЗТЕГЛЯНЕ в горния десен ъгъл, преименувайте некомпресираната папка PCF8591.

Проверете дали папката PCF8591 съдържа PCF8591.cpp и PCF8591.h.

Поставете библиотечната папка PCF8591 във вашата / библиотеки / папка.

Може да се наложи да създадете подпапка библиотеки, ако това е първата ви библиотека.

Рестартирайте 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 от Channel

Прочетете Vale от Channel
Прочетете Vale от Channel

Тази интегрална схема има няколко вида четене и можете да използвате аналогов вход или аналогов канал (когато използвате аналогов вход за едно четене и каналът е на снимките).

Например, за да прочетете стойността на канал 0 в два диференциални входа, трябва да направите:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // чете аналогов 0

Стъпка 6: Запишете стойност

Ако искате да напишете аналогова стойност, трябва да направите (стойността е от 0 до 255):

pcf8591.analogWrite (128);

Стъпка 7: Допълнителни функции

Допълнителна функция е да прочетете напрежение за запис: За изчисляване на напрежението трябва да предадете някакъв параметър:

  • микроконтролер Референция Напрежение: получете напрежение от напрежението на микроконтролера (само AVR без esp8266 за esp 3.3v фиксиран)
  • referenceVoltage: if microcontrollerReferenceVoltage false вземе тази стойност Командата е:

void voltageWrite (плаваща стойност, bool микроконтролерReferenceVoltage = вярно, float referenceVoltage = 5.0);

float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

Пример е:

pcf8591.voltageWrite (2.7); // 2.7 Волта изход

забавяне (3000);

поплавък ana0V = pcf8591.voltageRead (AIN0); // Четене на напрежение от аналогов 0

Serial.println (ana0V);

Стъпка 8: Примери за диаграма на свързване

Примери Схема на свързване
Примери Схема на свързване

Стъпка 9: Благодаря

серия проекти на i2c (колекция):

  • Сензор за температурата на влажността
  • Аналогов разширител
  • Цифров разширител
  • ЛСД дисплей

Препоръчано: