Совместить LN35 и фоторезистор
- Войдите на сайт для отправки комментариев
Пнд, 06/06/2016 - 12:37
Всем ЗДРАВСТВОВАТЬ!
Подскажите, кто понимает, вот с таким случаем: Подключил к Nano два датчика, LN35 и фоторезистор и столкнулся с несколькоми вопросами одновременно :)
1. Померил напряжение на pin +5в на Nano и там оказалось, что при подключении с USB компьютера - 4,65в, при подключении от другого БП в тот же USB вход Nano - 4.85, при этом 3,3в на Nano в обоих случаях одинаково
2. Но основной вопрос в другом. При расчете температуры с датчика LN35 использую
analogReference(INTERNAL); // привязка к 1,1 в
reading = analogRead(tempPin); //// чтение показаний датчика LN35 с пин А0
tempC = reading / 9.31;
Так точнее показания, почти совпадающие с датчиком DHT 11 на pin A2
НО, при этом фоторезистор reading = analogRead(photoPin); (pin А3) дает что-то несусветное.
Если убираю analogReference(INTERNAL); и использую формулу для температуры
reading = analogRead(tempPin);
tempC = ( val/1024.0)*5000/10; (менял 5000 на 4650 так как на плате 4,65в)
То показания температуры становятся странными, и очень сильно меняются значения в пределах от 20 до 70 градусов с LN35, зато photoPin дает отличные и логичные результаты
Как привести значения photoPin в условиях analogReference(INTERNAL) к чему-то нормальному?
есть ли в этом случае что-то вроде формулы для показаний температуры? нигде не нашел использование фоторезистора с опорным напряжением , в т.ч. internal, а с математикой туго, и самому посчитать пока никак
Заранее благодарен за ответ на второй вопрос, или ссылку, где можно почитать подробнее
Ну и за ответ на первый вопрос тоже приношу благодарности
Собрал отдельно на другой плате.
отдельно датчики - просто прелесть
Вместе ....
Упростил все до минимума, и все равно не выходит. Ставлю 2 датчика рядом, и начинают прыгать показания LN35, включаю analogReference(INTERNAL) и показания LN35 ближе к правде, но все равно прыгают, зато на фоторезисторе изменения только при хорошем освещении
Как сделать правильно?
О как, только что заметил, при засветке фоторезистора - начинает нормально читаться температура, перестает прыгать и значения реальные
Где чего добавить?
Ушел к железячникам, раз программно не решается.
http://arduino.ru/forum/apparatnye-voprosy/vyvod-ref-na-nano
Ну, с точки зрения железячников здесь обсуждать несего, т.к. Вы непривели схему. Вероятно, на схеме просто не хватает конденсаторов, в частности, по питанию и еще можно зашунтировать аналоговые датчики керамическим конденсатором порядка 0.1.
Что касается программы, то имеет смысл что-то делать только тогла, когда все аппариные вопросы решены. Судя по всему, это не так. Но вообще можно посоветовать читать датчик несколько раз, усреднять показания и сделать небольшую задержку между опросами датчиков.
Спасибо, Andriano.
Схему не привел, она даже для меня простая и по разному представиться не может. я сделал фото в посте по ссылке
http://arduino.ru/forum/apparatnye-voprosy/vyvod-ref-na-nano
Основной вопрос по программированию все же можно ли использовать analogReference(INTERNAL) и analogReference(DEFAULT) в одном скетче и как это правильно сделать, что бы один датчик опрашивался с analogReference(INTERNAL) т.е. 1.1в а другой использовал analogReference(DEFAULT) 5в.
Спасибо, Andriano.
Схему не привел, она даже для меня простая и по разному представиться не может. я сделал фото в посте по ссылке
А для меня - может. Конденсаторов на фото я так и не обнаружил, поэтому могу повторить свой совет. Точнее оба совета - как аппаратный, так и программный.
Основной вопрос по программированию все же можно ли использовать analogReference(INTERNAL) и analogReference(DEFAULT) в одном скетче
Никогда так не пробовал, ответа на этот вопрос не знаю. Но не вижу причин, по которым это было бы невозможно.
После переключения режима с 1,1 вольта, первый замер в топку. Или наоборот.
Еще раз спасибо, Andriano.
Согласно статье http://easyelectronics.ru/podklyuchenie-mikrokontrollera-likbez.html где я более менее для нубов почитал что такое "шунтировать" я, по вашему совету, могу поставить по керамическому конденсатору 0,1 мкф между + и - каждого датчика, где это возможно (т.е. если он не на собственной плате) ?. Или между GND и контактом который идет на Pin A0 и А1 ? Где именно, ближе к датчику или ко входу Nano?
Uraganу тоже спасибо за отклик. Может подскажете как тогда решить вопрос с использованием разных опорных напряжений или как пересчитать показания с Фоторезистора до адекватных?
Поменяли опорное, сделали холостой замер.
Обьязательно попробую, но для меня это усложнение схемы. Я соберу, как посоветуете, исключительно для личного понимания как и для чего это нужно, на будущее, где питание будет плавать и двигатели в схеме появятся и прочие помехи. Сейчас в наличии 2 штучки , купить смогу не раньше чем через месяц (найти на это время) так что только на испытания и хватит.
На сегодня решил частный случай так как описал во втором посте - одну ногу фоторезистора воткнул в выход REF, там сразу 1,1 в и изменения его показаний analogRead читает с analogReference(INTERNAL) и вроде все ок, точности хватает.
Вот ответят во втором посте что это в корне не верно, так быть не может и не должно и завтра все сгорит нафиг, буду меня в основной схеме, может и пойму наконец как это сделать :).
Но, Вам - спасибо за участие
Uragan спасибо, но можно подробнее? Как сделать "холостой замер"
Вот скетч, пожалуйста, дайте направление что нужно поменять-добавить, чтобы организовать холостой замер и смену analogReference()
правильным образом
Заранее благодарен
Может кто-нибудь посмотрит что тут неправильно ? http://arduino.ru/forum/apparatnye-voprosy/vyvod-ref-na-nano