(098) 067-12-26 Киевстар (098) 067-12-26   Киевстар
(066) 142-24-48 Vodafone (066) 142-24-48   Vodafone
(098) 067-12-26 Lifecell (063) 642-36-59   Lifecell
 info@arduino.ua
График работы магазина:
Пн-Пт: 9.00 - 19.00
Сб: 10.00 - 19.00
Вс: выходной
г. Киев, ул. Васильковская, 30
ст.м. "Васильковская"
Каталог
Напиши партнеры https://hacklab.kiev.ua/!

Преобразователь АЦП/ЦАП PCF8591

код: AOC248

  • Доставка по Украине.
    Мы отправляем заказы "Новой Почтой" по Украине и курьером по Киеву. Также возможен самовывоз из нашего магазина.
  • 6 месяцев гарантии.

    Мы даем гарантию на любой товар приобретенный в нашем магазине:

    6 месяцев на товары, кроме батареек и аккумуляторов

    14 дней на батарейки и аккумуляторы.

    В случае наступления гарантийного случая товар бесплатно ремонтируется, меняется на аналогичный или возвращается полная сумма его стоимости.

    Внимательно ознакомьтесь с условиями гарантии.
  • Проконсультируем до и после продажи.
    Вы можете задавать вопросы письменно по контактному e-mail или телефону указанным в шапке нашего магазина
48 грн

в наличии на складе

 

Купить в один клик

Добавить к сравнению

Добавить в "Список желаний"
16
голосовать
Нашли дешевле?
  • Преобразователь АЦП/ЦАП PCF8591
  • Описание
  • Отзывы (8)
  • Задать вопрос

Конвертер построенный на базе микросхемы 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.

  • Джампер P4 подключает к аналоговому входу AIN1 термистор (датчик температуры), с помощью которого можно контролировать температуру вокруг модуля. Если джампер P4 установлен, то на аналоговый вход AIN1 нельзя подключить какое либо устройство. Если джампер P4 не установлен, то вход AIN1 исполняет свои обычные функции и к нему можно подключить сигнал с какого либо устройства.
  • Джампер P5 подключает к аналоговому входу AIN0 фоторезистор (датчик освещенности), с помощью которого можно контролировать степень освещенности вокруг модуля. Если джампер P5 установлен, то на аналоговый вход AIN0 нельзя подключить какое либо устройство. Если джампер P5 не установлен, то вход AIN0 исполняет свои обычные функции и к нему можно подключить сигнал с какого либо устройства.
  • Джампер P6 подключает к аналоговому входу AIN3 потенциометр (построечный резистор) с сопротивлением 10 кОм, с помощью которого можно изменять значение аналогового сигнала на входе AIN3. Если джампер P6 не установлен, то вход AIN3 исполняет свои обычные функции.

Аналоговый вход AIN2 не зависит от джамперов и постоянно исполняет свои обычные функции.

Джамперы можно устанавливать в любом нужном сочетании или не устанавливать совсем.

Также на плате модуля есть аналоговый выход AOUT. Он связан с зеленым светодиодом D1 – чем ярче горит светодиод, тем выше потенциал (напряжение) сигнала на выходе.

Управление модулем осуществляется с Arduino контроллера или другого микропроцессорного управляющего устройства.

На плате модуля есть два штыревых разъема обозначенных P3 и P2, на четыре, и пять пинов соответственно:

  • Разъем P3 состоит из пинов питания, обозначенных VCC и GND, а также из интерфейса IIC (Inter-Integrated Circuit) с пинами SCL и SDA;
  • Разъем P2 состоит из 4 аналоговых входов, обозначенных AIN0 – AIN3 и одного аналогового выхода AOUT.

Питание модуля осуществляется или с контроллера, или с внешнего источника питания. Напряжение питания 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"

Андрій (11.08.2020)

Замовив цей пристрій. Замість нього прислали RTC модуль на DS3231SN. Тому відгук залишити поки-що не можу :)

Ответить

admin (11.08.2020)

Доброго дня. Якщо вам прийшов не той товар, напишіть нам лист на пошту з номером замовлення, бажано фотокарткою, що конкретно прийшло. Ми з вами звяжемось і вирішимо це питання.

