ЦАП MCP4725 — это 12-разрядный цифро-аналоговый преобразователь управляемый через I2C. Так как мини компьютеры Raspberry Pi, Banana Pi, Orange Pi, Nano Pi, Odroid и т.п. имеют встроенного ЦАП, MCP4725 может быть использован, чтобы получить точный аналоговый сигнал.
В Pi4J есть библиотека для работы с ЦАП MCP4725 по I2C/TWI из Java на Raspberry Pi, Banana Pi, Orange Pi, Nano Pi и Odroid. Все классы и интерфейсы находятся в пакете com.pi4j.gpio.extension.mcp.*;.
Пока не все возможности ЦАП MCP4725 реализованы, нет возможности записывать данные в EEPROM — эта функция позволяет ЦАП MCP4725 самостоятельно сохранять значения данных и восстанавливать их при включении питания.
- 1 Класс DacGpioProviderBase
- 1.1 DacGpioProviderBase(Pin[])
- 1.2 setPercentValue(Pin, Number)
- 1.3 setPercentValue(GpioPinAnalogOutput, Number)
- 1.4 setValue(Pin, Number)
- 1.5 shutdown()
- 1.6 setShutdownValue(Number, Pin … )
- 1.7 getShutdownValue(Pin)
- 1.8 setShutdownValue(Number, GpioPinAnalogOutput …)
- 1.9 getShutdownValue(GpioPinAnalogOutput)
- 2 Класс MCP4725GpioProvider
- 3 Класс MCP4725Pin
- 4 Схема подключения ЦАП MCP4725 к Orange Pi
- 5 Примеры программ с ЦАП MCP4725 на Pi4J
- 6 Материалы
- 7 Похожие записи
Класс DacGpioProviderBase
Этот базовый поставщик GPIO определяет требуемые интерфейсы и реализует базовую функциональность для микросхем расширения ЦАП (цифро-аналоговых) как родные выводы Pi4J GPIO.
DacGpioProviderBase(Pin[])
Конструктор по умолчанию.
public DacGpioProviderBase(Pin[] pins)
Параметры
pins — совокупность всех выводов GPIO, используемых с реализацией этого поставщика ЦАП.
Возвращает
новый экземпляр DacGpioProviderBase
setPercentValue(Pin, Number)
Устанавливает текущее значение в процентах от доступного диапазона вместо необработанного значения.
public void setPercentValue(Pin pin, Number percent)
Параметры
pin — вывод GPIO.
percent — процентное значение от 0 до 100.
setPercentValue(GpioPinAnalogOutput, Number)
Устанавливает текущее аналоговое значение в процентах от доступного диапазона вместо необработанного значения (масштабированное число в диапазоне значений АЦП).
public void setPercentValue(GpioPinAnalogOutput pin, Number percent)
Параметры
pin — вывод GPIO.
percent — процентное значение от 0 до 100.
setValue(Pin, Number)
Устанавливает аналоговое выходное значение (необработанное значение) на выходной контакт ЦАП.
public void setValue(Pin pin, Number value)
Параметры
pin — номер пина ЦАП.
value — необработанное значение для отправки на ЦАП.
shutdown()
Этот метод используется платформой для отключения экземпляра ЦАП. Этот метод также закроет шину I2C для подключенного ЦАП.
public void shutdown()
setShutdownValue(Number, Pin … )
Устанавливает значение отключения, которое ЦАП должен применять к данному выводу GPIO, когда экземпляр класса уничтожается.
public void setShutdownValue(Number value, Pin ... pin)
Параметры
value — значение отключения, применяемое к данному выводу (-ам).
pin — вывод аналогового выхода (один или несколько выводов).
getShutdownValue(Pin)
Возвращает значение отключения, которое ЦАП должен применять к указанному выводу GPIO при уничтожении класса.
public Number getShutdownValue(Pin pin)
Параметры
pin — аналоговый выход.
Возвращает
значение отключения, применяемое к данному выводу.
setShutdownValue(Number, GpioPinAnalogOutput …)
Устанавливает значение отключения, которое ЦАП должен применять к данному выводу GPIO, когда экземпляр класса уничтожается.
public void setShutdownValue(Number value, GpioPinAnalogOutput ... pin)
Параметры
value — значение отключения, применяемое к данному выводу (-ам).
pin — вывод аналогового выхода (один или несколько выводов).
getShutdownValue(GpioPinAnalogOutput)
Возвращает значение отключения, которое ЦАП должен применять к указанному выводу GPIO при уничтожении класса.
public Number getShutdownValue(GpioPinAnalogOutput pin)
Параметры
pin — аналоговый выход.
Возвращает
значение отключения, применяемое к данному выводу.
Класс MCP4725GpioProvider
Этот GPIO провайдер расширяет абстрактный класс DacGpioProviderBase и реализует интерфейс DacGpioProvider, для работы с пином MCP4725, как с родным пином Pi4J.
MCP4725GpioProvider(int, int)
Это конструктор по умолчанию.
public MCP4725GpioProvider(int busNumber, int address) throws UnsupportedBusNumberException, IOException
Параметры
busNumber — номер шины.
address — I2C адрес устройства.
Возвращает
новый экземпляр MCP4725GpioProvider
Бросает
UnsupportedBusNumberException — если данный номер шины не поддерживается базовой системой.
IOException — если сообщение с шиной I2C не работает.
MCP4725GpioProvider(I2CBus, int)
Это альтернативный конструктор, который можно использовать для создания экземпляра MCP4725.
public MCP4725GpioProvider(I2CBus bus, int address) throws IOException
Параметры
busNumber — I2C шина.
address — I2C адрес устройства.
Возвращает
новый экземпляр MCP4725GpioProvider
Бросает
IOException — если сообщение с шиной I2C не работает.
setValue(Pin, double)
Устанавливает аналоговое выходное значение на выходной контакт на ЦАП.
public void setValue(Pin pin, double value)
Параметры
pin — номер пина ЦАП.
value — необработанное значение для отправки на ЦАП. (Между: 0..4095).
getName()
Получает имя экземпляра поставщика ЦАП.
public String getName()
Возвращает
имя экземпляра поставщика ЦАП.
shutdown()
Этот метод используется платформой для отключения экземпляра ЦАП MCP4725. Этот метод также закроет шину I2C для подключенного MCP4725.
public void shutdown()
getMinSupportedValue()
Возвращает минимальное поддерживаемое аналоговое значение ЦАП.
public double getMinSupportedValue()
Возвращает
минимальное поддерживаемое аналоговое значение.
getMaxSupportedValue()
Возвращает максимальное поддерживаемое аналоговое значение для реализации ЦАП. (Например, максимальное значение 10-разрядного АЦП составляет 1023, а максимальное значение 12-разрядного АЦП — 4095.
public double getMaxSupportedValue()
Возвращает
максимальное поддерживаемое аналоговое значение.
Класс MCP4725Pin
Этот провайдер GPIO реализует 12-разрядный цифро-аналоговый преобразователь MCP4725 в качестве собственных выводов GPIO Pi4J. MCP4725 подключен через I2C к Raspberry Pi и имеет 1 аналоговый выход GPIO.
createAnalogOutputPin(int, String)
Создаёт и возвращает новый экземпляр класса PinImpl
, для работы с аналоговым выводом MCP4725.
private static Pin createAnalogOutputPin(int address, String name)
Параметры
address — номер вывода.
name — имя пина.
Возвращает
новый экземпляр класса PinImpl
.
Схема подключения ЦАП MCP4725 к Orange Pi
MCP4725 можно подключить на любой доступный I2C порт.
Примеры программ с ЦАП MCP4725 на Pi4J
Генерация прямоугольной волны/Меандр
Приведённая ниже программа генерирует прямоугольную волну (Меандр), а для проверки использовал цифровой осциллограф DSO138. Для отправки данных на чип использовалась функция setValue()
.
import com.pi4j.gpio.extension.base.DacGpioProvider; import com.pi4j.gpio.extension.mcp.MCP4725GpioProvider; import com.pi4j.gpio.extension.mcp.MCP4725Pin; import com.pi4j.io.gpio.GpioController; import com.pi4j.io.gpio.GpioFactory; import com.pi4j.io.gpio.GpioPinAnalogOutput; import com.pi4j.io.i2c.I2CBus; import com.pi4j.util.Console; public class MCP4725SquareWave { public static void main(String args[]) throws Exception { System.out.println("<--Pi4J--> MCP4725 DAC Example ... started."); final Console console = new Console(); console.promptForExit(); /* * создаем gpio контроллер */ GpioController gpio = GpioFactory.getInstance(); /* * создаем пользовательский provider GPIO MCP4725 */ final DacGpioProvider provider = new MCP4725GpioProvider(I2CBus.BUS_0, MCP4725GpioProvider.MCP4725_ADDRESS_1); /* * создаём аналоговый выходной пин от MCP4725 */ final GpioPinAnalogOutput output = gpio.provisionAnalogOutputPin(provider, MCP4725Pin.OUTPUT); /* * устанавливаем начальное значение (значение запуска) для выходного вывода */ output.setValue(0); /* * устанавливаем значение выключения для выходного вывода */ provider.setShutdownValue(MCP4725GpioProvider.MAX_VALUE, output); new Thread() { @Override public void run() { /* * генерируем прямоугольную волну на выходе */ while (console.isRunning()) { output.setValue(provider.getMaxSupportedValue()); mySleep(1); output.setValue(provider.getMinSupportedValue()); mySleep(1); } } private void mySleep(long milis) { try { sleep(milis); } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); console.waitForExit(); /* * останавливаем все действия / потоки GPIO, отключая контроллер GPIO (этот * метод принудительно завершает работу всех потоков мониторинга GPIO и * запланированных задач) */ gpio.shutdown(); System.out.println("Exiting MCP4725GpioExample"); } }
Проверяем код:
- создаём java файл и вставляем код:
nano MCP4725SquareWave.java
- компилируем файл:
javac -classpath .:classes:/opt/pi4j/lib/'*' MCP4725SquareWave.java
- запускаем программу:
sudo java -classpath .:classes:/opt/pi4j/lib/'*' MCP4725SquareWave
Результат
Генерация синусоиды
Данный пример кода генерирует синусоиду, на выход модуля подключил DSO138. Для отправки данных использовалась функция setPercentValue()
.
import com.pi4j.gpio.extension.base.DacGpioProvider; import com.pi4j.gpio.extension.mcp.MCP4725GpioProvider; import com.pi4j.gpio.extension.mcp.MCP4725Pin; import com.pi4j.io.gpio.GpioController; import com.pi4j.io.gpio.GpioFactory; import com.pi4j.io.gpio.GpioPinAnalogOutput; import com.pi4j.io.i2c.I2CBus; import com.pi4j.util.Console; public class MCP4725SinusWave { public static void main(String args[]) throws Exception { System.out.println("<--Pi4J--> MCP4725 DAC Example ... started."); final Console console = new Console(); console.promptForExit(); /* * создаем gpio контроллер */ final GpioController gpio = GpioFactory.getInstance(); /* * создаем пользовательский provider GPIO MCP4725 */ final DacGpioProvider provider = new MCP4725GpioProvider(I2CBus.BUS_0, MCP4725GpioProvider.MCP4725_ADDRESS_1); /* * создаём аналоговый выходной пин от MCP4725 */ final GpioPinAnalogOutput pinAnalogOutput = gpio.provisionAnalogOutputPin(provider, MCP4725Pin.OUTPUT); /* * устанавливаем начальное значение (значение запуска) для выходного вывода */ pinAnalogOutput.setValue(0); /* * устанавливаем значение выключения для выходного вывода */ provider.setShutdownValue(MCP4725GpioProvider.MIN_VALUE, pinAnalogOutput); new Thread() { @Override public void run() { /* * генерируем синусоиду на выходе */ for (int i = 0; i < 360 && console.isRunning(); i++) { double y = Math.sin(Math.toRadians(i)); y = (y / 2 + 0.5) * 100; /* * задаём процентное значение вместо необработанного значения (мы * должны использовать вспомогательный метод внутри поставщика, а не * непосредственно на экземпляре вывода) */ provider.setPercentValue(pinAnalogOutput, y); /* * повторяем */ if (i == 359) { i = 0; } } } }.start(); console.waitForExit(); /* * останавливаем все действия / потоки GPIO, отключая контроллер GPIO (этот * метод принудительно завершает работу всех потоков мониторинга GPIO и * запланированных задач) */ gpio.shutdown(); System.out.println("Exiting MCP4725GpioExample"); } }
Проверяем код:
- создаём java файл и вставляем код:
nano MCP4725SinusWave.java
- компилируем файл:
javac -classpath .:classes:/opt/pi4j/lib/'*' MCP4725SinusWave.java
- запускаем программу:
sudo java -classpath .:classes:/opt/pi4j/lib/'*' MCP4725SinusWave
Результат
Материалы
Установка Pi4J на Raspberry Pi и Orange Pi, Banana Pi
The Pi4J Project
MCP4725 — Datasheet 22039d.pdf
MCP4725 — Цифро-аналоговый преобразователь (ЦАП)
Bạn đang tìm kiếm thông tin về lịch thi đấu v-league 2024 hôm nay?
скачать mostbet mostbet1011.com.kg .
мостбет казино войти http://mostbet1004.com.kg .
1win betting site https://www.1win11.com.ng .
mostbet промокод mostbet1011.com.kg .
most bet most bet .
1win sports betting https://1win11.com.ng/ .
Заказать диплом ВУЗа по выгодной стоимости вы можете, обращаясь к надежной специализированной фирме. Мы оказываем услуги по продаже документов об окончании любых университетов РФ. Приобрести диплом любого университета— diploma-groups24.ru/diplomy-po-specialnosti/voennyj-diplom.html
1 win казино 1 win казино .
1 vin официальный сайт http://www.1win114.com.kg .
1win ставки официальный сайт https://1win708.ru/ .
1вин официальный сайт мобильная http://1win715.ru .
1вин онлайн http://www.1win708.ru .
Приобрести диплом любого ВУЗа!
Мы можем предложить документы институтов, расположенных в любом регионе Российской Федерации.
diplomers.com/kuplyu-diplom-s-zaneseniem-16
сайт 1 win https://1win705.ru/ .
мосбет http://mostbet781.ru/ .
Где приобрести диплом специалиста?
Наши специалисты предлагают быстро и выгодно приобрести диплом, который выполнен на оригинальном бланке и заверен печатями, водяными знаками, подписями должностных лиц. Наш документ пройдет любые проверки, даже при использовании профессионального оборудования. Решайте свои задачи максимально быстро с нашим сервисом. Заказать диплом о высшем образовании! paladiny.ru/forummess.dwar.php?TopicID=30808
мостбет промокод мостбет промокод .
1вин официальный http://agility.forum24.ru/?1-0-0-00000755-000-0-0-1742359870 .
1win aplicația 1win5002.ru .
mostbet игры http://www.agility.forum24.ru/?1-0-0-00000756-000-0-0-1742360323 .
aplicația 1win https://1win5002.ru/ .
купить диплом инженера строителя
1вин официальный мобильная https://belbeer.borda.ru/?1-6-0-00001555-000-0-0-1742473542/ .
wan win https://www.taksafonchik.borda.ru/?1-14-0-00002041-000-0-0 .
motbet http://ongame.forum24.ru/?1-18-0-00001219-000-0-0-1742360461 .
1с предприятие 1с предприятие .
1wln https://taksafonchik.borda.ru/?1-14-0-00002041-000-0-0/ .
мрстбет мрстбет .
1 цшт 1win823.ru .
электрические карнизы купить электрические карнизы купить .
1вин вход 1вин вход .
проведение соут в москве проведение соут в москве .
пройти соут москва пройти соут москва .
1вин официальный сайт https://1win810.ru .
мотбет http://www.mostbet783.ru .
1win онлайн https://www.1win810.ru .
скачат мостбет mostbet783.ru .
Мы можем предложить дипломы психологов, юристов, экономистов и других профессий по приятным ценам. Дипломы производятся на оригинальных бланках государственного образца Приобрести диплом любого ВУЗа diplomservis.ru
motsbet http://eisberg.forum24.ru/?1-0-0-00000327-000-0-0-1742579529/ .
Приобрести документ о получении высшего образования вы имеете возможность у нас в Москве. Мы предлагаем документы об окончании любых университетов РФ. Вы получите необходимый диплом по любым специальностям, любого года выпуска, включая документы СССР. Даем гарантию, что в случае проверки документа работодателями, подозрений не появится. avtovideotest.ru/oformlenie-bez-stressa-i-byurokratii
mostbet промокод http://taksafonchik.borda.ru/?1-14-0-00002042-000-0-0-1742473173 .
mostbet casino https://taksafonchik.borda.ru/?1-14-0-00002042-000-0-0-1742473173 .
Заказать диплом института!
Мы готовы предложить дипломы любой профессии по доступным тарифам— fastdiploms.com/kupit-diplom-texnikuma-bistro-i-bez-lishnix-trudnostej/
Мы готовы предложить дипломы психологов, юристов, экономистов и прочих профессий по приятным ценам. Стараемся поддерживать для покупателей адекватную ценовую политику. Для нас важно, чтобы дипломы были доступными для подавляющей массы граждан.
Заказ документа, подтверждающего окончание ВУЗа, — это выгодное решение. Заказать диплом о высшем образовании: zakaz-na-diplom.ru/diplom-rf-kupit-3/
Мы изготавливаем дипломы психологов, юристов, экономистов и прочих профессий по приятным ценам. Купить диплом в Амурской области и городе Благовещенск — kyc-diplom.com/geography/blagoveshchensk.html
1вин официальный сайт https://www.1win824.ru .
1win ваучер http://1win825.ru/ .
1 vin http://www.1win824.ru .
1 вин официальный сайт 1win825.ru .
1vin 1vin .
Добрый день!
Заказать диплом ВУЗа по выгодной цене можно, обращаясь к проверенной специализированной компании. Приобрести диплом: diplomt-v-samare.ru/kupit-diplom-kemerovo-3/
1win сайт вход http://www.1win826.ru .
1вин официальный сайт 1win812.ru .
mostbet скачать на телефон бесплатно андроид http://mostbet785.ru/ .
1вин кг http://1win826.ru/ .
игра ракета на деньги 1win http://1win812.ru .
Купить диплом любого ВУЗа мы поможем. Купить диплом магистра в Архангельске — diplomybox.com/kupit-diplom-magistra-v-arkhangelske
Для успешного продвижения вверх по карьерной лестнице нужно наличие диплома ВУЗа. Купить диплом ВУЗа у сильной компании: diploml-174.ru/kupit-svidetelstvo-o-brake-4/
Мы изготавливаем дипломы психологов, юристов, экономистов и любых других профессий по выгодным ценам.— http://www.witomino.com/informacje/#comment-111902
1win kg 1win kg .
1win moldova https://www.1win5003.ru .
mostber https://www.mostbet786.ru .
1vin 1vin .
cazinouri online moldova https://www.1win5003.ru .
mostbets mostbet786.ru .
Заказать диплом ВУЗа по доступной стоимости возможно, обращаясь к проверенной специализированной фирме. Мы предлагаем документы Институтов, которые находятся в любом регионе РФ. poluchidiplom.com/kupit-diplom-stomatologa-18
Для максимально быстрого продвижения вверх по карьере требуется наличие диплома о высшем образовании. Заказать диплом любого института у проверенной компании: asxdiploman.com/kupit-attestat-starogo-obraztsa/
официальный сайт 1win https://1win6011.ru/ .
мостбет промокод http://mostbet794.ru .
один вин https://1win6011.ru .
1 ван вин 1win813.ru .
1 win.com 1 win.com .
мостбет скачать андроид mostbet794.ru .
mostbets https://shorts.borda.ru/?1-18-0-00000397-000-0-0/ .
1вин сайт официальный 1вин сайт официальный .
мос бет http://shorts.borda.ru/?1-18-0-00000397-000-0-0 .
Привет!
Мы готовы предложить дипломы любой профессии по выгодным ценам. Стоимость зависит от определенной специальности, года выпуска и образовательного учреждения: rdiploms.com/
зайти в 1вин https://www.boardwars.forum24.ru/?1-10-0-00000406-000-0-0 .
wan win https://1win814.ru .
1 win 1 win .
мостбет войти мостбет войти .
Приобрести диплом о высшем образовании !
Приобретение диплома ВУЗа РФ в нашей компании является надежным процессом, ведь документ будет заноситься в государственный реестр. При этом печать производится на официальных бланках, установленных государством. Заказать диплом института arenadiplom24.online/vuzy/astrakhanskij-gosudarstvennyj-universitet
most bet https://www.mostbet795.ru/ .
1win rossvya http://www.boardwars.forum24.ru/?1-10-0-00000406-000-0-0 .
1 win.pro http://1win814.ru .
Купить диплом университета по невысокой цене возможно, обращаясь к надежной специализированной фирме. Мы предлагаем документы об окончании любых ВУЗов РФ. Приобрести диплом о высшем образовании— diploma-groups24.ru/diplomy-po-specialnosti/diplom-geodezista.html
мостбет скачать на андроид https://tagilshops.forum24.ru/?1-4-0-00000205-000-0-0/ .
мостбет скачать казино https://mostbet795.ru/ .
Официальный сайт Нев Ретро Казино newretromirror.ru .
1win rossvya http://www.1win815.ru .
1win бк http://1win6014.ru/ .
скачать mostbet на телефон скачать mostbet на телефон .
1вин официальный сайт https://yamama.forum24.ru/?1-11-0-00000459-000-0-0-1742818616/ .
мостбет мобильная версия скачать https://www.mostbet6001.ru .
1 win http://www.1win815.ru .
1вин сайт https://1win6014.ru/ .
мостбет мобильная версия скачать мостбет мобильная версия скачать .
1 win казино 1 win казино .
mostbest https://mostbet6001.ru .
1 win казино https://1win816.ru/ .
1win букмекер 1win букмекер .
1win вход на сайт mymoscow.forum24.ru/?1-6-0-00026928-000-0-0 .
служба поддержки мостбет номер телефона http://www.mostbet6002.ru .
1 вин скачать 1 вин скачать .
мос бет http://maksipolinovtsu.forum24.ru/?1-1-0-00000194-000-0-0-1742815870/ .
1 win kg https://1win6015.ru/ .
1win зайти 1win зайти .
wan win http://1win817.ru .
1 win регистрация https://dogzz.forum24.ru/?1-10-0-00000155-000-0-0-1742818537 .
мотбет https://corgan.borda.ru/?1-0-0-00000265-000-0-0/ .
1вин официальный сайт https://www.dogzz.forum24.ru/?1-10-0-00000155-000-0-0-1742818537 .
mostbet игры mostbet игры .
1win pro 1win6016.ru .
mostbet kg отзывы mostbet kg отзывы .
мосбет казино ashapiter0.forum24.ru/?1-19-0-00001444-000-0-0-1742819001 .
1win прямой эфир http://zdorovie.forum24.ru/?1-7-0-00000231-000-0-0-1742818050/ .
мос бет http://mostbet789.ru/ .
mostbet промокод ashapiter0.forum24.ru/?1-19-0-00001444-000-0-0-1742819001 .
1вин. [url=https://www.zdorovie.forum24.ru/?1-7-0-00000231-000-0-0-1742818050]https://www.zdorovie.forum24.ru/?1-7-0-00000231-000-0-0-1742818050[/url] .
порно порно .
водка казино водка казино .
Узнайте мнение тех, кто уже прошел процедуру банкротства и списал свои долги https://bankrotstvo-v-moskve123.ru .
1 win pro [url=http://1win6013.ru/]http://1win6013.ru/[/url] .
1вин https://1win9109.ru .
1win.pro knowledge.forum24.ru/?1-0-0-00000101-000-0-0-1742817704 .
мостбет скачать андроид мостбет скачать андроид .
1 win.pro http://www.1win6013.ru .
1win на телефон 1win на телефон .
1win букмекер https://www.1win9109.ru .
скачать mostbet на телефон http://www.mostbet6004.ru .