Макетные платы и точные измерения напряжения

Я пытаюсь настроить термистор (PT1000) для работы с arduino. Для этого я использовал делитель напряжения и вывод 5 В в качестве источника напряжения. Я получал очень нестабильные результаты, поэтому я удалил термистор и вместо него использовал резисторы 2 1 Ком.

Я все еще получал результаты в диапазоне от очень близкого к истинному значения от 1 Ком до 1,2 Ком. Для справки, 4 Ом эквивалентны изменению температуры на 1 градус Цельсия.

Я измерил падение напряжения каждого резистора и был удивлен, что оно далеко от эквивалентного. Посмотрите видео полной настройки и подключения делителя напряжения крупным планом - https://easyupload.io/5fctxm

Я не могу объяснить разницу в падении напряжения 0,3 В между двумя резисторами одинакового номинала (сопротивление 1000 Ом +-0,5% было проверено мультиметром) каким-либо другим способом, кроме того, что макетные контакты и перемычки не подходят для точного измерения напряжения. Может ли кто-нибудь с большим опытом подтвердить, сломан ли мой макет или такое поведение предназначено.

, 👍0

Обсуждение

Вы измерили сопротивление каждого резистора? То, что они рассчитаны на одинаковое сопротивление, не означает, что они обладают одинаковым сопротивлением. В зависимости от того, что именно у вас есть, вы можете получить +-5% или +-1%, @chrisl

Добро пожаловать в Arduino: SE. Это похоже на вопрос об электронике / электротехнике, а не об Arduino., @sempaiscuba

Где именно вы измеряете напряжение, которое отличается на 0,3 В (меньше? больше, чем?) от чего вы ожидаете? Макетные платы хороши для насыщенных схем (например, цифровых), но не подходят для некоторых аналоговых. И ужасен для высоких частот. Значения для резисторных делителей выбираются достаточно высокими, чтобы ограничить ток (т. е. Снизить требования к питанию и нежелательные перепады напряжения), и достаточно низкими, чтобы уменьшить шум. Я бы попытался удалить все оксиды путем повторных вставок и повторного измерения., @st2000

Резисторы @chrisl также были измерены и находятся в пределах 0,5% допуска., @sanjihan

@st2000 Напряжение измеряется на выводе 5 В и первом резисторе в одном случае и на втором резисторе и заземлении в другом случае. Видео показывает больше, чем изображение., @sanjihan

"... видео ..." Благодарим вас за загрузку видео на внешний сервер. Но смысл stack exchange заключается в сохранении вопросов и ответов, чтобы другие могли в будущем извлечь выгоду из вашего вопроса и предоставленных ответов. Так как срок действия видео истечет .. что ж ... было бы намного лучше, если бы вместо этого вы включили схему непосредственно в свой вопрос. Или изображение, на котором цветовые полосы и соединения резисторов были более четкими., @st2000

@st2000 Я согласен. Какой инструмент обычно используется для создания схем и обмена ими?, @sanjihan

"Какой инструмент обычно используется ..." Я обычно включаю фотографии. Но на панели инструментов stackexchange есть ЗНАЧОК, доступный при редактировании вопроса или ответа., @st2000


2 ответа


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

3

Чтобы оценить стабильность аналоговых показаний на макете, я провел эксперимент, очень похожий на ваш. Я подключил два 1 Ком резисторы на макетной плате, соединенные последовательно между GND моего Arduino и +5V. Я соединил среднюю точку с A0 и составил гистограмму из миллиона последовательных вызовов analogRead(A0).

Вот мой тестовый код:

const int histo_length = 64;
const long histo_count = 1000000;
long histo[histo_length];
int histo_start;

void setup() {
    Serial.begin(9600);

    // Центрируйте гистограмму по среднему показанию.
    int sum = 0;
    for (int i = 0; i < 16; i++)
        sum += analogRead(A0);
    int average = sum / 16;
    histo_start = average - histo_length/2;

    // Заполните гистограмму.
    Serial.println("Ouliers:");
    for (long i = 0; i < histo_count; i++) {
        int x = analogRead(A0);
        if (x >= histo_start && x < histo_start + histo_length)
            histo[x - histo_start]++;
        else
            Serial.println(x);  // средство печати
    }

    // Распечатайте его.
    Serial.println("Histogram:");
    for (int i = 0; i < histo_length; i++) {
        Serial.print(histo_start + i);
        Serial.print(" ");
        Serial.println(histo[i]);
    }
}

void loop() {}

