ADC konvertálás

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
geza01
DrótVégénSzéndarab
Hozzászólások: 18
Csatlakozott: 2013. augusztus 20. kedd, 13:21

Re: ADC konvertálás

Hozzászólás Szerző: geza01 »

Már meg van a megoldás!

dim a as byte
a=getadc(1,32)
a=adch

Tökéletesen működik!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: kapu48 »

Nem igazán értem!?
Ha jól tudom 10 bites az ADC regiszter.
Bites ábrázolással:

Kód: Egész kijelölése

Eredmény: 000000xx xxxxxxxx
+32:               00100000
ADCH=     000000xx  Eredmény???,
geza01
DrótVégénSzéndarab
Hozzászólások: 18
Csatlakozott: 2013. augusztus 20. kedd, 13:21

Re: ADC konvertálás

Hozzászólás Szerző: geza01 »

Akkor leírom részletesen:
Az ADC regiszter 16 bites, de csak tizet használ az ADC felbontása miatt, alaphelyzetben az eredmény jobbra van igazítva.
pl.:
Eredmény: 000000xx xxxxxxxx, ADCH=000000xx, ADCL=xxxxxxxx, ez ugye stimm.
Az ADMUX-ban van 1 bit, neve: ADLAR, ha ez 1, akkor az értékek balra vannak igazítva.
pl.:
Eredmény: xxxxxxxx xx000000, ADCH=xxxxxxxx, ADCL=xx000000, ugye ha 8 bit kell, akkor csak az ADCH kell, így nem kell shiftelni, osztani, ez a leggyorsabb megoldás a 8 bitre.
A GETADC(1,32) azt lelenti, hogy az ADMUX regiszterben az 1 a kiolvasni kívánt ADC száma, a 32 pedig paraméter az 5-ik bit 1-be állítása azaz ADLAR=1, binárisan: &b00100001.
Bízom benne, hogy érthető, ha mégsem, írj!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: kapu48 »

Köszi!

Mindig tanul az ember!

Ez eddig elkerülte a figyelmemet: „Az ADMUX-ban van 1 bit, neve: ADLAR, ha ez 1, akkor az értékek balra vannak igazítva.”
:o
Avatar
szasza7103
Biztosítékgyilkos
Hozzászólások: 53
Csatlakozott: 2012. október 10. szerda, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: szasza7103 »

Szép jó napot!

Az volna a kérdésem ,hogy ha szeretnék dc 12-15V mérni akkor elég egy ellenálást sorba kötni az adc lábbal amin esik a feszültség?
A kapott értékből meg átszámolom valahogy a nekem megfelelő értéket.

Autó akku feszültséget és generátor feszültséget szeretnék mérni a járművemben majd ez lcd-re ki irni.

Üdv!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ADC konvertálás

Hozzászólás Szerző: Robert »

Soros???? És akkor milyen feszültség lenne az AVR lábán?

Inkább:
1, Láb és GND közé: 5.1V Zener
2, Ellenállásosztó (10k/2k2)
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: csabeszq »

Róbert, ez akkumulátor.

Aksi (+) <=> 10k <= mérő => 2.2k <=> Aksi (-).

A megoldás ugye konstans 1,2mA-rel szívja az aksit lefelé, azaz ha hosszabb ideig nem használod a kocsit, előbb-utóbb nullára lemerül.
Az ellenállást cseréld inkább kondenzátorra.

Aksi (+) <=> 2.2 uF <= mérő => 10 uF <=> Aksi (-).
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: ADC konvertálás

Hozzászólás Szerző: Robert »

Ja, akku...
Felső ellenállás: 1Mohm, alsó 220k. Ezzel paralell: 100nF és 5V1-es zener.

Kondikkal osztást azt inkább váltóáramra. Szivárgó áramra nem építenék (feszültség-/hőfok-függő).
Avatar
szasza7103
Biztosítékgyilkos
Hozzászólások: 53
Csatlakozott: 2012. október 10. szerda, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: szasza7103 »

Köszönöm a válaszokat!

