 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
tender Član

Pridružen-a: Čet 13 Dec 2007 15:01 Prispevkov: 13 Aktiv.: 0.06 Kraj: Slovenj Gradec
|
Objavljeno: Tor Dec 25, 2007 12:15 am Naslov sporočila: LED svetlika s programi |
|
|
Lp.
Rabil bi vašo pomoč.
Namreč rad bi naredil LED svetilko, ki ima 12 LED-diod ( visokosvetlečih ).
Te ledice bi rad prežigal z neko tipko. Tipko bi vezal na AVR mikroprocesor ( ATTiny12 ) na maso. In ko bi tipko pritisnil prvič bi se prižgale notranje 4 ledice. Ko bi tipko pritisnil drugič bi se prižgale ostale ledice. Ko bi tipko pritsnil tretjič bi začele vse ledice vtripati in seveda ko bi pritisnil četrtič bi se vse ledice ugasnale. Sem začetnik v programirjanju AVR-jev in mislim da bi bilo to narediti enemu mojstru mogoč mala malica.
Podoben projekt je napisan za PIC čip vendar jaz bi želel z AVR-ji saj bi se rad iz tega programa tudi kaj sam naučil.
Ko bo, če bo projekt narejen ga bom objavil.
Hvala vsem za odgovore in lepe praznike. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.70 Kraj: Mengeš
|
Objavljeno: Tor Dec 25, 2007 11:00 am Naslov sporočila: |
|
|
hm...sicer te razumem zakaj bi rad to sam delal, ampak a ne bi raje kaj bolj kompliciranega delal (npr da kaj šibajo, karkoli)? Tako naglavno svetilko z natančno enakimi funkcijami sem jaz kupil za 7 € - z malo smole za ta denar niti LEDic ne dobiš.
Mogoče je pa to vseeno dober projekt za učenje okoli mikrokontrolerjev  |
|
Nazaj na vrh |
|
 |
tender Član

Pridružen-a: Čet 13 Dec 2007 15:01 Prispevkov: 13 Aktiv.: 0.06 Kraj: Slovenj Gradec
|
Objavljeno: Tor Dec 25, 2007 12:41 pm Naslov sporočila: |
|
|
protoncek...knight rider sem že naredil z ATtiny2313 in nanj priklopil 14 LEDic. Naredil sem tudi stikalo s katerim zbiram dva programa za ta knight rider. Vendar potrebujem pomoč, da bi se naučil na tipko in s katero spreminjaš izhode. Ko bi se to naučil lahko narediš marsikaj. V glavi imam kako bi naj naredil...nek števec kateremu daš impulz in se mu poveča stanje ali celo z neko spremenljivko ob vsakem pritisku se mu poveča npr. X+1. Vendar jaz bi to potreboval program od mojstra, da bi mi to delovalo. Najlepša hvala. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.70 Kraj: Mengeš
|
Objavljeno: Tor Dec 25, 2007 12:45 pm Naslov sporočila: |
|
|
jasno. Gotovo se bo našel kdo, ki tole bere tudi med prazniki. Veliko sreče...(BTW...jaz še zbiram pogum da bi začel s kontrolerji ) |
|
Nazaj na vrh |
|
 |
tender Član

Pridružen-a: Čet 13 Dec 2007 15:01 Prispevkov: 13 Aktiv.: 0.06 Kraj: Slovenj Gradec
|
Objavljeno: Tor Dec 25, 2007 1:28 pm Naslov sporočila: |
|
|
jaz sem začel pred kakšnim mesecem in mi ni žal...vendar potrebuješ nekoga, ki ti razloži in potem delaš projekte in s tem otrjuješ znanje in se učiš novih stvari. Če boš delo z AVRji si naredi STK200 programator ( 5 € max. ) na LPT port. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.70 Kraj: Mengeš
|
Objavljeno: Tor Dec 25, 2007 1:34 pm Naslov sporočila: |
|
|
saj to med drugim še ne vem, s katerimi bi začel - je kar veliko tega. Imam revijo Elektor pa se bom mogoče pa podlagi tega odločil, tako da lahko še kakšen projekt od tam realiziram... |
|
Nazaj na vrh |
|
 |
tender Član

Pridružen-a: Čet 13 Dec 2007 15:01 Prispevkov: 13 Aktiv.: 0.06 Kraj: Slovenj Gradec
|
Objavljeno: Tor Dec 25, 2007 1:43 pm Naslov sporočila: |
|
|
res je veliko ampak AVR-ji niso toliko dragi in veliko lahko z njimi narediš  |
|
Nazaj na vrh |
|
 |
rplink3r Član


