Написание кода Arduino для датчика давления MPXV6115V

Я пытаюсь использовать датчик давления MPXV6115V для контроля постоянного вакуума всасывающего устройства. Я не смог найти библиотеку для использования с этим датчиком. Я очень новичок в Arduino, но я разработчик программного обеспечения, поэтому хотел бы написать некоторый код, чтобы заставить этот датчик работать. Техническое описание этого датчика можно найти здесь. У меня был некоторый успех, используя код, найденный здесь, но это для другого датчика давления MPX, и выход выглядит неправильно, я считаю, что мои постоянные значения могут нуждаться в корректировке, но не уверен.

Я слышал, что могу использовать передаточную функцию для основы кода? Я действительно не знаю, с чего начать. Не мог бы кто-нибудь объяснить, как я могу написать код, чтобы заставить этот датчик работать с Arduino? Спасибо.

, 👍2

Обсуждение

зачем вам библиотека? ... датчик выдает напряжение, пропорциональное давлению ... измерьте напряжение, @jsotola


1 ответ


1

Связанный код в основном просто выполняет analogRead()s, вычисляет реальное значение из результатов и отправляет его по последовательному каналу. Это тоже то, что вы хотите сделать, вам просто нужно изменить расчет.

Итак, возьмите передаточную функцию вашего датчика и переупорядочьте ее так, чтобы получить формулу для P:

P = (Vout/Vs - 0.92)/0.007652

где Vs-напряжение питания (в данном случае 5 В), а Vout-выходное напряжение. АЦП Arduino составляет 10 бит, поэтому он дает вам значение в диапазоне от 0 до 1023 для 0В до 5В. Таким образом, вы получаете напряжение, вычисляя

voltage = analogRead(pin) / 1023.0 * 5.0;

Теперь поместите это в приведенную выше формулу, напишите ее как правильный код C++ (для переменных используйте float в качестве типа, в то время как pin - код является целым числом и является номиером pin, к которому вы подключили датчик, например A0), а затем замените расчет в связанном коде вашим-или напишите свой собственный полный код. Кроме analogRead(), вычисления и соответствующих вызовов Serial.println (), делать особо нечего.

,