Skip to content

mkdxdx/stm32f100_mgdet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Согласно техзаданию нужно получить срабатывание на канале B ОУ DA7 который работает в режиме компаратора с опорным напряжением 0.99В.

К неинвертирующему входу подключён канал А, который работает в режиме неинвертирующего усилителя, коеффициент которого нужно выставить так, чтобы на выходе получить напряжение равное или выше опорному канала B.

От пьезоэлемента через выпрямляющую схему и делитель (/2) сигнал поступает на АЦП микроконтроллера, который исходя из замера должен вычислить и выставить сопротивление верхней части обратной связи ОУ так, чтобы получить нужный коеффициент усиления канала А.

Верхняя часть (вых А -> инв. вход А) обратной связи состоит из резистора на 51КОм и цифрового потенциометра, сопротивление которого нужно узнать и которое варьируется от 0 до 100КОм с шагом в 780Ом на разряд (127 шагов возможно)

Целевой коефициент после замера на АЦП вычисляется по формуле: k = Vref/Vin, где Vref - опорное напряжение компаратора (0.99В), Vin - напряжение, замеренное на канале АЦП

Так как коефициент усиления на неинвертирующем усилителя вычисляется по формуле: k = 1+(R2/R1) и R1 у нас известно (1КОм), необходимо вычислить значение R2 исходя из целевого коефициента.

R2 = (k - 1) * R1

Получив R2 как значение верхней части усилителя, я получил общее значение сопротивления, которое состоит из параллельных резисторов один из которых известен (51КОм) и второй является потенциометром, сопротивление которого нужно задать чтобы получить нужный коеффициент усиления.

Так как формула сопротивления параллельных резисторов (одна из) выглядит так:

Rп = (R2*Rx)/(R2+Rx)

Где Rx - неизвестное сопротивление потенциометра, Rп - известное целевое сопротивление, R2 - известное значение (51КОм) , можно вывести формулу сопротивления для потенциометра:

Rx = (R2*Rп)/(R2-Rп)

Полученное значение Rx необходимо записать в цифровой потенциометр для установки коеффициента усиления. Цифровой потенциометр работает с шагом в ~780Ом, необходимо вычислить число шагов для записи в его регистр:

Steps = Rx/StepV

где Steps - нужное количество шагов, Rx полученное сопротивление, StepV - значение шага на потенциометре.

К примеру, на АЦП поступил сигнал напряжением в 0.1V. Целевой коеффициент будет равен:

k = 0.99/0.1 = 9,9

Получим целевое сопротивление верхней части обратной связи:

R2 = (9,9 - 1) * 1000 = 8900 Ом

Получим значение потенциометра исходя из цепи параллельных резисторов:

Rx = (51000 * 8900)/(51000 - 8900) = 10781 Ом

Получим значение регистра потенциометра:

Steps = 10781/780 = 14

Проверим результат:

Значение потенциометра при 14 шагах станет: 14780 = 10920 Ом Верхняя часть обратной связи усилителя будет иметь сопротивление: (5100010920)/(51000+10920) = 8994,2 Ом Коефициент усиления канала А будет равен: 1 + (8994,2/1000) = 9,9942 Выходное напряжение канала А будет равно: 9,9942 * 0,1 = 0,99942 Компаратор канала В подаст сигнал на МК и зажгётся зелёный светодиод вместе с красным (штатный режим)

Releases

No releases published

Packages

No packages published

Languages