Как работать с аналоговыми показаниями с помощью RPi и Firmata?

В контексте: я работаю над тем, чья цель - почувствовать окружающую среду. Этот процесс выполняется с использованием Arduino Uno и RPi. Самый простой способ, с помощью которого я установил связь между обеими платами, - загрузить стандартную Firmata и прочитать код из RPi, используя последовательную связь. Я использую pyfirmata для написания кода в Python на стороне RPI. Кроме того, Arduino питается от RPi, используя USB-порт.

Моя проблема: компонент ADC в Arduino использует в качестве аналоговой ссылки 5V, обеспечиваемый USB. Когда я протестировал интеграцию, я использовал свой ноутбук. Итак, компьютер обеспечивал 5V Arduino. Все идет нормально. Когда я интегрировал плату Arduino в RPi, у меня возникли некоторые проблемы, связанные с точностью датчика. Я выяснил, что RPi только давал 4.75 V в Arduino Board. Это возилось с моими чтениями, так как АЦП использовал 4.75В, в то время как мой код имел 5 В для вычисления вещей. После настройки кода все продолжалось, как и планировалось. Оба 4,75 В и 5 В были жестко закодированы в моем коде.

Итак, это мои вопросы:

  • Есть ли способ прочитать Vcc , используя pyfirmata, чтобы выяснить правильное напряжение, не имея этого жестко закодированного?
  • Есть ли способ изменить аналоговую ссылку использовать ВНУТРЕННЮЮ ссылку 1.1V?

Об аналоговой ссылке я нашел это: https://github.com/firmata/arduino /issues /39 . Итак, pyfirmata реализует метод send_sysex, мне просто нужно выполнить эти шаги, но я до сих пор не знаю, как это сделать.

1 голос | спросил coelhudo 13 MarpmTue, 13 Mar 2018 22:00:49 +03002018-03-13T22:00:49+03:0010 2018, 22:00:49

1 ответ


1

Похоже, что Firmata не имеет возможности изменить аналоговый источник ссылки. Вы ссылались на один из открываемых для него вопросов, но я не вижу нигде, где он привязан к текущей ведущей ветке.

Нет никакого способа, чтобы Arduino мог читать напряжение без какой-либо ссылки, и по мере того, как вы испытываете, по умолчанию используется Vcc. Это означает, что все нужно сравнивать с Vcc, и если вы сравните Vcc с самим собой, вы всегда узнаете, что Vcc равно Vcc.

Запрос на перенос для реализации - здесь , поэтому вы можете сами с этим поиграть.

ответил jose can u c 13 MarpmTue, 13 Mar 2018 22:26:30 +03002018-03-13T22:26:30+03:0010 2018, 22:26:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132