(no subject)
Mar. 29th, 2014 01:26 amПродолжал развлекался с простеньким микроконтроллером PIC12F510.
Решил освоить таймер, аналого-цифровой преобразователь (ADC) и заодно посмотреть
как импульсно-широтная модуляция (PWM) будет работать.
Подключил переменный резистор (потенциометр) параллельно питанию контроллера,
а с ползунка напряжение подал на одну из ног на вход ADC.
К другой ноге (0) подключил светодиод.
И написал такую программу из 5 строк:
Поразительно что сразу заработало: вращаешь потенциометр, напряжение
оцифровывается и модулируется сигнал цифровым образом через таймер
и меняется яркость светодиода.
Вау! Поразительно как просто можно сделать регулятор и
как одновременно сложно - через 8 Mhz микроконтроллер
с миллионами транзисторов это работает...
Чип стоит кстати пол доллара (в несколько раз меньше тупого потенциометра!).
Так что техническое решение абсолютно к тому же бюджетное.
Цифровая эра всё таки удивительная штука!..
Решил освоить таймер, аналого-цифровой преобразователь (ADC) и заодно посмотреть
как импульсно-широтная модуляция (PWM) будет работать.
Подключил переменный резистор (потенциометр) параллельно питанию контроллера,
а с ползунка напряжение подал на одну из ног на вход ADC.
К другой ноге (0) подключил светодиод.
И написал такую программу из 5 строк:
for(;;)
{
ADCON0bits.GO_nDONE = 1; // Start ADC
for(;ADCON0bits.GO_nDONE;) ; // Wait for ADC results
GPIO = TMR0 < ADRES; // Set PWM duty cycle and out signal
}
Поразительно что сразу заработало: вращаешь потенциометр, напряжение
оцифровывается и модулируется сигнал цифровым образом через таймер
и меняется яркость светодиода.
Вау! Поразительно как просто можно сделать регулятор и
как одновременно сложно - через 8 Mhz микроконтроллер
с миллионами транзисторов это работает...
Чип стоит кстати пол доллара (в несколько раз меньше тупого потенциометра!).
Так что техническое решение абсолютно к тому же бюджетное.
Цифровая эра всё таки удивительная штука!..