Zapojení ATMega16

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
aldap
Příspěvky: 5
Registrován: 17 lis 2009, 01:00

Zapojení ATMega16

#1 Příspěvek od aldap »

Potřebuji poradit se zapojením mcu ATMega16 ve funkci otáčkoměru. Mám senzor, který generuje obdélníkový signál s kmitočtem daným počtem otáček(počet impůlzů na 1 otáčku je 1-11). Moje představa je taková, že pomocí čítače budu měřit frekvenci vstupního signálu po dobu cca 1 s, vydělím počtem impůlzů na 1 otáčku a vynásobím 60, abych dostal počet otáček za 1 minutu. Výsledek pak zobrazím na LCD displeji.
Nevím jaký použít čítač, předpokládám 16-ti bitový(pin 1 PB0 nebo 2 PB1?), dále jak určit frekvenci vnějšího oscilátoru. Maximální frekvence signálu od senzoru je 2 kHz.
Dále jak ošetřit reset? Stačí připojit přes rezistor 4k7 na +5V?
Díky za každou radu.

Uživatelský avatar
nekmil
Příspěvky: 780
Registrován: 06 bře 2005, 01:00
Bydliště: Havířov

#2 Příspěvek od nekmil »

Pokud 16-ti bitový tak PB1
Proč vnější oscilátor, vnitřní RC na 1MHz nestačí ? záleží jak přesně chceš měřit
Max. vstupní kmitočet je polovinou hodinového signálu
4k7 na reset může být

Uživatelský avatar
GeorgeB
Příspěvky: 1187
Registrován: 21 lis 2005, 01:00
Bydliště: Pardubice
Kontaktovat uživatele:

#3 Příspěvek od GeorgeB »

S maximální frekvencí nevidím problém. Spíš problém bude s minimální frekvencí a dynamikou měření. Počítat počet impulsů z čidla za vteřinu znamená obnova dat na displeji za 1vteřinu. Což je hodně málo. Radši bych na to šel přes měření periody(2kHz = 0,5ms...to je bez problému) a přepočítat na frekvenci/otáčky.
S resetem bych se vůbec nezabýval a využil pouze Power-on Reset.

Uživatelský avatar
aldap
Příspěvky: 5
Registrován: 17 lis 2009, 01:00

#4 Příspěvek od aldap »

Díky za odpovědi. S mcu moc zkušeností nemám, což je asi poznat z mých otázek.
Jinak bylo mi porazeno využít funkce Input capture k měření periody, což jestli jsem se správně díval by měl být PD6.
Při měření jsou otáčky víceméně konstantní, měření proběhne po výběru dělitele (počet impůlzů za 1 otáčku) po stisknutí tlačítka, následně se počet otáček přepočítaný na počet za 1 minutu zobrazí na displeji. Další měření se opět potvrdí tlačítkem.
K vnějšímu krystalu - jak jsem psal, nemám moc zkušeností a nevím, jak moc je vnitřní oscilátor přesný a závislý na napájení.

Uživatelský avatar
Galileo
Příspěvky: 77
Registrován: 09 lis 2009, 01:00

#5 Příspěvek od Galileo »

Timer 1 jako čítač se vstupem T1 (PB1) a timer 0 jako časovač kterým bych cyklicky četl hodnotu timeru 1 a nuloval ho.Prostě při přerušení timerem 0 přečíst hodnotu timeru 1 a vynulovat ho. Se získanou hodnotou už můžeš dělat co bude libo času na to budeš mít dost.

Uživatelský avatar
Ragnol
Příspěvky: 232
Registrován: 09 lis 2005, 01:00
Kontaktovat uživatele:

#6 Příspěvek od Ragnol »

trochu zbytečnej luxus použít dva časovače v situaci kdy stačí jeden.

Uživatelský avatar
Galileo
Příspěvky: 77
Registrován: 09 lis 2009, 01:00

#7 Příspěvek od Galileo »

:lol: Zajímavá myšlenka ono ho ubyde :lol: . Teda pokud pro ten timer nemá jinou činnost,já jsem kdysi otáčkoměr řešil stejným způsobem a chodí to dobře. :idea:

Uživatelský avatar
Ragnol
Příspěvky: 232
Registrován: 09 lis 2005, 01:00
Kontaktovat uživatele:

#8 Příspěvek od Ragnol »

Galileo píše::lol: Zajímavá myšlenka ono ho ubyde :lol: . Teda pokud pro ten timer nemá jinou činnost,já jsem kdysi otáčkoměr řešil stejným způsobem a chodí to dobře. :idea:

neříkám že by to nemělo fungovat .. sice máš pravdu že v tomhle případě je jedno jestli použiješ dva nebo jeden čítač. Ale jde i o to , že meření střídy je v tomhle případě i jednoduší a kor pro začátečníka kdy se musí poprat s jedním čítačem a nemusí synchronizovat a nastavovat dva ...

Uživatelský avatar
Galileo
Příspěvky: 77
Registrován: 09 lis 2009, 01:00

#9 Příspěvek od Galileo »

:D No tak v tom případě s tebou musím souhlasit :D

Odpovědět

Zpět na „Poradna“