Каталог
|
Конвертер построенный на базе микросхемы PCF8591, имеет 4 аналоговых входа (АЦП, он же ADC), 1 аналоговый выход (ЦАП, он же DAC), разрешение каждого входа/выхода 8 бит. Управляется по шине I2C с помощью Ардуино, Raspberry Pi или другого контроллера поддерживающего этот протокол. Рабочее напряжение 2.5 - 6В. Можно использовать, если не хватает аналоговых входов/выходов на микроконтроллере - вешаем платку на шину I2C (она же IIC или TWI) и получаем данные с датчиков. Если сравнивать с АЦП Ардуино, то данный модуль проигрывает по разрешению (у Ардуиновского АЦП 10-битное разрешение), зато можно сравнивать не просто поступающее напряжение как в Ардуино (от 0 и до 5В), а сравнивать между собой напряжения из разных источников (например для контроля уровня батарей), когда на один вход подается напряжение с одного источника, на второй - с другого и сравниваем результат (подробней можно почитать в даташите). Так же, можно замерить напряжение на всех 4 входах одновременно и затем получить 4 байта со значением по каждому входу (Ардуино так тоже не умеет). Так же на плате расположены потенциометр (подстроечный резистор), термистор (датчик температуры) и фоторезистор (датчик освещенности), которые подключены к аналоговым входам с помощью перемычек. С ними можно поэкспериментировать для знакомства с платой, а потом снять перемычки и подать на входы другие источники. Джампер P4 подключает вход AIN1 к термистору, джампер P5 подключает вход AIN0 к фоторезистору, а джампер P6 подключает вход AIN3 к потенциометру 10 кОм. Так же на плате есть два светодиода - красный для индикации питания, зеленый для индикации сигнала на аналоговом выходе AOUT (чем ярче горит, тем выше напряжение на выходе). В комплекте идут 4 провода мама-мама. Для использования модуля нужно его подключить c помощью 4-х жильного кабеля с коннекторами BLS-1 к интерфейсу IIC Arduino контроллера или другого микропроцессорного управляющего устройства. Питание можно взять как с контроллера, так и с внешнего источника питания. После подачи на модуль питания должен загореться красный светодиод, обозначенный D2. Далее модуль можно использовать в разных сочетаниях: На плате модуля есть три джампера, обозначенных P4 – P6.
Аналоговый вход AIN2 не зависит от джамперов и постоянно исполняет свои обычные функции. Джамперы можно устанавливать в любом нужном сочетании или не устанавливать совсем. Также на плате модуля есть аналоговый выход AOUT. Он связан с зеленым светодиодом D1 – чем ярче горит светодиод, тем выше потенциал (напряжение) сигнала на выходе. Управление модулем осуществляется с Arduino контроллера или другого микропроцессорного управляющего устройства. На плате модуля есть два штыревых разъема обозначенных P3 и P2, на четыре, и пять пинов соответственно:
Питание модуля осуществляется или с контроллера, или с внешнего источника питания. Напряжение питания 2,5...6 В. постоянного тока. Ссылки: Пример использования: Выводим напряжение на AOUT #include "Wire.h" #define PCF8591 (0x90 >> 1) /* I2C адрес, может отличаться от вашего, запустите скетч I2Cscanner из примеров библиотеки Wire, чтобы получить правильный адрес*/ void setup(){ Wire.begin(); } void loop(){ for (int i=0; i<256; i++) { //в цикле увеличиваем напряжение на AOUT Wire.beginTransmission(PCF8591); // начинаем передачу PCF8591 Wire.write(0x40); // управляющая команда включающая ЦАП (бинарное 1000000) Wire.write(i); // значение, которое будет выдано на AOUT Wire.endTransmission(); // закончили передачу } for (int i=255; i>=0; --i) { //в цикле уменьшаем напряжение на AOUT Wire.beginTransmission(PCF8591); Wire.write(0x40); Wire.write(i); Wire.endTransmission(); } } Другой пример - выводим значение на всех аналоговых входах в терминал: #include "Wire.h" #define PCF8591 (0x90 >> 1) // I2C адрес #define ADC0 0x00 // байт, где хранится адрес первого входа #define ADC1 0x01 // байт, где хранится адрес второго входа #define ADC2 0x02 // и так далее #define ADC3 0x03 byte value0, value1, value2, value3; void setup(){ Wire.begin(); Serial.begin(9600); } void loop(){ Wire.beginTransmission(PCF8591); // начинаем передачу Wire.write(ADC0); // сообщаем модулю, что нас интересует первый вход Wire.endTransmission(); // завершаем передачу Wire.requestFrom(PCF8591, 2); //запрашиваем два байта от модуля value0=Wire.read(); //в первом байте будет прошлое значение датчика, оно нам не надо value0=Wire.read(); //а вот во втором текущее, его и будем выводить Wire.beginTransmission(PCF8591); // повторяем операцию для остальных входов Wire.write(ADC1); Wire.endTransmission(); Wire.requestFrom(PCF8591, 2); value1=Wire.read(); value1=Wire.read(); Wire.beginTransmission(PCF8591); Wire.write(ADC2); Wire.endTransmission(); Wire.requestFrom(PCF8591, 2); value2=Wire.read(); value2=Wire.read(); Wire.beginTransmission(PCF8591); Wire.write(ADC3); Wire.endTransmission(); Wire.requestFrom(PCF8591, 2); value3=Wire.read(); value3=Wire.read(); Serial.print(value0); Serial.print(" "); //выводим значения в монитор Serial.print(value1); Serial.print(" "); Serial.print(value2); Serial.print(" "); Serial.print(value3); Serial.print(" "); Serial.println(); delay(200); //делаем паузу, чтоб не мельтешило } Отзывы покупателей про Преобразователь АЦП/ЦАП PCF8591 Andriy (13.11.2021) Все-таки не вистачає якогось стабілізатора напруги на вході Vref. Хоч тоді модуль і був би прив''язаний до конкретної напруги, але було б чітко зрозуміло, що саме на входах Ain. ОтветитьАндрій (11.08.2020) Замовив цей пристрій. Замість нього прислали RTC модуль на DS3231SN. Тому відгук залишити поки-що не можу :) Ответитьadmin (11.08.2020) Доброго дня. Якщо вам прийшов не той товар, напишіть нам лист на пошту з номером замовлення, бажано фотокарткою, що конкретно прийшло. Ми з вами звяжемось і вирішимо це питання. ОтветитьАндрій (11.08.2020) Я вже це зробив, але здається, що питання підвисло (або мої листи до вас не доходять). Андрій (16.08.2020) Отримав цей пристрій. Дуже дякую за вирішення ситуації! Залишаюсь лояльним клієнтом. ilyasan (24.04.2019) Поставил на мониторинг питания UPS ( через делители и оптопары-аналоговые). Выход на малину отдал. Вадим (24.04.2017) Собираю проект на плате STM32F746GZ. Код пишу с использованием HAL. Столкнулся с проблемой, что не все модули АЦП передавали правильные данные, некоторые не работали вообще. Проблема оказалась в том, что частота шины I2C, которая была вполне нормальной для других устройств, отлично работающих на этой шине, (100 кГц) их не устраивала - была слишком высокая для них. Когда снизил значение частоты - все стало ОК. Александр (12.12.2015) Заказал пару пришли на следующий день. Но как показали тесты термистор (датчик температуры) на обоих платах показывает все время топовое значение 255 и на нагрев/охлаждение не реагирует никак. Еще у платы адрес статический 0x48 и использовать обе на одной шине увы не выйдет, а джамперов которые меняли бы адрес увы не предусмотрено. ОтветитьСергей (11.02.2016) " все время топовое значение 255 " - это потому что китайские друзья поставили на делитель резистор в 1 кОм в место 10 кОм. ОтветитьНаписать отзыв: Есть вопросы по "Преобразователь АЦП/ЦАП PCF8591" ? Также рекомендуем ознакомиться:
Дорогие друзья! Мы стараемся держать на сайте информацию про наличие товаров и цены на них в АКТУАЛЬНОМ состоянии. Корректировки происходят постоянно. Если вы находите цену на товар завышенной, напишите нам про это с указанием ссылки на товар. Мы рассмотрим письмо и или обоснуем цену, или подкорректируем ее. Ассортимент магазина очень большой и иногда бывают ошибки в ценообразовании, особенно при скачках курса доллара. Благодарим за понимание.
|