Ответить

Андрій (11.08.2020)

Я вже це зробив, але здається, що питання підвисло (або мої листи до вас не доходять).
Замовлення 201029, тема листів "плутанина в замовленні".

Ответить

Андрій (16.08.2020)

Отримав цей пристрій. Дуже дякую за вирішення ситуації! Залишаюсь лояльним клієнтом.

Про сам пристрій. Робою задоволений; дуже корисна функціональність за невеликі гроші.

Є один нюанс, але він для мене зовсім не важливий.
Перед тим як підключати до реальних входів, вирішив спробувати набортні тестові фішки: фоторезистор, термістор, потенціометр. Вхід пов''язаний з термістором завжди бачить повну напругу (0xff, 255), два інші дають адекватні результати.

P.S. почитав коментарі інших покупців, ця проблемка була описана 12.12.2015 і пояснена 11.02.2016.

Ответить

ilyasan (24.04.2019)

Поставил на мониторинг питания UPS ( через делители и оптопары-аналоговые). Выход на малину отдал.
В принципе работает, но пошумливает в пределах 1 вольта на 80 входящего. Как вариант подвесить емкость на вход АЦП убрать переменку что прилетает с наводками.
Входов катастрофически не хватает так как с 4 UPS надо снимать V A и t - минимум 12 надо.

Ответить

Вадим (24.04.2017)

Собираю проект на плате STM32F746GZ. Код пишу с использованием HAL. Столкнулся с проблемой, что не все модули АЦП передавали правильные данные, некоторые не работали вообще. Проблема оказалась в том, что частота шины I2C, которая была вполне нормальной для других устройств, отлично работающих на этой шине, (100 кГц) их не устраивала - была слишком высокая для них. Когда снизил значение частоты - все стало ОК.

Кстати, для тех, кто пишет код "ручками", или на HAL: адрес 0х48 - это 7 битный адрес без учета младшего бита. Этот младший бит определяет направление передачи данных. Такой 7 битный адрес будет использовать неверно! Нужно использовать полный 8 битный адрес. На передачу от МК к АЦП выглядит так: 0х90, а на прием от АЦП к МК - 0х91.

Для тех, кто планирует использовать модуль только на прием от 4 независимых каналов АЦП - это заводская настройка. Сразу можно читать 0, 1, 2, 3 ячейки памяти. Все отлично работает!

Внимание у всех модулей 1 адрес! Чтобы его изменить нужно выпаивать микросхему, разрушать дорожки на плате, припаивать микросхему обратно и подтягивать ножки к +, или - (см. даташит), но это реально!

Хочу особо отметить работу инженера, когда я сегодня обратился с рекламацией на "неисправные" модули АЦП - все культурно, со вниманием, терпеливо и профессионально! Респект! Спасибо!

Ответить

Александр (12.12.2015)

Заказал пару пришли на следующий день. Но как показали тесты термистор (датчик температуры) на обоих платах показывает все время топовое значение 255 и на нагрев/охлаждение не реагирует никак. Еще у платы адрес статический 0x48 и использовать обе на одной шине увы не выйдет, а джамперов которые меняли бы адрес увы не предусмотрено.

Ответить

Сергей (11.02.2016)

" все время топовое значение 255 " - это потому что китайские друзья поставили на делитель резистор в 1 кОм в место 10 кОм.

Ответить
Новое сообщение:
Имя:
Текст:
 

Есть вопросы по Преобразователь АЦП/ЦАП PCF8591?

Ваше имя:

Email:

Вопрос:


Дорогие друзья! Мы стараемся держать на сайте информацию про наличие товаров и цены на них в АКТУАЛЬНОМ состоянии. Корректировки происходят постоянно. Если вы находите цену на товар завышенной, напишите нам про это с указанием ссылки на товар. Мы рассмотрим письмо и или обоснуем цену, или подкорректируем ее. Ассортимент магазина очень большой и иногда бывают ошибки в ценообразовании, особенно при скачках курса доллара. Благодарим за понимание.
оплата картами Visa и MasterCard