Очевидно, что с таким напряжением нашему микроконтроллеру не грозит опасность. Но теперь я вижу другую проблему: этот диапазон слишком мал и не обеспечивает оптимальной точности.
На рис. 5.89 проиллюстрировано преобразование входного напряжения в цифровой эквивалент. Диапазон от 2,1 до 2,5 В обозначен темной вертикальной полосой. Его можно преобразовать в число от 430 до 512, при этом разница составит 82 – это всего лишь небольшая часть полного диапазона от 0 до 1023.
Ограничиться узким диапазоном – все равно что использовать небольшое количество пикселов на фотографии с высоким разрешением.
Рис. 5.89. График преобразования входного напряжения на плате Arduino в значения на выходе АЦП
Рис. 5.89.
Мы неизбежно ухудшим детализацию. Было бы неплохо, если бы мы каким-либо образом смогли преобразовать наше напряжение в цифровой диапазон из 500 значений, а не из 82.
Одним из способов добиться этого могло бы стать усиление напряжения, но для этого потребуется дополнительный компонент, например, операционный усилитель. Еще понадобятся резисторы в цепи обратной связи, и вся схема станет сложнее. Сама идея микроконтроллера сохранить простоту!
Есть еще одно решение – воспользоваться функцией платы Arduino, задающей нижнее максимальное напряжение для диапазона. Но для этого нужно подать эталонное значение нового максимального напряжения на один из контактов. Чтобы создать это напряжение, мне понадобился бы еще один делитель напряжения, а затем пришлось бы рассчитать новое преобразование входного напряжения в значения АЦП. В общем, я решил сначала написать простую программу, добиться ее правильного функционирования, а потом уже заняться улучшениями.
Поразмыслив немного, я понял, что диапазон из 82 значений будет пригоден для представления температур в пределах от 25 до 37 °C. При этом точность каждого шага АЦП составит примерно 0,15 градуса. Этого недостаточно для медицинского термометра, но вполне хватит для измерения комнатной температуры.
Сборка макета
Сборка макета
Что ж, давайте попробуем. Но сначала определимся, как мы будем собирать макет устройства и подсоединять плату Arduino Uno, на которой установлен микроконтроллер.
Есть три способа соединить все компоненты:
• Приобрести устройство под названием protoshield, похожее на миниатюрную макетную плату, которая устанавливается поверх платы Arduino Uno и подключается к ее разъемам. Мне такой способ не нравится, потому что я предпочитаю собирать прототип на обычной макетной плате.
Рис. 5.90. Подключение терморезистора к плате Arduino