Зуммер мешает показаниям термистора

analogread buzzer voltage-divider thermistor

Вот как я подключил термистор и зуммер:

схема

И код:

#define RT0 10000
#define B 3977
#define R 10000
float RT, VR, ln, TX, T0, VRT;

void setup() {
  T0 = 25 + 273.15;
}

void loop() {
  VRT = analogRead(A3);
  VRT = (5.00 / 1023.00) * VRT;
  VR = 3.3 - VRT;
  RT = VRT / (VR / R);
  ln = log(RT / RT0);
  TX = (1 / ((ln / B) + (1 / T0)));
  TX = TX - 273.15;
}

Когда я подключаю зуммер, это вызывает небольшое падение напряжения, которое искажает показания температуры. Как я могу получить стабильные показания температуры, когда в цепи есть зуммер?

, 👍0

Обсуждение

Использовать выход LF33CV в качестве AREF?, @Majenko

Насколько падает напряжение? Можете ли вы просто использовать источник питания, который может работать с током зуммера без падения напряжения? И в ваших схемах зуммер подключен постоянно, поэтому падение напряжения должно быть постоянным, а это значит, что вы сможете обойти его, измерив результирующее напряжение и включив его в свои расчеты., @chrisl

@Majenko как? подключить 3,3 В к контакту AREF И термистору?, @ElectronSurf

@chrisl Я не измерял падение напряжения, но оно должно быть ~ 1 В, это активный зуммер. зуммер управляется микроконтроллером, я просто не добавил это в схему..., @ElectronSurf

@новичек Ага. и установите analogReference(EXTERNAL); -- https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/, @Majenko


2 ответа


Лучший ответ:

3

Вы можете использовать выход регулятора в качестве опорного напряжения для аналоговых показаний. Таким образом, независимо от того, какое напряжение использует делитель напряжения для термистора, «верхнее» напряжение, которое использует АЦП, всегда совпадает с напряжением термистора.

Просто подключите выход регулятора к контакту AREF и настройте АЦП на использование внешнего опорного напряжения:

analogReference(EXTERNAL);

Теперь у вас есть диапазон 0–1023, охватывающий 0–3,3 В (или любое другое напряжение, которое выдает регулятор), и, поскольку выход вашего делителя напряжения представляет собой просто отношение этого напряжения, это отношение будет всегда должен быть коэффициент 1023, независимо от напряжения.

По сути, вы убрали напряжение из уравнения. Все, что у вас осталось, — это значение в виде дроби от 1023, которое затем прямо пропорционально сопротивлению термистора.

,

Я сделал именно то, что сказал, и показания стабильны даже при падении напряжения, побочный вопрос; в этой строке «VR = 3,3 - VRT» напряжение определено как 3,3 В, но я получаю ложные показания и должен изменить его на «VR = 5 - VRT;». разве напряжение AREF и напряжение на термисторно-резисторном делителе напряжения не 3,3 В? почему я должен определить это 5V, чтобы получить правильное чтение температуры?, @ElectronSurf

Потому что в линии перед вами 5в по напряжению. Измените это на 3,3 В., @Majenko

После небольшого исследования я понял, что LF33Cv не является надежным Vref, вы предлагаете LM336 или TL431?, @ElectronSurf

Стабильность не имеет значения для этого приложения. Напряжение тоже. Вы можете использовать любое напряжение, которое находится в пределах спецификации АЦП, и результаты будут такими же. Вы заботитесь о точном Vref только в том случае, если вы сравниваете что-то внешнее с этим Vref. Вы не. Вы просто смотрите на соотношение двух резисторов между Vref и GND. Формула для R2 может быть сокращена до «(A * 10000) / (1023 - A)», где «A» — это значение, считанное с АЦП. Там вообще нет напряжения. Это все отменяется., @Majenko

Спасибо и извините за вопрос за вопросом ... у меня есть датчик Холла UGN35, который также подключен к аналоговому выводу, и аналоговые показания меняются с падением напряжения, в этом конкретном случае я должен изменить источник Vref на TL431 или это так. что-то, что можно исправить с помощью программного обеспечения?, @ElectronSurf

@newbie Может быть, вам следует разобраться, почему у вас падает напряжение, а не пытаться его компенсировать., @Majenko

даже включение простого светодиода вызывает изменение аналоговых показаний датчика холла! это немного, но это что-то... я должен задать это в отдельном вопросе?, @ElectronSurf

Ага. И предоставить полную подробную схему., @Majenko


2

Подключите выход регулятора к другому аналоговому входу. Прочитайте это непосредственно перед тем, как прочитать термистор. Используйте это напряжение при расчете делителя напряжения. Звуковой сигнал должен быть одинаковым (в идеале выключенным) во время обоих считываний.

,