Термопара подключение.
- Войдите на сайт для отправки комментариев
Ср, 24/01/2018 - 18:11
Всем привет. Подключаю термопару через LM358 ....Куча схем в интернете...и что-то как то странно работает...
Температура скачет как прокаженная... Если подкрутить резистор, то от 180 до 300 грудусов измеряет правильно, а вот ниже.. в пример комнатная температура 19 градусов - а показывает 37-38 и точности никакой
38.05
38.05
37.64
37.64
37.64
38.05
38.05
38.46
38.05
38.46
#define thermocouplePin A0 // номер порта к которому подключен выход усилителя термопары double Ups = 4.19; //напряжение питания усилителя и ардуино double kt = 100; //коэффициент для преобразования напряжения в температуру double ADCmaxVal = 1023; //максимальное значение выдаваемое АЦП ардуино double tHome = 10.61; //комнатная температура int thermocoupleVal = 0; //полученное с АЦП число double t = 0; //температура спая термопары void setup() { pinMode(thermocouplePin, INPUT); Serial.begin(9600); // установка связи по serial } void loop() { thermocoupleVal = analogRead(thermocouplePin); t = (thermocoupleVal*Ups/ADCmaxVal)*kt+tHome; Serial.println(t); delay(100); }
Подскажите как улучшить /переделать?
Компенсируйте нелинейность термопары и схемы усиления программно.Для примера , посмотрите тут (там , где про таблицу) или сами поищите.
То, что на такой схеме вы получаете цифры хотя бы одного порядка, уже хорошо.
Спасибо!
Я термисторы больше полюбил))
Подключайте термопары через MAX6675 или MAX31855 и проблем не будет. Есть готовые "модули" для ардуино.
Была мысль...но мне нужно одновременно снимать показания температуры с 13 датчиков...Думаю с максами не хватит пинов :D
С пинами вопрос можно решить, но на такое усложнение стоит пускаться лишь в том случае, если применение термопар является обязательным условием. К слову сказать, 13 терморезисторов тоже еще надо придумать, как подключить.
Ох если б это были терморезисторы, а не термопары... Но у меня в нагреватели встроены термопары...мучайся теперь))
Была мысль...но мне нужно одновременно снимать показания температуры с 13 датчиков...Думаю с максами не хватит пинов :D
Для 13 датчиков, если юзать MAX6675, надо будет 15 пинов, или - одну mcp23S17 на шину SPI, и всё ;) Решения есть всегда.
Это еще зачем? 13 MAX6675 дополнить парой HC595 и всех вместе повесить на SPI. На выходы сдвиговых регистров повесить пины CS максов. Три пина ардуины отдать под SPI, еще тремя рулить сдвиговыми регистрами, управляя доступом к SPI. Вот и все.
Это еще зачем? 13 MAX6675 дополнить парой HC595 и всех вместе повесить на SPI. На выходы сдвиговых регистров повесить пины CS максов. Три пина ардуины отдать под SPI, еще тремя рулить сдвиговыми регистрами, управляя доступом к SPI. Вот и все.
Так одна MCP23S17 проще, чем "пара HC595" плюс "еще тремя рулить". 16 каналов, как раз на 13 датчиков, не? Висит на SPI, все остальные ноги - остаются свободными. Зачем огород, если можно всего одну микруху?
Оно дороже и я пока не нахожу, чтобы было проще. Объясняю: вывели мы в MCP некое значение, которое жмет вниз разрешешение на работу одного из максов. Макс уселся на SPI и как его потом отцеплять, когда к следующему максу захочется обратиться? Я простого способа не вижу.
Оно дороже и я пока не нахожу, чтобы было проще. Объясняю: вывели мы в MCP некое значение, которое жмет вниз разрешешение на работу одного из максов. Макс уселся на SPI и как его потом отцеплять, когда к следующему максу захочется обратиться? Я простого способа не вижу.
Вы о чём? макс не SPI, вообще-то - там любые три пина мона юзать. Т.е. все максы - на MCP, даже их ноги SCK и DO, и нет проблем. СS максов - тоже на MCP, всего делов. При чём тут "макс уселся на SPI" - да не при чём, ибо в даташите на MAX6675 написано "SPI™-compatible" - обратите внимание на слово "compatible", которое не обязывает, от слова "совсем" - юзать аппаратное SPI. А с остальным прекрасно справится одна MCP23S17, т.к. быстрая, двунаправленная, на SPI.
Опять будете опровергать очевидное? В ваших словах только в одном правда - одна MCP дороже одной 74HC595, всё.
...
ибо в даташите на MAX6675 написано "SPI™-compatible" - обратите внимание на слово "compatible", которое не обязывает, от слова "совсем" - юзать аппаратное SPI.
По факту, MAX6675 использует самый что ни на есть аппаратный SPI. Уточнение "compatible" приводится лишь с тем, чтобы не нарушать авторских прав (обратите внимание на знак TM) на торговую марку, принадлежащую мотороле. Никакой другой совместимости тут не просматривается, а что касательно юзать или не юзать аппаратный SPI, так и MCP можно употреблять ногодрыгом (как и большинство других устройств, использующих SPI), если вдруг такая идея кому-то придет в голову.
А я уже опровергал?
Очевидное здесь заключается в том, что "эмулировать" на расширителе портов, сидящем на аппаратном SPI, еще один SPI, только уже софтовый -- это полнейшая дичь. Вы прикиньте, какой объем обмена данными с расширителем нужно будет произвести, чтобы вытащить 16бит с макса. Удаление гланд через анус в чистом виде.
В предложенной вами схеме сюда еще добавиться, что MCP медленнее и геморройнее, при полном отсутствии каких-либо выгод.
Короче, ясно - всё вам удаление гланд через анус. Личные проблемы, да? Сочувствую. С вами бессмыслено разговаривать, т.к. вы НИКОГДА не признаёте, что несёте дичь порой. Касательно темы - какое там нахер быстродействие надо, чтобы с термопары прочитать? Вы бы взяли - да проверили, чтобы опять с пеной у рта утверждать "АААА, без аппаратного SPI всё дичь и анус!".
Я привёл совершенно рабочий юзкейс, вместо вашего говна с кучей таких ну очень прям быстрых HC595 (лол, вас тупо несёт) и кучей занятых ног вдобавок. Думающему человеку - достаточно этого, чтобы понять, что порой проще взять одну микруху, чем городить ваш медленных колхозный сортир из кучи слоупочных компонентов.
Вот зарекался с вами вообще дискутировать, года этак полтора назад - виноват, забылся, больше не буду, продолжайте дальше втирать дичь неофитам. Адью.
Спасибо за совет. Если устану биться с элэмками- то буду переходить на максов ;)
Хотел подешевше, ну что поделаешшшшшь
"compatible" ещё и потому что он не полный, только выдача с регистра, можно и через SPI, и просто ногодрыгом. Никому не пришло в голову что можно читать сразу 8 чипов одним портом, без всяких добавок. Соединить CS у всех и SCK тоже, а SO к разным ножкам порта. И по каждому импульсу читать весь порт в массив, а после обработать данные массива. Вторым портом ещё 8 и так пока порты не кончатся :)
HC595 по даташиту допускают работу через SPI до 100 мгц. MCP23S17 только до 10мгц. Это о слоупочности и о том, кого и куда там что-то несет.
Для того, чтобы выдернуть два байта данных с любого из 13-и максов, в случае применения пары сдвиговых регистров, надо:
1) заслать два байта по SPI в сдвиговые регистры, чтобы подать нужному максу сигнал CS.
2) отправить два пустых байта по SPI, чтобы SPDR заполнился данными от нужного макса.
Это все.
Атмега работает со SPI максимум на 8мгц. Передача одного байта занимает одну микросекунду (8бит/8мгц). Весь обмен, стало быть, будет длиться чуть больше 4 микросекунд, с учетом накладных затрат.
Теперь смотрим, что нам обещает волшебная микросхема MCP23S17: любое обращение к ней состоит не менее, чем из трех байт (см. стр. 15 даташита) -- кода операции, адреса регистра и байта данных. Если пишем в два регистра находящихся рядом, то можно сюда же добавить еще один байт. Итого четыре. Дальше смотрим, из чего будет состоять весь обмен по извлечению данных из макса:
1) заслать четыре байта по SPI в MCP, чтобы подать нужному максу сигнал CS;
2) заслать четыре байта по SPI в MCP, чтобы сгенерировать передний фронт сигнала SCK на софтовом SPI;
3) четыре байта в том же направлении, чтобы сгенерировать задний фронт сигнала SCK на софтовом SPI;
4) заслать четыре байта, чтобы прочитать первый бит данных от макса;
5) повторить пункты 2, 3, 4 еще пятнадцать раз, чтобы вытащить остальные 15 бит ответа от макса.
итого по времени: 4мкс + 16 * (4мкс + 4мкс + 4мкс). С накладными расходами это выйдет ближе к 200мкс.
Сравнивая по скорости решение на сдвиговых регистрах против схемы на расширителе поротов, здесь видно, что сдвиговые регистры работают в сорок раз быстрее. Вот такой он, "медленный колхозный сортир" получается.
Теперь насчет минусов обоих вариантов:
- решение на расширителе портов -- а) дороже; б) медленнее; в) сложнее в софте; г) больше загрузка ЦП.
- решение на сдвиговых регистрах -- а) использует 3 дополнительные ноги ардуины.
Вы можете дальше фонтанировать эмоциями, обвинять меня, что я "НИКОГДА" ничего не признаю, но весь технический расклад я нарисовал. Если есть возражения по этой части -- милости прошу. Если вам более импонирует тема говна и сортиров, то лучше тогда прекратить данное обсуждение.
Такое решение имеет право на существование, но один фиг, в схеме со сдвиговыми регистрами быстрее получиться последовательно опросить все 13 максов, чем тут параллельно. Плюс еще добавляется сложности с сортировкой полученных битов.
в схеме со сдвиговыми регистрами быстрее получиться последовательно опросить все 13 максов, чем тут параллельно. Плюс еще добавляется сложности с сортировкой полученных битов.
"не смешите мои подковы"
Через сдвиговые регистры опрос максов займет 5мкс * 13 = 65мкс. Потрудитесь посчитать, сколько времени уйдет на считывание данных со всех максов по вашему способу и вашим подковам останется только рыдать.
Через сдвиговые регистры опрос максов займет 5мкс * 13 = 65мкс. Потрудитесь посчитать, сколько времени уйдет на считывание данных со всех максов по вашему способу и вашим подковам останется только рыдать.
"Флаг тогда Вам в руки и красную печать..." Про мультиплексоры слышали когда-нибудь?
Да понял я уже, что ни цифр, ни расчетов, ни прочих доказательств не будет. Раз так, говорить больше не о чем.
В общемс...плюнул на элемки..дичь какая...заказываю максы
На операционниках тоже можно было сделать, но операционники лучше брать другие и придется серьезное внимание уделить аналоговой части. Без опыта это сделать будет сложновато. Максы хороши тем, что вся эта аналоговая дребедень уже внутри чипа и парить мозг никакой нужды нет.
Лучше чутка переплатить, чем мозг жечь))
Да понял я уже, что ни цифр, ни расчетов, ни прочих доказательств не будет. Раз так, говорить больше не о чем.
Кому доказывать, неучу? А расчёты за деньги. :)
И правда смешное сказали.
И правда смешное сказали.
Смейтесь дальше, смех без причины ...
Там дела менее чем на полчаса, скока свои регистры паять будете?
Как это без причины? Причин множество: рисунок практически не несет информации. Где мультиплексоры, о которых вы столь важно вещали? Как подключены максы к МК ? Нафига загораживать схему огромным окном терминала, который заполнен информацией лишь а 1/6 ? Нафига рама осциллографа, которая вообще информации не несет? Зачем потребовалось треть схемы загораживать этими ничего не значащими элементами? Почему термопар с максами только девять (или десять) ? Где остальные? Напомню, речь шла о тринадцати. Вобщем, это какая-то мазня, сор и совершенно никакой не пруф.
Два регистра запаять ? Потребуется, наверное, минуты три.
Добрый день, какие номиналы резисторов в схеме первого сообщения?
Добрый день, какие номиналы резисторов в схеме первого сообщения?
Плохо видно, но наверно верно. И ещё - как удалить (не выводить) сотые градуса?
Чтобы было хорошо видно (а также чтобы была возможность проверки), нужно размещать принципиальную схему, а не монтажную.
Жаль что автор этого не сделал
чего сложного на картинке?) Я тогда пробовал много вариантов подключения через LM....И все они мягко говоря не очень...показание не верные...
Жаль что автор этого не сделал
Вряд ли мы можем выбирать авторов, которых нам подсовывает Гугл на наш запрос. Но зато мы можем выбирать авторов тех конструкций, которые мы хотим повторить. Лично я бы не стал повторять конструкцию, для которой приведена монтажная схема вместо принципиальной.
Самое забавное, что пофиг какой код (хоть не рабочий). главное повторить..
берите MAX31855 он лучше MAX6675. билиотека и подробности тут - MAX31855, датчик к-термопары с компенсацией температуры холодного спая