febb: (Default)
[personal profile] febb
Продолжал развлекался с простеньким микроконтроллером PIC12F510.
Решил освоить таймер, аналого-цифровой преобразователь (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 микроконтроллер
с миллионами транзисторов это работает...

Чип стоит кстати пол доллара (в несколько раз меньше тупого потенциометра!).
Так что техническое решение абсолютно к тому же бюджетное.
Цифровая эра всё таки удивительная штука!..

Profile

febb: (Default)
febb

March 2022

S M T W T F S
  1 2 345
6 7 89 101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 12th, 2026 05:17 am
Powered by Dreamwidth Studios