Pridružen-a: Tor 06 Feb 2007 20:02 Prispevkov: 507 Aktiv.: 2.26 Kraj: Levec
|
Objavljeno: Tor Dec 25, 2007 1:54 pm Naslov sporočila: |
|
|
Attiny12 nima rama, zato je bolje da vzameš kakšnega drugega, sicer pa če so že omenjeni programatorji -
za cca. 20eur narediš tole:
http://www.obdev.at/products/avrusb/avrdoper.html
Zadeva je vredu, kompatibilna z večino softwera in tudi na prenosnikih brez LPT in serijskega bo delal , zadeva ima tudi HVSP, kar pomeni da lahko še reset pin uporabiš kot I/O pin, edini problem je, da prej rabiš recimo STK200, da lahka sprogramiraš atmego8 . _________________ "The statement below is false."
"The statement above is true." |
|
Nazaj na vrh |
|
 |
tender Član

Pridružen-a: Čet 13 Dec 2007 15:01 Prispevkov: 13 Aktiv.: 0.06 Kraj: Slovenj Gradec
|
Objavljeno: Tor Dec 25, 2007 4:59 pm Naslov sporočila: |
|
|
no ni važno bom vzel drugi AVR. Sam da bodelal ta program.
ATtiny12 sem pa vzel zato ker ima 8 pinov, da je čim manjši nism pa vedel, da nebo šlo tega. |
|
Nazaj na vrh |
|
 |
Domenius Član



Pridružen-a: Sre 30 Nov 2005 14:15 Prispevkov: 1188 Aktiv.: 5.01 Kraj: Medvode
|
Objavljeno: Tor Dec 25, 2007 5:09 pm Naslov sporočila: |
|
|
Za tiste lučke ne rabiš veliko rama, tako da lahko uporabiš registre za shranjevanje spremenljivk. _________________ It's electric! |
|
Nazaj na vrh |
|
 |
RGorazd Član


Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1715 Aktiv.: 7.23 Kraj: Ig
|
Objavljeno: Tor Dec 25, 2007 5:33 pm Naslov sporočila: |
|
|
V kakem okolju bi pa ti to programiral? CVAVR, Bascom, ASM ?! V Bascomu to rešiš z debounce funkcijo in parimi vrsticami kode. rabiš 1 vhod in 2 izhoda, ki ju ojačaš s tranzistorjem. Za zaporedno vezavo ledic boš moral dvigniti napetost, ali zaporedno vezati več akumulatorjev.
LP G _________________ .
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._| |
|
Nazaj na vrh |
|
 |
tender Član

Pridružen-a: Čet 13 Dec 2007 15:01 Prispevkov: 13 Aktiv.: 0.06 Kraj: Slovenj Gradec
|
Objavljeno: Tor Dec 25, 2007 6:00 pm Naslov sporočila: |
|
|
ups to sem pa pozabil napisati. Programiral bi v Bascomu. Za vezje ni panike mene koda veliko bolj muči.
Če je res par vrstic mi lahko napišeš to kodo, ti bom zelo hvaležen  |
|
Nazaj na vrh |
|
 |
