Включить порт RA0 в качестве входного и получить значение LDR из светодиодов - PullRequest
1 голос
/ 28 марта 2011

Я использую picdem 18F4550 с микрочипом v8.63 с компилятором C18.

Я позволю PortA установить в качестве входа, я подключу LDR к порту RA0. Что следующим образом (я думаю)

TRISAbits.TRISA0 = 1; <= set RA0 as input

Теперь я хочу получить значение LDR (напряжение / значение, если светодиод включен), могу ли я сказать:

int colorLed = PortAbits.RA0;

А теперь в переменной типа int есть значение / напряжение моего светодиода.

Поправь меня, если я ошибаюсь.

Ответы [ 2 ]

6 голосов
/ 29 марта 2011

Звучит так, будто вы хотите измерить аналоговое напряжение, и в этом случае вам нужно будет использовать вывод как AN0, а не RA0. Вам следует прочитать раздел 21 таблицы , но в итоге вам потребуется настроить AD-конвертер, используя регистры ADCON0, ADCON1 и ADCON2, и прочитать результат, который присутствует в ADRESH:ADRESL.

Обратите внимание, что вы могли бы потенциально прочитать LDR, используя цифровой вход, но вы не сможете откалибровать его. Использование аналогового входа немного сложнее, но гораздо более гибко.

0 голосов
/ 29 марта 2011

PORTA по умолчанию может функционировать как цифровой вход или аналоговый вход.

Чтобы использовать LDR, вам, скорее всего, необходимо настроить PIN-код как аналоговый вход.

HОткуда это еще зависит?на то, что вы хотите сделать.Может быть, вам следует немного подробнее рассказать о вашем проекте.

проверьте эту ссылку для PIC18F4550 таблица данных

Более подробные ресурсы можно найти только на PIC184550 здесь

еще раз, возможно, вы захотите дать более подробную информацию о вашем заявлении, чтобы мы могли помочь вам лучше.

...