ATmega88 schema
zdravim mam na vas prosbu jestli by jste se mi mohli podivat na tohle schema jestli sem nekde neudelal chybu a jestli to bude funkcni
to je HW cast
u softwarove casti bych vas chtel poprosit aby ste mne popostrcili jenom kde zacit popripade jak problematiku resit ( V jazyku C )
ukol je nasledujici :
mam 3 hraci kostky po stisku tlacitka (PD7) se zacnou na 3 kostkach menit cisla po opetovnem zmacknuti tlacitka se prestanou menit a pokud bude na 2 nebo 3 kostkach stejne cislo tak zazni melodie z reproduktoru. cisla na kostkach musi byt tak jak to je u normalni kostky napr na clovece nezlob se dekuju za kazdy tip a radu
edit : tak jedna rada byla ohledne toho nahodneho generovani tech cisel ze pry processor ma uz v sobe takovou funkci jenom nevim v jake knihovne je
edit2: napajeno to bude 9V baterii
- u té 78L05 bych dal paralelně k těm elytům (či tantalům) ještě keramické kondenzátory a chybí tam propojení těch kondenzátorů na GND.
- LED, které mají svítit ve dvojici bych zapojil sériově (pokud to úbytek napětí na nich dovolí) a nebo sice paralelně, ale se samostatným odporem pro každou z nich, jinak hrozí že bude svítit hlavně ta s nižším Vf v rámci rozptylu parametrů.
- LED by bylo asi vhodnější zapojit na +5V místo na GND a spínat je úrovní L na portu.
- u prostřední sady LED máš ve schématu zbytečný propojovací bod (že by ten, co chybí u ELYTů?).
- Udej typ mikrokontroléru
Teď jsem si uvědomil, že je typ v nadpisu (ATmega88)
- Jaká bude frekvence krystalu? Nad 900kHz k němu musíš přidat kondenzátory.
- Jinak úroveň "H" na I/O pinu je přes interní (pomoci SW ovládaný) pull-up resistor s hodnotou v rozmezí 20-50kOHM, takže ty LED v tvém zapojení asi moc svítit nebudou.
frekvence bude 8MHz
ad 1) diky zapomel sem udelat propojeni
ad 2) bylo mi receno ze to takhle bude fungovat akorat nektere budou svitit vic a nebo min je to hlavne kvuli uspory mista ( tolik odporu do nepajiveho pole proste nenarvu)
ad 3) predelam
ad 4) opraveno
ad 5) presne to je atmel 1145 ATmega88-20PU
dekuju
Pokud použiješ červené LED, tak při napětí +5V můžeš dát klidně ty vždy ty 2 LED do série. Navíc ušetříš proud (hlavně při stavu 6-6-6). Vzhledem k 100mA stabilizátoru 78L05 použij LED pro proud 2mA, protože při stavu 6-6-6 by i při sériovém zapojení LED a proudu pro LED 10mA teklo jen přes LED celkem 90mA a to už bude ta 78L05 i dost hřát.
Když tak sem dej upravené schema, třeba budou i další připomínky (možná i od někoho jiného) a zkus do toho schematu napsat alespoň orientačně hodnoty/typy součástek.
A ještě se v datasheetu ATmega na píše, že AVcc by měl být v případě nepoužívání převodníku připojen na Vcc.
zitra to sem hodim predelane jinak odpory jsou 1k
Invertoval bych Ledky (tj. zapojil přes odpor anodou na +5V a katodou na fous Atmelu - a samozřejmě v programu invertovat i to co jde na porty). Mezi bázi tranzistoru a fous Atmelu bych dal odpor ~10k. Na krystal kondíky potřeba nejsou (mám odzkoušeno, 12MHz chodí spolehlivě i bez kondíků).
1. Chyba ti odpor na baze tranzistoru. = VELMI HRUBA chyba.
2. LED by som radil seriovo, ak to nie su biele LED (biele maju Uf ca. 2.7V to by neslo). Ak to su biele tak paralelne ale odpor na kazdu.
3. chybaju ti kondenzatory u krystalu. Pri layoute davat pozor krystal a tie kondenzatory a uC musia byt blizko seba s kratkymi vedeniami. P.S. u modernych uC nepotrebujes vobec krystal (maju interny oscilator), ak nerobis hodiny alebo neico co potrebuje dlhodobo
velmi stabilny kmitocet tak staci interny oscilator.
4. kondenzatory u 7805 nemas spojene so zemou. To je blbo. BTW. ako uz bolo pisane 100nF KERAMIKY blizko vstupu a vystupu su velmi dolezite inac sa to rozkmita.
Ad jak to naprogramovat. LOL to je dobre ides robit uC a nemas ani sajnu. Si optimista alebo politik? Staihanes si datasheet a citas si. asi tak 200stran.
BTW: uC nema zadnou funkci na nahodne cisla v sebe, pouzijes nejaky rychlo beziaci timer a pri stlaceni tlacitka precitas hodnotu timeru a mas nahodne cislo.
P.S: a dufam ze ti je jasne ze tlacitko musis debouncovat (staci softwarovy filter ca. 10ms, niektore uC maju na to HW podporu treba to pre dany vstup zapnut)
A este jedna vec u uC sa zvycajne vykonovejsie veci (ako napr. to budenie LED) robi zvycajne smerom na zem u uC ptz zvycajne ma vystup v stave ked uzemnuje mensi ubytok napatia ako ked pushuje napatie. A navyse zvykne byt defaultne na tych pinoch pullup tak aj preto. Je to ale temer jedno, ale ak mas volbu tak by som to robil tak.
Este co sa tyka toho repro: ak pouzijes piezzo menic tak ten tranzistor vobec nepotrebujes ani diodu, zapojis to rovno na pin. Dal by som tam preistotu do serie 100ohm odpor alebo 220 ohm apod.
Ak pouzijes normalny 4ohm repro tak musis dat do serie odpor napr. 100ohm inac odpalis tranzistor aj repro ak tam nahodou nadrbes 1 na vystup (co je po resete default lebo pull-up), lebo 5V/4ohm je 1,25A. Navyse ti to odrthne ucho ak by si tam nadrbal napr. 1kHz a mal tam 6W (5V*1,25A)vykon a ucho pri tom :D
Este Ad napajanie: 9V baterka ma malu kapacitu a tie led (ratam ze tam chces 5mA na kazdu) ti ju vybiju za minutu. A este tam polovicu energie plytvas na tom 78L05.
ATMega niektore modely maju povolene Ucc od 2,7V - 6V ci kolko, viz datasheet, takze ti staci pouzit 4nabijacie tuzkove baterky (dokopy 5V-6V) a nepotrebujes vobec stabilizator (=mensie straty). A tuzkove nabijacie dnes maju hodne velku kapacitu (>2000mAh) a po celu dobu vybijania relativne stabilne napatie okolo 1,25-1,3V co je dobre aby tie LED mali relativne stabilny jas pocas celej doby vybijania. Jak si nastavis jas LED je tvoj problem, mozes pouzit jednoduchy prudovy zdroj s tranzistormi pre kazdu tu dvojicu LED, alebo si nastavis odpory tak aby rozdiel jasov 1LED vs. 2LED v serii bol minimalny.
P.S. Ak pouzijes specialnu verziu atmega88V, ta funguje uz od 1,8V az 5,5V, na to ti stacia 2 tuzkove baterky (2,55V pocas vybijania az 2,8V pri uplnom nabiti). Potom aj LED davas len paralelne a pre kazdu osobitne odpor, ca. 220ohm (to bude 2-3mA na LED).
posledny: A na takuto blbost ti staci ATTiny, nepotrebujes ATmega (naco ti je A/D prevodnik, UART, SPI, 3timery, a janeviem co je este v mega)
k tomu vsemu co si napsal tak vetsinu veci jako je typ toho ATmega88 a nutnost napajeni 9V takovych pozadavku bylo vice jak nekdo zminoval vys dnes sem udelal jednoduchy program na odzkouseni jestli mam vse dobre zapojene a ono to fungovalo ( s mensima upravama ale piny sem nemenil) pro to tlacitko pouziju delay knihovnu a nastavim 10ms
tedkom se pokusim dat dohromady tu SW cast mam par tipu vyzkousim popripade se sem zase prijdu poradim zatim vam dekuju moc
A nevadi ti ze cez bazu tranzistoru ti tece minimalne 50mA ak tam nastavis log.1? Ten pin to dlho nevydrzi. Baterka uz vobec ne.
(proste tak jak to je je to uplne debilne, ja to volam ze cinske :) Na hlavu. 2/3 energie idu do luftu.
to je jedna z tech uprav dal sem tam odpor on tam zapojeny byl jenom v tom schematu sem ho zapomel
Daj tam preistotu aj odpor seriovo s repro. Je to piezzo menic alebo normalny repro?
normalni repro s vinutim civky proto tam nemam ten ochrany kolektorovy R
A jaku ma impedanciu? Ked 4 alebo 8ohm tak odpor tam budes muset dat do serie s nim (inac odpalis ten 78L05 stabilizator a mozno aj tranzistor zavisi jaky si pouzil.
no to mi bylo receno od ucitele ze ten reproduktor ma dostatecnou impedanci aby to omezilo proud a neshorelo momentalne to nemam u sebe tak ti nepovim co to je presne zac
To je jak komentar od cinana v zdrojakoch ze " //Mr. Chung said here must be 1!" Zazil som
Ok ser na to ked to je pre ucitela. Ked robis nieco seriozne tak si vzdy veci precitas na danej veci, alebo zmeras alebo pozres v datasheete, a preratas (max. prudy a pozadovany vykon apod.) BTW. u veci na baterku sa spravidla na pipanie pouziva piezzo menic a ne reproduktor. Dovod je prave impedancia a nasledne zbytocne straty pri impednacnej neprisposobenosti, pripadnom zosilovaci, apod.
ona to je "rocnikova prace" ne tak uplne spis 1/4 rocni prace takze to je tak na odzkouseni ze funguje a ze sem se neco za ten rok naucil v tom programovani
Inac normalny repro s impedanciou >32ohm som este nevidel a aj 32ohm je vela (5/32=0,156A)