mucek Član


 
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5536 Aktiv.: 24.04 Kraj: Domzale
|
Objavljeno: Tor Dec 25, 2007 10:18 pm Naslov sporočila: |
|
|
Naj ti bo, ker imam ravno bolj ali manj narejeno...
Je za lightshow - vkolikor bi želel le omejeno funkcionalnost, ki jo omenjaš, pač spremeniš "programe" po svoji želji. Hitrost utripanja (in vse z njo povezane spremenljivke in zanke) pa lahko tudi ukineš in s tem še bistveno poenostaviš zadevo. V tvojem primeru je dovolj le en interrupt, s katerim prestavljaš med programi, sestaviš pa si 4 programe: ko so vsi izhodi izklopljeni, ko je vklopljenih le nekaj ledic, ko so vklopljene vse ledice in utripanje.
Pivo ob priliki...
LP,
[edit] - spremenil program, da dela to, kar mora... 
Nazadnje urejal/a mucek Sre Dec 26, 2007 12:34 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
mucek Član


 
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5536 Aktiv.: 24.04 Kraj: Domzale
|
Objavljeno: Sre Dec 26, 2007 12:22 pm Naslov sporočila: |
|
|
No, sem spremenil še to...
Se pravi:
-Program 1 (ob vklopu): vse LED so izklopljene
-Program 2 (en pritisk na tipko): Vklopijo se prvi štirje pini (pc.0-pc.3)
-Program 3 (še en pritisk): Vklopi se cel register (pc.0-pc.7)
-Program 4 (še en pritisk): Utripanje (na 1s)
-Še en pritisk - skok v program 1 (LED ugasnjene)
Drug set programov (ki je v trenutni kodi deaktiviran) deluje podobno, a spreminja svetilnost;
-Program 1 (ob vklopu): vse LED so izklopljene
-Program 2 (en pritisk na tipko): LED svetijo z delno močjo
-Program 3 (še en pritisk): LED svetijo s polno močjo
-Program 4 (še en pritisk): Utripanje (na 1s)
-Še en pritisk - skok v program 1 (LED ugasnjene)
Koda: |
'========================================================================================================
'= LED Svetilka =
'= =
'= (C) Mucek; www.elektronik.si =
'= Program se lahko prosto uporablja, dokler se poleg navaja vir (www.elektronik.si) in avtorja (mucek) =
'= =
'= Program sem testiral na AT MEGA8515 na 8MHz (interni oscilator), za praktično uporabo bo bolje vzeti =
'= manjši kontroler. V primeru uporabe močnejših LED diod jih je potrebno vezati preko tranzistorja, =
'= saj kontroler zagotavlja le cca. 15mA toka po izhodu. Za razne skurjene primerke nisem odgovoren... =
'= =
'========================================================================================================
Config Portc = Output 'izhodi za LED je port C, nastavimo poljubno
Dim Program As Byte 'Številka izbranega programa
Enable Interrupts 'Omogočimo interrupte za tipko
Enable Int0 'Na Int0 imamo priklopljeno tipko
On Int0 Program 'Ob pritisku na tipko skočimo v podprogram "Program" za menjavo programa
'Začetne spremenljivke (na katere se postavi kontroler po vklopu)
Program = 1
'*******************************************************************************
'Glavna zanka
'Gledam vrednost spremenljivke "program" in glede na vrednost skočim v izbran podprogram za način svetenja
Main:
Do
If Program = 1 Then
Goto Program1
Elseif Program = 2 Then
Goto Program2
Elseif Program = 3 Then
Goto Program3
Elseif Program = 4 Then
Goto Program4
End If
Loop
'*******************************************************************************
'PROGRAMI ZA SPREMINJANJE SPREMENLJIVK PREKO INTERRUPTOV
Program: ' Zamenjam program
Incr Program ' Povečam spremenljivko program za 1
If Program = 5 Then ' Imam programe 1 - 4; če pridem do 5 se vrnem na 1
Program = 1
End If
Waitms 250 ' Delay, da ob daljšem pritisku na tipko ne preskoči več programov;
Return ' če se to vseeno dogaja, je potrebno dodati še več delaya
' (npr. wait 1)
'-------------------------------------------------------------------------------
'PROGRAM OSVETLITEV 1 (regulacija svetlosti s številom prižiganja LED diod)
'!!!!! Lahko uporabiš le en tip programa naenkrat, drugega izbriši !!!!!
' (program osvetlitev 1 ali program osvetlitev 2)
Program1: 'Vse LED ugasnjene
Portc = &B00000000
Goto Main
Program2: 'Prižgane prve 4 LED
Portc = &B11110000
Goto Main
Program3: 'Prižgane vse LED
Portc = &B11111111
Goto Main
Program4: 'Utripanje
Portc = &B11111111
Wait 1 'Za hitrejše utripanje zmanjšaj "Wait 1" na npr. dva ukaza "Waitms 250"
Portc = &B00000000 ' (max. vrednost Wait/waitms/waitus je 255, zato je treba za npr 500ms dati
Wait 1 ' 2 ukaza po 250 ms
Goto Main
'PROGRAM OSVETLITEV 2 (regulacija svetlosti s (kvazi, a razumljivo ;) ) PWM regulacijo)
'
'!!!!! Lahko uporabiš le en tip programa naenkrat, drugega izbriši !!!!!
' (program osvetlitev 1 ali program osvetlitev 2)
'(
Program1: 'Vse LED ugasnjene
Portc = &B00000000
Goto Main
Program2: 'Polovična svetilnost
Portc = &B11111111
Delay
Portc = &B00000000
Delay : Delay : Delay : Delay : Delay 'Z razmerjem "delay" ukazov pri prižganih in ugasnjenih LED nastavimo moč svetlobe
Goto Main
Program3: 'Polna svetilnost
Portc = &B11111111
Goto Main
Program4: 'Utripanje
Portc = &B11111111
Wait 1 'Za hitrejše utripanje zmanjšaj "Wait 1" na npr. dva ukaza "Waitms 250"
Portc = &B00000000 ' (max. vrednost Wait/waitms/waitus je 255, zato je treba za npr 500ms dati
Wait 1 ' 2 ukaza po 250 ms
Goto Main
')
|
Upam, da je koda dovolj razumljiva (sem se potrudil s komentarji ) - če pa ti kaj ni jasno pa kar vprašaj! Komentarji zaželjeni !
(razen tega - zakaj prižigati 4 izhode hkrati, če bi lahko prižigal le enega in nato krmilil preko tranzistorja več ledic hkrati )
LP, Grega |
|
Nazaj na vrh |
|
 |
tender Član

Pridružen-a: Čet 13 Dec 2007 15:01 Prispevkov: 13 Aktiv.: 0.06 Kraj: Slovenj Gradec
|
Objavljeno: Sre Dec 26, 2007 3:57 pm Naslov sporočila: |
|
|
uf najlepša ti hvala za odgovor pa kodo. Trenutno nimam časa ( prazniki pa to ) sem samo bežno preletel kodo. Bom sporočil ko bom nadaljeval pa če se mi bo kje zataknilo...
Ko bo pa projekt končan ga bom pa objavil.
Lp |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 3 dni
Powered by phpBB © 2001, 2005 phpBB Group
|