Útmérő

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

Útmérő

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

Sziasztok!
Egy kis elméleti tanácsra lenne szükségem :)
Egy kilóméteróra / útszámlálót kellene építenem, egy kocsira.. A kardánra lenne két fémérzékelő, egymással szembe. Azért kettő, mert:
1.: Tudnom kell, ha tolat,
2.: Nagyon pontosnak kell lennie, szinte centiméterre.

Előző számolások, mérések alapján, a kardánról 17imp jön le 10m-en, de mivel kettő lesz, így ez duplázódik 34imp / 10mre.
Ha mondjuk 150km/h val megyek, az már elég sok impulzus másodpercenként.(most nem tudom kiszámolni, hogy mennyi:) ) . Közben átlagsebességet kellene számolnia,megtett utat, stb... Amit LCD-re kellene kiirnia. ÉS, 3digites 7segmenses kijelzőt kéne még hajtania multiban i2c-n keresztül...(ez lenne az aktuális sebesség)
Szerintetetek képes erre egy avr. vagy felejtős?!
Tisztelettel!
Geht nicht, Gibt's nicht!
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Én számoltam neked:
1000m = 3400impulzus , 150Km*3400=510000impulzus/óra (max)
510000/60=8500impulzus/perc
8500/60=142impulzus/másodperc
Szerintem ha az impulzus számlálást megszakításba teszed, vígan elbánik vele.
Bármelyik Atmega.
:wink:
Közben még a pontos időt, motor hőmérsékletet, rész futam időt, legnagyobb elért sebességet, meg még amit akarsz mind kiírja neked!
:idea: :lol:

Inkább, ami érdekes lehet. Hogyan oldod meg a forgás irány megállapítását? :?:
A hozzászólást 1 alkalommal szerkesztették, utoljára kapu48 2009. július 20. hétfő, 13:15-kor.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Vígan elmegy az AVR ekkora megszakítással....
ASM alapon 20 MHz quartzzal ~150-160 kHz-s jelet megfogsz. Bascom alatt - optimalizálás nélkül - olyan 75-90 kHz a max....
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

kapu48 írta:Én számoltam neked:
1000m = 3400impulzus , 150Km*3400=510000impulzus/óra (max)
510000/60=8500impulzus/perc
8500/60=141.6666impulzus/másodperc
Szerintem ha az impulzus számlálást megszakításba teszed, vígan elbánik vele.
Bármelyik Atmega.
:wink:
Közben még a pontos időt, motor hőmérsékletet, rész futam időt, legnagyobb elért sebességet, meg még amit akarsz mind kiírja neked!
:idea: :lol:

Inkább, ami érdekes lehet. Hogyan oldod meg a forgás irány megállapítását? :?:
Hi!
Köszi Kapu, erre késő este már képtelen voltam :) Atmeg 32, esetleg Atmega 64 lesz az áldozat, 16Mhz-n fog ketyegni.
Szerinted ezt bármelyik pin le tudja számolni, vagy inkább használjak valami célbemenetet(mondjuk Timer0-ra gondoltam)
Igen, lesz RTC is, ds1307 van a fiókba :) Hőmérés :)
A forgás irány megállapításának elvét az encoderek működéséből kívántam koppintani :D
Geht nicht, Gibt's nicht!
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

Robert írta:Vígan elmegy az AVR ekkora megszakítással....
ASM alapon 20 MHz quartzzal ~150-160 kHz-s jelet megfogsz. Bascom alatt - optimalizálás nélkül - olyan 75-90 kHz a max....
Ez biztosan elég lesz akkor :) Bascomban készül természetesen a program :) A kérdés még számomra, hogy nehogy elvesszen a program miatt egyetlen impulzus sem. Gondolok arra, ha mondjuk cls jön lcd-re (ami elég sok ciklusidőt elfogyaszt,), akkor se vesszenek el impulzusélek, mivel akkor nem vagyok pontos.. Vélemény?
A másik pedig a multiplex hajtás, és az int. Ha sok impulzus jön be, és int-vel dolgozom, akkor a számok nem lesznek leolvashatóak, mivel nem marad ideje a számok kivillogtatására. Az sem mellékes, hogy a 7segmenses i2c buszon fog menni...
Geht nicht, Gibt's nicht!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Ha nem INTben kezeled az LCD-t akkor mindegy.
Az INTben csak változó csökkentés/növelés lehet, az kellően rövid...

Az I2C busz nem időérzékeny. hiszen az órajel együtt megy az adattal....
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

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

Az enkóder nem fogja kibírni az igénybevételt a kocsi aljára szerelve! (Por, víz, sár, hó, jég, rázkódás minden káros hatásnak ki lesz téve!) Szerintem ezt lesz a legnehezebb jól megoldani!
2db sima INT bemenet elég. Nevezzük INT1 és INT2-esnek őket.
Forgás iránymérést megpróbálom felvázolni. (Bár még nem tudtam rájönni, hogyan lehet ide rajzot felrakni?) Próbáld meg körben elképzelni, amit síkban rajzoltam.
Lényeg a jelek részben átfedjék egymást.

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

