Voilà, une version qui marche, mais je veux encore essayer de simplifier le calcul de l'offset
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
-- Lit le convertisseur ADC connecté sur le transformateur de courant
|
-- Lit le convertisseur ADC connecté sur le transformateur de courant
|
||||||
-- pour mesurer le courant électrique de l'installation PV
|
-- pour mesurer le courant électrique de l'installation PV
|
||||||
print("\n 0_get_data.lua zf190916.1534 \n")
|
print("\n 0_get_data.lua zf190916.1904 \n")
|
||||||
|
|
||||||
-- Astuce de mesure:
|
-- Astuce de mesure:
|
||||||
-- au lieu de découper la sinusoïde en 100 parties, c'est à dire toutes
|
-- au lieu de découper la sinusoïde en 100 parties, c'est à dire toutes
|
||||||
@@ -13,7 +13,14 @@ print("\n 0_get_data.lua zf190916.1534 \n")
|
|||||||
-- quelque soit sa forme !
|
-- quelque soit sa forme !
|
||||||
-- On le somme sur 2.1 secondes avec une moyenne glissante sur 3 valeurs
|
-- On le somme sur 2.1 secondes avec une moyenne glissante sur 3 valeurs
|
||||||
|
|
||||||
zadc_min=1024 zadc_max=0 zadc_sum=0 znb_mes=0
|
zadc_offset=550
|
||||||
|
zpow_cal=401
|
||||||
|
zadc_cal=189
|
||||||
|
zadc_err=-5
|
||||||
|
|
||||||
|
zadc_min=zadc_offset zadc_max=zadc_offset
|
||||||
|
zadc_sum=0 zadc_min_sum=0 zadc_max_sum=0 znb_mes=0
|
||||||
|
zadc_rms1=0 zadc_rms2=0 zadc_rms3=0
|
||||||
|
|
||||||
if adc.force_init_mode(adc.INIT_ADC)
|
if adc.force_init_mode(adc.INIT_ADC)
|
||||||
then
|
then
|
||||||
@@ -31,55 +38,29 @@ tmr_calc_rms:alarm(2.1*1000, tmr.ALARM_AUTO, function()
|
|||||||
calc_rms()
|
calc_rms()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
--zadc_min1=500 zadc_min2=500 zadc_min3=500
|
|
||||||
--zadc_max1=500 zadc_max2=500 zadc_max3=500
|
|
||||||
|
|
||||||
zadc_min_sum=0 zadc_max_sum=0
|
|
||||||
|
|
||||||
function read_adc()
|
function read_adc()
|
||||||
zadc=adc.read(0)
|
zadc=adc.read(0)
|
||||||
|
|
||||||
if zadc<=zadc_min then zadc_min=zadc end
|
if zadc<=zadc_min then zadc_min=zadc end
|
||||||
if zadc>=zadc_max then zadc_max=zadc end
|
if zadc>=zadc_max then zadc_max=zadc end
|
||||||
|
|
||||||
-- zadc_min1=zadc_min2 zadc_min2=zadc_min3 zadc_min3=zadc_min
|
|
||||||
-- zadc_min=math.floor((zadc_min1+zadc_min2+zadc_min3)/3)
|
|
||||||
|
|
||||||
-- zadc_max1=zadc_max2 zadc_max2=zadc_max3 zadc_max3=zadc_max
|
|
||||||
-- zadc_max=math.floor((zadc_max1+zadc_max2+zadc_max3)/3)
|
|
||||||
|
|
||||||
zadc_min_sum=zadc_min_sum+zadc_min
|
zadc_min_sum=zadc_min_sum+zadc_min
|
||||||
zadc_max_sum=zadc_max_sum+zadc_max
|
zadc_max_sum=zadc_max_sum+zadc_max
|
||||||
|
zadc=zadc-zadc_offset if zadc<=0 then zadc=zadc*-1 end
|
||||||
|
|
||||||
|
|
||||||
zadc=zadc-zadc_offset
|
|
||||||
if zadc<=0 then zadc=zadc*-1 end
|
|
||||||
zadc_sum=zadc_sum+zadc znb_mes=znb_mes+1
|
zadc_sum=zadc_sum+zadc znb_mes=znb_mes+1
|
||||||
end
|
end
|
||||||
|
|
||||||
zadc_offset=550
|
|
||||||
zpow_cal=409
|
|
||||||
zadc_cal=192
|
|
||||||
zadc_err=-2
|
|
||||||
|
|
||||||
zadc_rms1=0 zadc_rms2=0 zadc_rms3=0
|
|
||||||
|
|
||||||
function calc_rms()
|
function calc_rms()
|
||||||
zadc_rms=math.floor(zadc_sum/znb_mes)+zadc_err
|
zadc_rms=math.floor(zadc_sum/znb_mes)+zadc_err
|
||||||
|
if zadc_rms<=0 then zadc_rms=0 end
|
||||||
|
zadc_rms1=zadc_rms2 zadc_rms2=zadc_rms3 zadc_rms3=zadc_rms
|
||||||
|
zadc_rms=math.floor((zadc_rms1+zadc_rms2+zadc_rms3)/3)
|
||||||
|
|
||||||
zadc_min=math.floor(zadc_min_sum/znb_mes)
|
zadc_min=math.floor(zadc_min_sum/znb_mes)
|
||||||
zadc_max=math.floor(zadc_max_sum/znb_mes)
|
zadc_max=math.floor(zadc_max_sum/znb_mes)
|
||||||
|
|
||||||
-- zadc_rms1=zadc_rms2 zadc_rms2=zadc_rms3 zadc_rms3=zadc_rms
|
|
||||||
-- zadc_rms=math.floor((zadc_rms1+zadc_rms2+zadc_rms3)/3)
|
|
||||||
|
|
||||||
-- if zadc_rms<=0 then zadc_rms=0 end
|
|
||||||
zadc_offset=math.floor((zadc_min+zadc_max)/2)
|
zadc_offset=math.floor((zadc_min+zadc_max)/2)
|
||||||
|
|
||||||
zpower=math.floor(zadc_rms*zpow_cal/zadc_cal)
|
zpower=math.floor(zadc_rms*zpow_cal/zadc_cal)
|
||||||
print(zadc_min,zadc_max,zadc_max-zadc_min,zadc_offset,zadc_rms,zpower.."W")
|
print(zadc_min,zadc_max,zadc_max-zadc_min,zadc_offset,zadc_rms,zpower.."W")
|
||||||
zadc_min=1024 zadc_max=0 zadc_sum=0 znb_mes=0
|
zadc_min=zadc_offset zadc_max=zadc_offset
|
||||||
zadc_min_sum=0 zadc_max_sum=0
|
zadc_sum=0 zadc_min_sum=0 zadc_max_sum=0 znb_mes=0
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user