Обратите внимание, что полная гистограмма не поместилась бы в памяти моего Uno, отсюда и хитрость с распечаткой выбросов вместо их записи.

А вот результирующая гистограмма:

508 0
509 39386
510 960567
511 47
512 0

Все остальные ячейки гистограммы были пусты (никаких выбросов).

Как вы можете видеть, 96% звонков были возвращены 510. Большинство из тех, кто не вернул 510, вернули 509, и менее 0,005% из них вернулись 511. Среднеквадратичная дисперсия показаний составляет около 0,04 шага АЦП.

Я едва ли могу представить себе что-либо более стабильное, чем это.

,

Очень круто, спасибо. Позже я пришел к выводу, что на моей макетной плате неисправны разъемы. 1 Ком, измеренный мультиметром, оценивается в 996 Ом. При подключении к макетной плате она составляла от 1000 до 1200 Ом. Это был мой первый раз, когда я использовал макеты, так что это застало меня врасплох., @sanjihan


1

Схемы даже для такого вопроса незаменимы.

Исходя из следующего:

Я не могу объяснить разницу в падении напряжения 0,3 В между двумя резисторами одинакового номинала

... означает, что напряжение на каждом из 2 разных резисторов, оба с маркировкой 1 Ком, последовательно соединенных с одним и тем же резистором 2,1 Ком, подключенным к 5 В и 0 В, отличается на 0,3 В.

schematic

Если предполагается, что два резистора по 1 Ком составляют 0,5% (5-я цветная полоса зеленого цвета), а резистор 2,1 Ком подходит так же хорошо, как и потенциал 5 В. Тогда резистор с сопротивлением 1 Ком, скажем, на 0,5% меньшим, составит 995 Ом. И еще, скажем, на 0,5% большее сопротивление составило бы 1005 Ом. Напряжение на 1-м в этой схеме резисторного делителя будет составлять 1005 x (5 / (1005 + 2100)) или 1,62 В. А 2-й будет равен 995 x (5 / (995 + 2100)) или 1,61. Это разница в 0,01В. Это меньше, чем измеренная разница между двумя разными резисторами 1 Ком, учитывая максимально возможную процентную погрешность в 0,5%.

Таким образом, разницу в 0,3 В между показаниями напряжения двух разных резисторов 1 Ком трудно учесть. Возможно, очистка соединений может улучшить результаты измерений.

,

Спасибо. Оба резистора имеют сопротивление 1 Ком с допуском 0,5%, проверенным мультиметром. Я убрал макет из всех соединений, и теперь показания сопротивления соответствуют ожидаемым., @sanjihan

Несколько дней назад, когда я подключал ЖК-дисплей, я столкнулся с аналогичной проблемой. Если я слегка прикасался к проводам, дисплей "сходил с ума". Для этого я сделал gif: D https://im.ezgif.com/tmp/ezgif-1-eabc871208.gif, @sanjihan

Обратите внимание, что вы можете обнаружить, что большинство резисторов находятся на крайнем пределе заданного допуска. Вероятно, это связано с тем, что производители отфильтровывают более точные резисторы по более высокой цене. Вы постоянно обновляли ЖК-дисплей, делая его более восприимчивым к прерывистым подключениям. Возможно, если бы вы перестали обновлять его и прикоснулись к проводам, меньше или вообще ничего не произошло бы., @st2000

Орехи, в ответе есть ошибка, и разница не превышает 0,3В., @st2000

Хорошо, исправил это. Но это указывает на то, что измеренная разница в 0,3 В была неожиданной и не могла быть учтена! Хорошо, что вы догадались об этом, устранив макет., @st2000

Еще раз спасибо вам. Буду использовать CircuitLab в будущем вопросе, теперь, когда я знаю о его существовании., @sanjihan

Таким образом, контакты макетных плат должны иметь сопротивление 0 Ом или для них характерно, что они вызывают несколько Ом, даже при токе и напряжении arduino?, @sanjihan

Это, вероятно, более случайно, чем последовательно несколько Ом. Вот почему я изначально сказал, что макетные платы хороши для насыщенных схем (то есть цифровых) и не так хороши для некоторых аналоговых и плохи для высоких частот. Опять же, если это важно, используйте чистые провода и очистите их от окисления. Кроме того, я не понимал, что вы основываете свои измерения АЦП на 1 выборке. Обычно этого никогда не делают из-за шума. Поскольку это встроенное программное обеспечение (ограниченная память) Я предлагаю использовать [экспоненциальное усреднение] (https://en.wikipedia.org/wiki/Exponential_smoothing )., @st2000