1: |  ----------           |    balra forgó sorrend: (jön INT1=1,INT2 = 0),(jön INT2=1,INT1=1)
2: |         -----------   |   jobbra forgó sorrend: (jön INT2 =1,INT1=0),(jön INT1=1,INT2=1)
Most már csak olyan jeladó kel, ami ezeket a jeleket üzembiztosan szolgáltatni tudják!
Mit szólsz kivitelezhető az ötletem? :idea: :?:
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

kapu48 írta:Az enkóder nem fogja kibírni az igénybevételt a kocsi aljára szerelve! (Por, víz, sár, hó, jég, rázkódás minden káros hatásnak ki lesz téve!) Szerintem ezt lesz a legnehezebb jól megoldani!
2db sima INT bemenet elég. Nevezzük INT1 és INT2-esnek őket.
Forgás iránymérést megpróbálom felvázolni. (Bár még nem tudtam rájönni, hogyan lehet ide rajzot felrakni?) Próbáld meg körben elképzelni, amit síkban rajzoltam.
Lényeg a jelek részben átfedjék egymást.

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

1: |  ----------           |    balra forgó sorrend: (jön INT1=1,INT2 = 0),(jön INT2=1,INT1=1)
2: |         -----------   |   jobbra forgó sorrend: (jön INT2 =1,INT1=0),(jön INT1=1,INT2=1)
Most már csak olyan jeladó kel, ami ezeket a jeleket üzembiztosan szolgáltatni tudják!
Mit szólsz kivitelezhető az ötletem? :idea: :?:
Maximálisan kivitelezhető, mivel én is erre gondoltam! :)
Én csak az elvet koppintom, nem lesz enkoder, helyette fémérzékelő van 2db, amiket ugy szerelek fel mechanikusan, mintha enkoder lenne. Természetesen a szenzorok bírnak mindent, szigeteltek!
Már csak a pin a kérdés... Melyik pint használjam erre a feladatra szerintetek? Tx-et, vagy sima INTx elég?
Geht nicht, Gibt's nicht!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Tx?????
Mi jön sorosport formátumban?


Az enkóderhez minimum 1 INT kell. Kössed be allak megfelelően. Ill ha szabad mind a 2 INT, akkor mehet arra is. Aztán eldölntöd (SW-ből!) hogy hogyan is akarod kezelni....
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

Robert írta:Tx?????
Mi jön sorosport formátumban?


Az enkóderhez minimum 1 INT kell. Kössed be allak megfelelően. Ill ha szabad mind a 2 INT, akkor mehet arra is. Aztán eldölntöd (SW-ből!) hogy hogyan is akarod kezelni....
T0, vagy T1, vagy T2-re gondoltam, semmi sorosport:)
akkor sima int pin kíváló lesz a feladatra? :) mega 32-őn a pD2, pD3, ha jól emlékszem, van még egy a B-porton is valahol:)
Van 2db INT szabadon, szóval azon lesz mind a 2 szenzor
Geht nicht, Gibt's nicht!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

A Tx (0/1/2) akkor jó, ha impulzusszámolsz....
2 időzítő beáldozásával megy.
Az egyik a bejövő impulzust számolja (Prescale=1 esetén a T1 65535-ig megy), míg a másik T0/T2 lehet időzítő (0,1...1 sec). Így amikor az időzítő leketyeg, akkor kiolvasod. DE: ekkor csak bejövő impulkzust tudsz, irányt nem! Ahhoz INT alapú számolás kell.
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

Robert írta:A Tx (0/1/2) akkor jó, ha impulzusszámolsz....
2 időzítő beáldozásával megy.
Az egyik a bejövő impulzust számolja (Prescale=1 esetén a T1 65535-ig megy), míg a másik T0/T2 lehet időzítő (0,1...1 sec). Így amikor az időzítő leketyeg, akkor kiolvasod. DE: ekkor csak bejövő impulkzust tudsz, irányt nem! Ahhoz INT alapú számolás kell.
Ez teljesen érthető. Maradok az int lábaknál, aztán (ahogy írtad) majd SW-ből eldöntöm, hogy mi lesz belöle!
köszi a helpet mindenkinek!
Geht nicht, Gibt's nicht!
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00

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

Megjöttek a fémérzékelők...
Kétvezetékest rendeltem, rögtön tesztelésnek láttam..
Ott tartok, hogy ha van elötte fém, akkor a 0.19V van a kimeneten, ha nincs, akkor 1,6V
Nem naggyon ismerem ezeket a szenzorokat, annyit tudok, hogy a kimenetüket terhelni, amit meg is tettem(LED-dióda, R180, stb..)
A problémám annyi, hogy nem tudtam 5V-os kimenetet, illetve 0V-osat generálni. Attól tartok, hogy az AVR-nek kevés ez a fesz a logikai 1 felvételéhez.
Ötlete valakinek?
Geht nicht, Gibt's nicht!
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

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

Lehet, hogy hülye ötlet, de mi lenne, ha egy AD bemenettel figyelnéd?
S egy változót billegetnél 1-be v. 0-ba a bemenő jel függvényében!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

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

Az a fénérzékelő nem OpenKollektoros?

Típust tudsz adni?
Válasz küldése