подключить его к макетной плате.

Когда я пробовал это сделать и изменял температуру терморезистора с 25 до 37 °С, мультиметр показывал напряжение от 2,1 до 2,5 В. Вам предстоит самостоятельно проделать аналогичный эксперимент, чтобы проверить мои значения.
Очевидно, что с таким напряжением нашему микроконтроллеру не грозит опасность. Но теперь я вижу другую проблему: этот диапазон слишком мал и не обеспечивает оптимальной точности.
На рис. 5.89 проиллюстрировано преобразование входного напряжения в цифровой эквивалент. Диапазон от 2,1 до 2,5 В обозначен темной вертикальной полосой. Его можно преобразовать в число от 430 до 512, при этом разница составит 82 — это всего лишь небольшая часть полного диапазона от 0 до 1023.
Ограничиться узким диапазоном — все равно что использовать небольшое количество пикселов на фотографии с высоким разрешением.

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


• Вынуть микроконтроллер из платы Arduino Uno и вставить в макетную плату, где размещены остальные компоненты вашей схемы. Но если вы сделаете это, то пропадет возможность загрузки программы в микроконтроллер. Понадобится также генератор колебаний, чтобы микроконтроллер работал на той же частоте, какая была у него на плате Arduino.
• Установить терморезистор и резистор на обычной макетной плате, а затем подать сигнал с терморезистора на плату Uno по проводу таким же способом, как вы подавали положительное напряжение и заземление от платы Arduino на макетную плату. Это не слишком изящно, но, похоже, так делают многие. Если вы отладили программу и окончательно переписали ее в микроконтроллер, то затем можно вынуть микросхему и установить в более удобном месте.
На рис. 5.90 показано расположение элементов, на рис. 5.91 — фотография макета установки. Вынужден признать, что здесь как раз тот случай, когда удобны маленькие провода с разъемами на концах, хотя я до сих пор не вполне доверяю им.