АЦП
|
|
tolyan249 |
Дата: Ср, 08.01.2025, 08:52 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
203
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Использую контроллер PIC18F4553 ,проблема с ацп(12 бит) ,меряет напряжение всегда разное , измеряю раз в секунду и всегда ,сотые доли разные (5.12, 5.06 ,4.98 5,25) меряю с питание микросхемы пока. Хотя тестер стоит в параллель на нём показывает стабильно ровно 5.00. Так же скачет и показания тока ,на тестере стоит 3.50а ,а у меня скачет(3.48, 3.65 , 3.45, 3.70,3.36) Cделал усреднение результата не помогло.
value1=0 tk=0 tk1=0
For i=0 To 199 AD_result1 = ADIn 1 value1=AD_result1*1.2265 tk1=tk1+value1 DelayUS 5 Next
tk=tk1/200
Не понятно. Может кто чего объяснит по этому поводу.?
спасибо.
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Ср, 08.01.2025, 09:25
|
|
|
|
xvovanx |
Дата: Ср, 08.01.2025, 19:33 | Сообщение # 2 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
336
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Хорошо бы видеть программу с вашими настройки АЦП. В вашем коде есть данная строка задержки для того, чтоб внутренний конденсатор АЦП успевал разряжаться перед каждым замером?
|
|
|
|
tolyan249 |
Дата: Чт, 09.01.2025, 13:43 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
203
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Declare SHOW_SYSTEM_VARIABLES = OFF Declare FSR_CONTEXT_SAVE = OFF Declare Reminders = OFF Declare Warnings = OFF Declare Optimiser_Level 0
Device = 18F4553 Xtal = 20
Declare LCD_Type ALPHA Declare LCD_DTPin PORTB.3 Declare LCD_ENPin PORTB.3 Declare LCD_RSPin PORTB.2 Declare LCD_Interface 4 Declare LCD_CommandUs 2000 Declare LCD_DataUs 50 Declare LCD_Lines 2
Declare Bootloader = OFF
ADCON0= %00000011 ADCON1 = %10001110 ' Make PORTA.0 analogue %10001110 ADCON2 = %10000000 ' %10000000
CMCON = 7
Declare Adin_Res 12 Declare Adin_Tad FRC Declare Adin_Stime 50
TRISA=%00100011 TRISB=$00000000 TRISC=$00000000 TRISD=$00000000
Dim TT As Byte
Dim AD_result As Word Dim AD_result1 As Word Dim value As Float Dim value1 As Float Dim tk As Float Dim volts As Float Dim volts1 As Float Dim tk1 As Float
main: GoSub tok
GoSub naprezenie
Print At 1,1,Dec2 volts,"v Print At 2,1,Dec2 tk,"a "
delayms 1000 Goto main
naprezenie:
volts1=0 For i=0 To 149 AD_result = ADIn 0 value=AD_result *12.28 volts=value/1000 volts1=volts1+volts Next; volts=volts1/150
Return
tok: tk1=0 tk=0
For i=0 To 149 AD_result1 = ADIn 1 value1=AD_result1*1.28 tk1=tk1+value1 DelayUS 1 Next
tk1=tk1/150
tk=tk1*0.1 Return
end
если знаешь,помоги.
Сообщение отредактировал
tolyan249 - Чт, 09.01.2025, 13:54
|
|
|
|
tolyan249 |
Дата: Чт, 09.01.2025, 14:14 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
203
Замечания:
±
На сайте с 11.10.2007
Статус:
Offline
|
Спасибо за помощь поставил то что выделено красным и появилась стабильность измерений ,у меня включено было Declare Adin_Tad FRC .
если знаешь,помоги.
|
|
|
|