Atmega128 + DS18B20 + Аналоговый порт
- Войдите на сайт для отправки комментариев
Ср, 29/01/2020 - 22:00
Помогите пожалуйста решить вопрос, датчик DS18B20 не хочет работать на аналоговом порте, на цифровом нормально работает, но они у меня все заняты. Читал документацию, он должен работать, но я пробой на разных портах A1, A2, A3, A4 результат один и тот же.
define ONE_WIRE_BUS_1 A1//Датчик температуры 1 OneWire ds1(ONE_WIRE_BUS_1); DallasTemperature sensor1(&ds1); volatile flot c1; void setup() { sensor1.begin(); } void loop() { delay(1000); sensor1.requestTemperatures(); c1=sensor1.getTempCByIndex(0); }
Упорно показывает -127
а от цифровых-то портов работает, проверяли? - может дело не в порте, а в датчике?
И что, это работает?
volatile flot c1;
Вот так показывает на втором текущую температуру, на первом -127, датчики местами менял
это я вручную добавил, в программе float (случайно)
а если к пину А1 обратится по номеру - 46? - не поможет?
Это у вас на 128 меге все пины заняты? -что ж вы такое ваяете?
а если к пину А1 обратится по номеру - 46? - не поможет?
Это у вас на 128 меге все пины заняты? -что ж вы такое ваяете?
как раз пробовал и по цифровым именам, толку нет.
Да это домашняя электроника, несколько портов есть свободных, но они на плате не разведены и находятся в другой стороне, не пойму в чем проблема в документации сказано к любому порту.
но они на плате не разведены и находятся в другой стороне
А вы уверены, что правильно подключились к тому, что надо? Вы проверяли их, как обычные пины, в них что-то пишется/читается?
если я с пином работаю как с цифровым, то есть записать высокий/низкий уровень, то прибором вижу 0 вольт и 5 вольт
может он просто не успевает отдать данные
добавьте еще паузу одну
delay(1000);
sensor1.requestTemperatures();
delay(1000);
c1=sensor1.getTempCByIndex(0);
---
у меня 3 датчика висят и работают
я отправляю команду на обновления данных (на все сразу) и жду 1 секунду и только потом считываю результаты
всё стабильно работает нонстоп уже несколько месяцев (холодильник цифровизировал)
почитайте пост 42 (в первую очередь) да и всю тему, если не читали...