![PCF8591 (расширитель аналоговых входов / выходов i2c) Простота использования: 9 шагов PCF8591 (расширитель аналоговых входов / выходов i2c) Простота использования: 9 шагов](https://i.howwhatproduce.com/images/006/image-15622-3-j.webp)
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05
![PCF8591 (расширитель аналогового ввода-вывода i2c) Быстрое и простое использование PCF8591 (расширитель аналогового ввода-вывода i2c) Быстрое и простое использование](https://i.howwhatproduce.com/images/006/image-15622-4-j.webp)
Библиотека для использования микросхемы i2c pcf8591 с arduino и esp8266.
Эта ИС может управлять (до 4) аналоговыми входами и / или 1 аналоговыми выходами, например, измерять напряжение, считывать значение термистора или гаснуть светодиода.
Может считывать аналоговое значение и записывать аналоговое значение с помощью только 2-х проводов (идеально подходит для ESP-01).
Я стараюсь упростить использование этой микросхемы с минимальным набором операций.
Вы можете найти обновленную версию на моем сайте
Шаг 1. Как работает I2c
![Как работает I2c Как работает I2c](https://i.howwhatproduce.com/images/006/image-15622-5-j.webp)
I2C работает с двумя проводами: SDA (линия передачи данных) и SCL (линия синхронизации).
Обе эти линии имеют открытый сток, но подтянуты резисторами.
Обычно на линии есть один мастер и один или несколько подчиненных, хотя может быть несколько мастеров, но об этом мы поговорим позже.
И ведущие, и ведомые устройства могут передавать или принимать данные, поэтому устройство может находиться в одном из этих четырех состояний: ведущее передается, ведущее принимает, ведомое передает, ведомое принимает.
Шаг 2:
Вы можете найти мою библиотеку здесь.
Скачать.
Нажмите кнопку СКАЧАТЬ в правом верхнем углу, переименуйте несжатую папку в PCF8591.
Убедитесь, что папка PCF8591 содержит файлы PCF8591.cpp и PCF8591.h.
Поместите папку библиотеки PCF8591 в папку / library /.
Вам может потребоваться создать подпапку библиотек, если это ваша первая библиотека.
Перезагрузите IDE.
Шаг 3: Использование
Конструктор: вы должны передать адрес i2c (чтобы проверить адрес, используйте это руководство I2cScanner)
PCF8591 (адрес uint8_t);
для esp8266, если вы хотите указать вывод SDA и SCL, используйте это:
PCF8591 (адрес uint8_t, uint8_t sda, uint8_t scl);
Шаг 4: считайте значение
![Прочитать значение Прочитать значение](https://i.howwhatproduce.com/images/006/image-15622-6-j.webp)
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 из канала
![Читать Вейл с канала Читать Вейл с канала](https://i.howwhatproduce.com/images/006/image-15622-7-j.webp)
Эта ИС имеет несколько типов чтения, и вы можете использовать аналоговый вход или аналоговый канал (когда вы используете один аналоговый вход для чтения, и канал показан на рисунках).
Например, чтобы прочитать значение канала 0 в двух дифференциальных входах, вы должны сделать:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // читаем аналог 0
Шаг 6: запишите значение
Если вы хотите записать аналоговое значение, вы должны сделать (значение от 0 до 255):
pcf8591.analogWrite (128);
Шаг 7: Дополнительные функции
Дополнительная функция - считывание напряжения записи: для расчета напряжения вы должны передать некоторый параметр:
- microcontrollerReferenceVoltage: получить напряжение от напряжения микроконтроллера (фиксировано только AVR без esp8266 для esp 3,3 В)
- referenceVoltage: если microcontrollerReferenceVoltage false принимает это значение, команды:
void VoltageWrite (значение с плавающей запятой, bool microcontrollerReferenceVoltage = true, referenceVoltage с плавающей запятой = 5,0);
float VoltageRead (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: Примеры схемы подключения
![Примеры Схема подключения Примеры Схема подключения](https://i.howwhatproduce.com/images/006/image-15622-8-j.webp)
Шаг 9: Спасибо
Серия проектов i2c (Сборник):
- Датчик температуры и влажности
- Аналоговый расширитель
- Цифровой расширитель
- ЖК дисплей
Рекомендуемые:
Поистине расширитель Wi-Fi: 5 шагов
![Поистине расширитель Wi-Fi: 5 шагов Поистине расширитель Wi-Fi: 5 шагов](https://i.howwhatproduce.com/images/002/image-4229-16-j.webp)
Truly WiFi Extender: Введение Настоящий WiFi Extender - это повторитель WiFi, основанный на Raspberry Pi Zero W. Он представляет собой хорошую альтернативу коммерческому повторителю WiFi, сочетающему недорогое (менее 10 долларов США) и настраиваемое программное обеспечение. Он также может запускать некоторые решения для блокировки рекламы
Bluetooth PWM Control 6 выходов = 800 Вт: 5 шагов
![Bluetooth PWM Control 6 выходов = 800 Вт: 5 шагов Bluetooth PWM Control 6 выходов = 800 Вт: 5 шагов](https://i.howwhatproduce.com/images/010/image-28564-j.webp)
Bluetooth PWM Control 6 выходов = 800 Вт: цель проекта - предоставить вам простой и быстрый способ управления любыми типами нагрузок с телефона Android через Bluetooth. Нагрузками могут быть двигатели, любые светодиоды, ленты, лампы, соленоиды, насосы и другие нагрузки типа R, L или C. Кроме того, благодаря мультипликатору POWER SHIELD
Однонаправленный расширитель диапазона Wi-Fi: 5 шагов (с изображениями)
![Однонаправленный расширитель диапазона Wi-Fi: 5 шагов (с изображениями) Однонаправленный расширитель диапазона Wi-Fi: 5 шагов (с изображениями)](https://i.howwhatproduce.com/images/003/image-6300-11-j.webp)
Однонаправленный расширитель диапазона WIFI: с легкостью принимайте сигналы Wi-Fi издалека, используя стандартный адаптер USB WIFI и немного изобретательности. Эта простая идея не требует модификации адаптера USB WIFI или вашего компьютера. Простой способ увеличить мощность сигнала и радиус действия вашего WIF
VMix Surface Control для 4 входов - Arduino: 7 шагов
![VMix Surface Control для 4 входов - Arduino: 7 шагов VMix Surface Control для 4 входов - Arduino: 7 шагов](https://i.howwhatproduce.com/images/001/image-2327-35-j.webp)
VMix Surface Control для 4 входов - Arduino: Создайте свой собственный vMix Surface Control для 4 входов с помощью Arduino Uno / nano ch340 Связь между vMix и arduinos через Hairless MIDI & LoopMIDII просто. Просто скачайте файлы и загрузите их в Arduino
LED Rainbow - Конструкция контроллера RGB LED PWM - Простота сборки: 15 шагов
![LED Rainbow - Конструкция контроллера RGB LED PWM - Простота сборки: 15 шагов LED Rainbow - Конструкция контроллера RGB LED PWM - Простота сборки: 15 шагов](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10961376-led-rainbow-rgb-led-pwm-controller-construction-easy-to-build-15-steps-j.webp)
LED Rainbow - Конструкция контроллера ШИМ светодиодов RGB - Простота сборки: пошаговые инструкции по сборке контроллера ШИМ LED Rainbow RGB LED. Требуется лишь минимальное количество деталей, а также процессор PIC, и вы можете создать один из самых удивительных контроллеров светодиодов на сегодняшний день. С