• Легкость при расширении или при изменении схемы (просто перепишите программный код).
• Обширные бесплатные интернет-библиотеки приложений.
• Идеальны для приложений, включающих сложную логику.
Недостатки микроконтроллеров
• Довольно дороги для применения в небольших схемах.
• Требуют основательных навыков программирования.
• Процесс разработки занимает много времени: создание кода, его проверка и исправление ошибок, переустановка — все это помимо выявления и устранения неисправностей компонентов схемы.
• Стремительно развивающиеся технологии требуют непрерывного обучения.
• Каждый микроконтроллер имеет индивидуальные нюансы и особенности, которые необходимо изучить и помнить.
• Большая сложность означает более высокую вероятность появления неисправностей.
• Необходим стационарный компьютер или ноутбук, а также хранилище данных для программ. Информация может быть случайно утрачена.
• Необходим стабилизированный источник питания (обычно 5 или 3,3 В постоянного тока), как для логических микросхем. Величина выходного сигнала ограничена — 40 мА или меньше. Невозможность приводить в действие реле или динамик подобно таймеру 555. Если вам требуется большая мощность, следует предусмотреть дополнительную управляющую микросхему.
Подведение итогов
Теперь я готов ответить на вопрос: «Что следует предпочесть — микроконтроллеры или традиционные дискретные компоненты?»
Мой ответ таков: вам понадобится и то, и другое. Именно поэтому я включил микроконтроллеры в книгу, которая в основном рассказывает о дискретных электронных компонентах.
В следующем эксперименте я покажу, как датчик и микроконтроллер могут работать совместно.
Эксперимент 33. Исследуем окружающий мир
Переключатель либо включен, либо выключен, однако большинство значений, которые мы получаем из окружающего мира, обычно находятся между этими крайностями. Например, терморезистор — это датчик, электрическое сопротивление которого изменяется в широком диапазоне, в зависимости от температуры.
Микроконтроллер был бы очень полезен для обработки такого входного сигнала. Например, получая входной сигнал от терморезистора, микроконтроллер поддерживает заданную температуру, включая нагревательный элемент, если температура опускается ниже минимального значения, и выключая его, если в комнате достаточно тепло.
Микроконтроллер ATmega 328, установленный на плате Arduino Uno, может справиться с этой задачей, поскольку шесть из его выводов относятся к числу «аналоговых входов». Сигнал, поданный на эти входы, не оценивается как «логически высокий» или как «логически низкий». Он преобразуется внутри микросхемы с помощью аналого-цифрового преобразователя или АЦП.
В 5-вольтовой версии платы Arduino аналоговый сигнал на входе должен быть в диапазоне от О до 5 В. На самом деле, верхний предел можно изменять, что вносит некоторую сложность, поэтому я оставлю рассказ об этом на потом. Терморезистор не вырабатывает никакого напряжения, он только изменяет свое сопротивление. Так, необходимо придумать, каким образом изменение сопротивления обеспечит изменение напряжения.
Как только эта проблема будет решена, АЦП внутри микроконтроллера сможет преобразовать напряжение на аналоговом выводе в числовое значение в диапазоне от 0 до 1023. Почему именно такой числовой диапазон? Потому что его можно выразить десятью двоичными цифрами, а число