Мобільна версія Форум Arduino Документація Гарантійні умови 0 0
UA RU
Графік роботи магазину:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Нд: вихідний
Каталог
Напиши статтю і отримай знижку!

Перетворювач АЦП/ЦАП PCF8591

код: AOC248

  • Доставка по Україні
    Ми відправляємо замовлення "Новою Поштою" по Україні. Також можливий самовивіз з нашого магазину
  • 6 місяців гарантії

    Ми даємо гарантію на будь-який товар придбаний в нашому магазині:

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

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

    У разі настання гарантійного випадку товар безкоштовно ремонтується, змінюється на аналогічний або повертається повна сума його вартості

    Уважно ознайомтеся з умовами гарантії.
  • Проконсультуємо до і після продажу
    Ви можете задавати питання письмово по e-mail або за контактними телефонами нашого магазину
97 грн

в наявності

 

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

18
голосувати
Знайшли дешевше?
  • Перетворювач АЦП/ЦАП PCF8591
  • Опис
  • Відгуки (9)
  • Задати питання

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

Andriy (13.11.2021)

Все-таки не вистачає якогось стабілізатора напруги на вході Vref. Хоч тоді модуль і був би прив''язаний до конкретної напруги, але було б чітко зрозуміло, що саме на входах Ain.

Відповісти

Андрій (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" ?

Також рекомендуємо ознайомитися:

Шановні друзі! Ми намагаємося тримати на сайті інформацію про наявність товарів та ціни на них в актуальному стані. Коригування відбуваються постійно. Якщо ви знаходите ціну на товар завищеною, напишіть нам про це із посиланням на товар. Ми розглянемо лист та чи обгрунтуємо ціну, чи підкоригуємо її. Асортимент магазину дуже великий та іноді бувають помилки в ціноутворенні, особливо при скачках курсу долара. Дякуємо за розуміння.
оплата картами Visa і MasterCard