Счётчик с шагом 0.1
- Войдите на сайт для отправки комментариев
Чт, 21/02/2013 - 20:09
Прошу сильно не бить , только начинаю эксперименти с Arduino .
Не могу понять как сделать счётчик нажатия кнопки , но с шагом не 1 а 0.1
т.е. с каждым нажатие значение на LCD увеличивалось на 0.1 . Не нашёл ни одного похожего проекта где можно былобы подсмотреть как это реализовано :(
Прошу сильно не бить , только начинаю эксперименти с Arduino .
Не могу понять как сделать счётчик нажатия кнопки , но с шагом не 1 а 0.1
т.е. с каждым нажатие значение на LCD увеличивалось на 0.1 . Не нашёл ни одного похожего проекта где можно былобы подсмотреть как это реализовано :(
Что здесь нужно изменить чтобы изменился шаг ?
01
Для начала посмотрите как вставлять код с сообщение и отредактируйте его.
Просто сделайте вывод на дисплей как 0,1 не переходя на вещественные числа.
и учтите, если это кнопка, то она может "дребезжать", что бы устранить дребезг, нужно увеличить задержку в 35 строке.
Спасибо !!!
woow, замените int Counter = 0; на float Counter =0;
Так же измените строку 23 на Counter=Counter+0.1;
woow, замените int Counter = 0; на float Counter =0;
Так же измените строку 23 на Counter=Counter+0.1;
>>А со вторым знаком после запятой (нулем) что потом делать?<<
А зачем вообще что то с ним делать ?
Вот сейчас проверил предложеный мной вариант. Все правильно.
Получаются значения 0.10 0.20 0.30 0.40 и т.д.
Перефразирую - зачем этот ноль?
Вам мешает этот 0 ?
Вы показали один вариант , я другой.
Считайте целыми, а перед выводом поделите на 10, или выводите количество десятков, потом точку, потом единицы. Примерно так:
Считайте целыми, а перед выводом поделите на 10, или выводите количество десятков, потом точку, потом единицы. Примерно так:
Ну да... Поленился внимательно посмотреть, извините. "не переходите на вещественные числа" - приставка "не" потерялась по пути от глаз к мозгу :( Но это не плагиат, я тоже сам придумал!
Спасибо , все варианты работают .
Было интересно узнать что один и тот же результат можно получить двумя разными путями.
Если я правильно понял , если мне при достижении нужного значения (например 2.5) требуется получить сигнал на определёном выходе , в варианте с "int" нужно сравнивать со значением в 10 раз большим (25) , а с "float" соответствует тому что вижу на LCD (2.5) ?
>>Было интересно узнать что один и тот же результат можно получить двумя разными путями.<<
На самом деле вариантов гораздо больше.
>>а с "float" соответствует тому что вижу на LCD (2.5) ?<<
Да, именно так.
Небольшая поправка. Вариант с float выводит сотые доли. Т.е. на дисплее буде 2.50 а не 2.5.
>>достаточно в print() передать вторым параметром количество знаков после запятой.<<
Вот этого не знал. maksim, не поделитесь ссылкой на первоисточник? Может еще чего полезного почерпну.
>>Сам спросил, сам отвечу - можно и float выводить с одним знаком,<<
Выводить то можно. Но нужно иметь в виду то что фактическое значение переменной будет несколько отличаться от выводимого.
И если с этим значением, в программе , производятся какие то многоступенчатые преобразования (арифметические) ,то накапливаемая погрешность может быть довольно большой.
Это так , для более углубленого понимания.
Первоисточник самый первоисточный ) http://arduino.cc/en/Serial/Print