Küzdök vele. :)
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: winnerbt »

Sziasztok!
Megesz a fene... 7.7-es Bascom, Mega328P uC, WIN7/64 és XP32 alatt is fordítva:

Kód: Egész kijelölése

$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 40
$swstack = 40
$framesize = 40
$baud = 38400

Ddrb = &B00100111
Ddrc = &B00000000
Ddrd = &B1111_1110
Dim Temp_string As String * 10
Dim Temp_w1 As Word
Dim Temp_w2 As Word
Dim Temp_w3 As Word

Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.7 , Rs = Portd.6
Config Adc = Free , Prescaler = Auto , Reference = Avcc

Cls
Do
Temp_w1 = Getadc(0)
'Temp_w2 = Getadc(1)
'Temp_w3 = Getadc(2)

Temp_string = "000" + Str(temp_w1)
Temp_string = Right(temp_string , 4)
Locate 1 , 1 : Lcd Temp_string

Temp_w2 = Getadc(1)

Temp_string = "000" + Str(temp_w2)
Temp_string = Right(temp_string , 4)
Locate 1 , 6 : Lcd Temp_string

Temp_w3 = Getadc(2)

Temp_string = "000" + Str(temp_w3)
Temp_string = Right(temp_string , 4)
Locate 1 , 11 : Lcd Temp_string
Locate 2 , 1 : Lcd Temp_w1 ; " " ; Temp_w2 ; " " ; Temp_w3
Loop

End
A gondom: Ha az első 3db ADC olvasás benne van így, egymás után, akkor az utolsó ADC olvasás felülírja az összes ADC változót. Tehát Temp_w3 értéke lesz minden Temp_w változó. Ha beszúrogatom a kiírások közé, akkor természetesen jól működik és a Temp_w-ket sem szúrja el... Azon már nem is idegesítem magam, hogy az ADC csatornaszáma 1-el el van csúszva, tehát az ADC(1) a 0. csatornát olvassa pl.
Ha valaki lefordítaná és elküldené a hex-et próbaképp, hát ha mégis itt van valami nagy bug...
JAni
Avatar
Dani
DrótVégénSzéndarab
Hozzászólások: 18
Csatlakozott: 2006. április 6. csütörtök, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: Dani »

Szia
privátban küldtem
Üdv Dani
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: kapu48 »

Kód: Egész kijelölése

...
Config Adc = Free , Prescaler = Auto , Reference = Avcc

'Now give power to the chip
Start Adc    '<<<?
...
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: winnerbt »

Már ki is próbáltam, sajnos nem nyert :(
Most úgy fut a program, hogy Single-re van állítva az ADC. Persze így is cseréli a csatornákat, de arra könnyű
rájönni. Belenéztem a DAT file-ba, összehasonlítottam régebbivel (Compare It király!), van valami katymasz, az újabba
találtam is elírást, de az nem lényeges most.
Azért köszi, hogy ránéztél!
JAni
geza01
DrótVégénSzéndarab
Hozzászólások: 18
Csatlakozott: 2013. augusztus 20. kedd, 13:21

Re: ADC konvertálás

Hozzászólás Szerző: geza01 »

Jani, másik processzorral próbáltad már, más típusúval.
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: ADC konvertálás

Hozzászólás Szerző: winnerbt »

Szia!
Nem, csak másik megegyező modullal (2-vel). Fejlesztés alatt vagyok, tehát madzagolva van, érdekességképp csak
tesztelni akartam egy rutint, akkor esett be a vacakság. Szerencsére a készülékben nem lesz ADC (remélem),
de majd kivesézem én ezt a dolgot. Vagy most már tényleg véglegesen letörlöm az egész fordítót és áttérek
másra. Amennyi hibát én már találtam benne...a szívás idők alatt megtanulhattam volna bármilyen fordítót...
Bár ahogy látom, semmi sem bug mentes :(
A DAT fileban szerintem valami el vagyon vésve, de majd ha lesz idő/kedv.
JAni
Válasz küldése