Как замедлить вывод сообщений в Serial?

Givizub
Offline
Зарегистрирован: 01.01.2017

Снимаю показания с датчика DS18B20. Все работает нормально, но на скорости 9600 бод данные выводятся в seral очень быстро. Для отображения их хотел использовать браузерное расширение "Serial Projector", но оно зависает из-за быстрого вывода. Указать там скорость ниже, чем 9600 невозможно. delay останавливает остальную программу. Как затормозить вывод c помощью millis() без остановки программы или другими способами - не соображу.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Возьмите пример "Блинк без делай" и там просто вместо мигания вставьте вывод в сериал - будет выводить раз в секунду.

Logik
Offline
Зарегистрирован: 05.08.2014

Чет я сомниваюсь что с DS18B20 можна получать температуру настолько быстро, чтоб ктото еще не успевал. Скорей всего одно и тоже измерение передается очень много раз, с чем следовало бы и разобратся.

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014
Попробуйте таким способом:
1)Создайте масив и загоните туда показания, с датчика за определенный промежуток времени, наприме 0.5сек. 
2)Выберите среднее значение, можно путем деления или поиском повторений. Присвойте это значение переменной, например - "temperatura" И отправляем в сериал.
3)Создаем еще одну переменную, например "temp_temperat" и присваюем ей значение "temp_temperat = temperatura"
4)В следующий раз перед отправкой в сериал проверяем изменилась ли температура "if(temperatura != temp_temperat)" если изменилась то отправляем в сериал и присваюем значение "temp_temperat = temperatura" А если нет то и отправлять незачем.