Каталог
|
Конвертер побудований на базі мікросхеми 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.
Далі модуль можна використовувати в різних поєднаннях:
Аналоговий вхід 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" ? Також рекомендуємо ознайомитися:
Шановні друзі! Ми намагаємося тримати на сайті інформацію про наявність товарів та ціни на них в актуальному стані. Коригування відбуваються постійно. Якщо ви знаходите ціну на товар завищеною, напишіть нам про це із посиланням на товар. Ми розглянемо лист та чи обгрунтуємо ціну, чи підкоригуємо її. Асортимент магазину дуже великий та іноді бувають помилки в ціноутворенні, особливо при скачках курсу долара. Дякуємо за розуміння.
|