Как подключить аналого-цифровой преобразователь (АЦП)?

22

Я смотрю варианты АЦП на Rasbperry Pi. Мне интересно, что это возможно до сих пор. Конечно легко и дешево это хорошо.

Джон Ла Рой
источник
Для чего тебе это?
Дживингс
@Jivings, я думаю о нескольких проектах, которые могут обойтись при относительно низкой частоте дискретизации.
Джон Ла Рой

Ответы:

15

У Adafruit есть хорошее руководство по использованию 8-канального 10-разрядного АЦП MCP3008 ($ 3,75) с интерфейсом SPI для управления громкостью mp3-файла, но оно должно послужить хорошей отправной точкой для любого аналога цифрового проекта.

Стив Робиллард
источник
1
И Arduino, и PICAXE - здесь неправильные решения.
Алекс Чемберлен
Я не согласен, что Arduino является неправильным решением здесь. Arduino использует USB, а MCP3008 использует SPI. Arduino все готово смонтировано и готово к использованию из коробки, в то время как MCP3008 потребуются некоторые аксессуары и работа, чтобы начать работу. MCP3008 дешевле, но к тому времени, когда вы добавите все, что вам нужно (GPIO, монтаж макета ...), разница в стоимости будет не такой большой, как кажется. В общем, если вы хотите экспериментировать и быстро развернуться, Arduino - превосходный вариант, но если вы ищете постоянную установку, я бы согласился, что MCP3008 работает лучше всего.
Дан Б
8

ADS1115

ADS1113, ADS1114 и ADS1115 - это прецизионные аналого-цифровые преобразователи (АЦП) с 16-разрядным разрешением, предлагаемые в ультрамалых пакетах QFN-10 без свинца или MSOP-10. ADS1113 / 4/5 разработаны с учетом точности, мощности и простоты реализации. ADS1113 / 4/5 имеют встроенный эталон и генератор. Данные передаются через I²C-совместимый последовательный интерфейс; Можно выбрать четыре подчиненных адреса I²C. ADS1113 / 4/5 работают от одного источника питания в диапазоне от 2,0 до 5,5 В.

Сначала вам нужно убедиться, что модули I²C загружены . Затем подключите ADS1115, как показано ниже. Возможны 4 разных адреса в зависимости от того, к какому контакту подключен ADDR. Это означает, что вы можете подключить до 16 каналов к одной шине I²C.

GND = 0x48, VDD = 0x49, SDA = 0x4A, SCL = 0X4B

введите описание изображения здесь

Вы можете увидеть результат последнего преобразования, как это

# i2cget -y 0 0x49 0 w
0x0000

Здесь возвращается значение по умолчанию 0x0000, поскольку преобразования еще не выполнены. Теперь давайте посмотрим на регистр конфигурации

# i2cget -y 0 0x49 1 w
0x8385

LSB является первым, так что это эквивалентно 0b1000010110000011

Я хотел бы сделать одностороннее преобразование на AIN0, поэтому мне нужно записать биты [14:12] как 0b100. т.е.0b1100010110000011

# i2cset -y 0 0x49 1 0xC385 w
# i2cget -y 0 0x49 0 w
0xa30b

Младший младший разряд - первый, поэтому он равен десятичному 2979

Джон Ла Рой
источник
1
не сложнее ли работать с этими типами пакетов из-за размера / расстояния между выводами? Особенно для таких как я с артритом (который ограничивает мою ловкость рук.
Стив Робиллард
@ SteveRobillard, да, с ними сложнее работать, но определенно легче, чем кажется. Для MSOP это помогает иметь увеличение, флюс, фитиль припоя и хорошую паяльную станцию. У вас может быть достаточно нескольких ходов для закрепления одного угла MSOP припоем, пока вы не будете довольны позиционированием. Небольшой размер помогает уменьшить шум в цепи, поэтому стоит попробовать, вы можете быть удивлены.
Джон Ла Рой
1

Ну, пока ваше желаемое использование не требует сверхвысоких битрейтов или разрешения, вы, вероятно, можете просто использовать Arduino. Arduinos хороши тем, что у них огромное сообщество поддержки, они уже давно и общение по USB - нет GPIO!

Вот ссылка на сообщение в блоге Саймона Монка с инструкциями о том, как он общается с Arduino от Raspberry Pi с python.

Кроме того, только в случае , если вы никогда не слышали о Arduino раньше (возможно , вы жили под скалой) вот ссылка на их страницу Введения и пример начального уровня аналоговых входов.

Дэн Б
источник
0

Аналогично использованию Arduino, но как насчет устройства PICAXE, подключенного к RPI UART? Это было бы меньше и намного дешевле. Мне Arduino кажется чрезмерным в зависимости от ваших реальных потребностей.

парень
источник
0

Через месяц или два (из-за доставки в Африку) я получу плату I2C PCF8591, на которой есть сайт WiringPi с поддержкой Wiringpi, и плата использует 3,3 В (как правило). Я получил версию WaveShare на Amazon Amazon Link From I Я читал, что PCF8591 довольно хорош, но пока у меня на самом деле нет платы, я не могу сказать, хорошо это или нет

linuxgnuru
источник