Команды и директивы компилятора PROTON

RCIn

Синтаксис:

Variable = RCIn Pin, State

По этой команде происходит измерение интервала времени в течение которого, выбранный вывод находится в указанном состоянии.

Параметры:

Примечания

Обычно команда RCIn используется для измерения времени заряда/разряда RC-цепочки.

На рисунках 1 и 2 приведены две схемы RС цепей подходящие для использования с командой RCIn. Схема на рисунке 2 является предпочтительной, в ней изменяемое напряжения на конденсаторе имеет больший динамический диаппазон, чем в схеме приведенной на рисунке 1.

У PIC-микроконтроллеров порог логической единицы составляет примерно 1,5 вольт, это означает, что в начальный момент измерения из-за предварительно разряженного конденсатора напряжение на входе порта начнет убывать с 5V (см. рис. 2), а затем, по мере заряда конденсатора, снизится до 1,5V. В этот момент PIC-микропроцессор зарегистрирует уровень логического нуля и остановит выполнение команды RCIn. Рабочий промежуток измерения времени будет определяться интервалом в 3,5V и в этом случае он будет гораздо большим чем в первой схеме.

В схеме же приведенной на рисунке 1 напряжение на конденсаторе и соответственно на входе PIC-микроконтроллер начинает расти с 0V и, достигнув 1,5V, микроконтроллер зарегистрирует изменение уровня на его входе с логического нуля до уровня логической единицы и остановит выполнение команды. RCIn.

      
Рис.1. Схема для измерения времени заряда
RC-цепочки
      
Рис.2. Предпочтительная схема для измерения
времени заряда RC-цепочки

Пример 1

Щелкните, чтобы активировать этот элемент

Рис. 3. Схема действующей модели rcin1.DSN. Иллюстрация работы команды RCIn
при построении измерительной RC-цепи согласно рисунку 1.
По этой ссылке можно скачать архив действующей модели и необходимые для ее работы ASM и HEX файлы.


Пример 2

На рисунке 4. приведена схема действующей модели rcin2.DSN, которые иллюстрируют работу команды RCIn при построении измерительной RC-цепи согласно рисунку 2.

Щелкните, чтобы активировать этот элемент

Рис. 4. Схема действующуй модели rcin2.DSN. Иллюстрация работы команды RCIn
при построении измерительной RC цепи согласно рисунку 2.
По этой ссылке можно скачать архив действующей схемы и необходимые для ее работы ASM и HEX файлы.


При одних и тех же параметрах R и C, схема на рис 2 показывает более лучшие результаты, и поэтому предпочтительна.

Перед выполнением команды RCIn, конденсатор С должен быть переведен в состояние, указанном в атрибуте State (HIGH или LOW) команды RCIn. Например, в схеме 2, перед началом каждого измерения конденсатор С должен быть разряжен подачей на него +5V из порта PORTB.0 через резистор R1 ограничивающий выходной ток PORTB.0 . Пока обе обкладки конденсатора находятся под потенциалом +5V он разряжается.

Это может показаться странным, что при подаче на него +5V он будет разряжен, но нужно помнить, что конденсатор заряжается при наличии разницы потенциалов (напряжения) между его пластинами. Когда обе пластины конденсатора находятся под потенциалом +5 вольт, конденсатор считается разряженым. А если на одну пластину конденсатора подать + 5 вольт, а на другую -5 вольт от одного и того же источника питания, то конденсатор зарядится до напряжения 5 вольт.

Использовать команду RCIn для измерения времени заряда RC-цепи очень просто, за исключением одной детали: Для данных R и С, какое значение команда RCIn будет отправлять в переменную Result?

На самом деле это довольно легко рассчитать используя понятие постоянной времени RC-цепи. Постоянная времени RC-цепи обозначается символом . Читается как тау.

Тау представляет собой время, необходимое для заряда RC-цепи от нуля до 63 процентов величины питающего эту цепь напряжения Uпит. Например, если напряжение питания измерительной цепи равняется 5 вольт, то за время конденсатор зарядится до 3,15 вольта. За время равное трем конденсатор заряжается до 95%. Тем кто задастся вопросом почему это так, необходимо заглянуть в учебники по основам электротехники. Там вы найдете ответы на этот, и многие другие вопросы.

Произведение RxC есть не что иное, как .

= RxC

Строго говоря постоянная времени определяет время, в течении которого свободная составляющая тока или свободная составляющая напряжения в цепи уменьшается (или увеличивается) в е раз.

Само же время T будет равно

Т = RC*e(Vfinal/Vinitial)

В этой формуле е это натуральный логарифм.

Пример 3

Значения Vinitiai и Vfinai не изменяются, следовательно можно использовать упрощенные правила большого пальца для проведения измерений при комощи команды RCIn.

Например, если команда RCIn возвратила в переменную число равное 800 при известном R, то легко определить неизвестную емкость С и наоборот.

Необходимо несколько слов сказать о назначении резистора R1=220Ω. В обеих схемах он играет роль ограничителя тока текущего через PORTB.0.

На примере работы схемы 2 (см. рис. 2) рассмотрим его роль. В тот момент времени, когда конденсатор полностью заряжен и его требуется разрядить, на нижнюю обкладку конденсатора С, которая находится под потенциалом -5 вольт, через PORTB.0 подается потенциал напряжения равный +5 вольт. Следовательно через резистор R1 и PORTB.0, по закону Ома будет протекать ток равный

IPORTB.0 = U/R = 5V/220Ω = 23 мА.

Если бы резистор R1 отсутствовал, то через порт PORTB потек бы очень большой ток и вывел PIC-микроконтроллер из строя. По техническим условия ток через любой порт PIC-микроконтроллера не должен превышать 25 мА.

См. также: Adin, Counter, Pot, PulsIn.