/********************************************************************/
/*задержка в 100 мкс, на базе таймера с частотой 8 МГц */
/********************************************************************/
void delay_100us(void) {
int i;
for(i=0; i50; i++) {
asm("nop");
}
}
/********************************************************************/
7.3.6. Измерение неэлектрических величин
В представляемых примерах функция вольтметра состоит просто в измерении напряжения с выхода датчика некоторого внешнего физического параметра.
Датчик температуры. Например, мы можем подключить к МК 68HC12 градуированный по шкале Фаренгейта прецизионный датчик температуры LM34, выпускаемый компанией National Semiconductor. Этот датчик имеет постоянный коэффициент преобразования в +10 мВ на градус Фаренгейта, в диапазоне от –50 до +300 Ф. Схема подключения LM34 приведена на рис. 7.14. Она состоит из собственно датчика LM34 и цепи фильтра, образованной резистором и конденсатором. Такая схема обеспечивает прямое преобразование измеряемой температуры. Например, при 70 Ф, LM34 создает выходной сигнал в 700 мВ. Это напряжение умножается на 100, чтобы обеспечить прямое преобразование напряжения в вольтах в температуру, выраженную в градусах Фаренгейта для вывода на дисплей. Это значение должно затем быть преобразовано в ASCII код для вывода на ЖК дисплей.
Рис. 7.14. Интерфейс для прецизионного датчика температуры по шкале Фаренгейта LM34 компании National Semiconductor
Датчик влажности. Фирма Honeywell производит ряд датчиков влажности (Humidity/Moisture) HIH-3610 [5]. Эти датчики калиброваны при питающем напряжении 5 В. Датчики обеспечивают линейный выход постоянного напряжения от 0,8 к 4,07 В при относительной влажности, изменяющейся от 0 до 100%, соответственно. Эти датчики могут быть связаны со встроенным АЦП МК 68HC12 непосредственно без согласующей схемы.
7.4. Стабилизация скорости вращения двигателя с использованием оптического тахометра
7.4.1. Описание проекта
Целью этого проекта является стабилизация скорости вращения электродвигателя.
Чтобы осуществить такую стабилизацию, используем управление с обратной связью. Мы будем постоянно контролировать скорость вращения двигателя в рабочем режиме и корректировать ее, изменяя напряжение питания, подводимое к двигателю. Мы также будем показывать текущую скорость вращения двигателя, выраженную в оборотах в минуту, на ЖК индикаторе.
В проекте используется двигатель постоянного тока с постоянным магнитом, выпускаемый компанией Electro-Craft Corporation и оптический кодер [11]. Двигатель имеет следующие характеристики:
• Постоянное питающее напряжение: 12 В;
• Скорость на холостом ходу: 2500 об/мин при 12 В;
• Пусковой ток: 2 А;
• Ток холостого хода: 370 мА;
• Ток при умеренной нагрузке: 600 мА;
• Ток останова: 4 А;
• Двигатель имеет один канал оптического кодера (Servo-Tek # PMBX-60-05).
Кодер формирует 60 ТТЛ-совместимых импульсов за один оборот двигателя.
После этого краткого описания проекта возникает ряд вопросов:
1. Как контролировать скорость двигателя?
2. Каким образом регулировать напряжение питания двигателя, чтобы изменять его скорость?
3. Микроконтроллер 68HC12 питается от постоянного напряжения в 5 В при очень малом выходном токе источника. Как управлять с его помощью двигателем с высоким рабочим током, питающимся от постоянного напряжения в 12 В?
4. Как можно совместить управление скоростью двигателя с выполнением других задач, стоящие перед системой?
5. Какие системы, встроенные в 68HC12, должны использоваться, чтобы выполнить эту задачу?
Как и прежде, мы обратимся сначала к нашему «сундучку инструментов», чтобы выяснить, какие инструментальные средства мы уже использовали в проектах и какие придется разрабатывать. Давайте сделаем это одновременно с рассмотрением каждого из сформулированных выше вопросов. При обсуждении воспользуемся схемой регулирования частоты вращения двигателя, представленной на рис. 7.15.
Рис. 7.15. Схема стабилизации скорости вращения двигателя
1. Как контролировать скорость двигателя? Как было упомянуто, мы используем для измерения скорости оптический кодер, формирующий 60 импульсов за оборот двигателя.