Модуль собран на микросхеме PCF8591, это 8 битный четырех канальный ЦАП и АЦП в одном корпусе.
Описание модуля:
Модуль скорее предназначен для обучения или экспериментов, а не для конкретных устройств, базируется на микросхеме PCF8591 имеющая 4 входа с 8 битным аналого-цифровой преобразователем (АЦП или ADC) и 1 выход с цифро-аналоговым преобразователем (ЦАП или DAC), с подключенными к ним различными «аналоговыми датчиками», (фоторезистор, терморезистор, переменный резистор), на выход ЦАП подключен светодиод. Схема модуля ниже.
Подключение к Arduino
Модуль имеет интерфейс I2C и подключается как и любое другое устройство с I2C, достаточно соединить выходы SDA и SCL и дать питание 5 вольт на модуль.
На примере Arduino Leonardo и модуля RTC, PCF8591 подключается аналогичным образом
Софт:
Возможно для PCF8591 написаны библиотеки, но общение с микросхемой очень простое и можно обойтись двумя функциями, одной для чтения значения с АЦП, и второй для записи значения в ЦАП.
Код
#include<Wire.h>#definePCF85910x48voidsetDAC(byteval){Wire.beginTransmission(PCF8591);// соединяемся с PCF8591Wire.write(0x40);// включаем DAC Wire.write(val);// пишем в DAC значениеWire.endTransmission();// завершаем соединение}bytegetADC(bytech){if(ch>3)ch=0;// проверкаWire.beginTransmission(PCF8591);// соединяемся с PCF8591Wire.write(ch);// запрашиваем Wire.endTransmission();// завершаем соединениеWire.requestFrom(PCF8591,2);// забераем 2 байтаbyteval0=Wire.read();byteval1=Wire.read();// во втором то что нам нужноreturnval1;// возвращаем}voidsetup(){Serial.begin(9600);Wire.begin();}voidloop(){for(inti=0;i<255;i+=40)setDAC(i);// генерируем пилообразный сигнал// for (int i = 0; i <= 3; i++) { // отправляем в монитор порта значение с ADC// Serial.print(i);// Serial.print(": ");// Serial.print(getADC(i)); // Serial.print(" | ");// }// Serial.println();// setDAC(getADC(1)); // изменяем яркость светодиода в зависимости от освещенности// delay(100); }