Köszönöm, ezzel fogok bírkózni!
paja
fesz, ellenállás mérés -> AVR
Feszültség kijelzése
Hali!
Lehet senkit sem érdekel, de számomra nem volt világos a sok példából, hogy hogy is kell megépíteni egy fesz.mérőt.
Az ADC tized pontosságú, azt mérem műszerrel amit az AVR-is mutat az LCD-n.
Nehezen megszültem, s most kirakom ide. Bár biztosan lehet egyszerűbben/másképpen, de ez működik a demo panelomon.
' Mérési tartomány: 00.0V - 55.1V(képesség, én csak 25V-ig próbáltam)
' Feszültség osztó :22k/2.2k
' Mért fesz:(Pl.: )19V=(W)353; 24.6V=(W)456;
' PC5-re jutó fesz. 19V esetén=1.72V (nekem 19V-24.6Vközött van szükségem a mérésre)
' W= WORD változó
' Uref=5V;100nF kondival; bemenet 5.1V-os zenerrel védve,
' 1024=5V ;1024/5V= 204.8; (Pl.:19V)353/204.8 =1.72V;
' 19V/1.72V= 11.04
' W/204.8= U osztó;
' U osztó*11.04=LCD kiirja a feszt 0.00 alakban.
' ---------------------------------------------------------------------------
'$sim
$regfile = "m88def.dat" ' Atmega 88 PU 20
Config Adc = Single , Prescaler = Auto
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6
Config Lcdpin = Pin , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.7
Config Lcd = 16x2
Dim W As Word
Dim B As Single
Dim B1 As Single
Dim P As String * 4
Cls
Start Adc
Cursor Off Noblink
Do
W = Getadc(5) 'PC5/28-as láb
B = W / 204.8 ' W/204.8= Uosztóról lábra jutó fesz.
B1 = B * 11.04 ' osztón fesz *11.04
P = Fusing(b1 , "00.0") ' Kapott eredmény formázása
Home
Lcd "Fesz: " ; P ; " Volt" ' Kiírása
Loop
End 'end program
Lehet senkit sem érdekel, de számomra nem volt világos a sok példából, hogy hogy is kell megépíteni egy fesz.mérőt.
Az ADC tized pontosságú, azt mérem műszerrel amit az AVR-is mutat az LCD-n.
Nehezen megszültem, s most kirakom ide. Bár biztosan lehet egyszerűbben/másképpen, de ez működik a demo panelomon.
' Mérési tartomány: 00.0V - 55.1V(képesség, én csak 25V-ig próbáltam)
' Feszültség osztó :22k/2.2k
' Mért fesz:(Pl.: )19V=(W)353; 24.6V=(W)456;
' PC5-re jutó fesz. 19V esetén=1.72V (nekem 19V-24.6Vközött van szükségem a mérésre)
' W= WORD változó
' Uref=5V;100nF kondival; bemenet 5.1V-os zenerrel védve,
' 1024=5V ;1024/5V= 204.8; (Pl.:19V)353/204.8 =1.72V;
' 19V/1.72V= 11.04
' W/204.8= U osztó;
' U osztó*11.04=LCD kiirja a feszt 0.00 alakban.
' ---------------------------------------------------------------------------
'$sim
$regfile = "m88def.dat" ' Atmega 88 PU 20
Config Adc = Single , Prescaler = Auto
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6
Config Lcdpin = Pin , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.7
Config Lcd = 16x2
Dim W As Word
Dim B As Single
Dim B1 As Single
Dim P As String * 4
Cls
Start Adc
Cursor Off Noblink
Do
W = Getadc(5) 'PC5/28-as láb
B = W / 204.8 ' W/204.8= Uosztóról lábra jutó fesz.
B1 = B * 11.04 ' osztón fesz *11.04
P = Fusing(b1 , "00.0") ' Kapott eredmény formázása
Home
Lcd "Fesz: " ; P ; " Volt" ' Kiírása
Loop
End 'end program
Feszültség kijelzése
Nem vagyok gyakorlott fórumozó, így az előbb elfelejtettem írni, hogy köszönöm a segítséget, nem tudtam volna "megszülni"a megoldást nélküle!
Viszont remélem, tudtam valakinek segíteni!
További jó munkát/szórakozást kívánok: Paja
Viszont remélem, tudtam valakinek segíteni!
További jó munkát/szórakozást kívánok: Paja
Jobb későn írni mint soha.
Szóval én is ilyent csinálgatok és én olyant találtam ahol 20* leolvassák összeadják. Gondolom a pontosság miatt. Még nem teszteltem hogy pontosabb e valóban. Ők erre esküszek.
Szóval én is ilyent csinálgatok és én olyant találtam ahol 20* leolvassák összeadják. Gondolom a pontosság miatt. Még nem teszteltem hogy pontosabb e valóban. Ők erre esküszek.
Kód: Egész kijelölése
Config Adc = Single , Prescaler = Auto , Reference = Aref
Vd(1)=0
For B = 1 To 20
Start Adc
Channel = 0
V = Getadc(channel)
Stop Adc
Vd(1) = Vd(1) + V
Next B