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

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 1:15 pm Naslov sporočila: Rele |
|
|
Imam sledeč problem, po neki operaciji na pinu mikrokontrolerja je vezan upor, tranzistor, rele, zaščitna dioda. Problem se pojavi takrat ko hočem vklopiti rele.
Če je npr. v kodi takole:
do
debounce p3.5 , 0 , vklop , sub
debounce p3.5 , 0 , izklop , sub
loop
end
vklop:
p3.7 = 0
return
izklop:
p3.7 = 1
return
s tem želim vklaplati in izklapljati rele, ko ni rele še vključen v vezje deluje vse ok, ko pa ga priključim pa mi enostavo že vključen?? moral bi biti izključen, sem preveril tranzistor pa je vredu, za bazni upor imam 10K, če še zraven dodam led diodo za kontrolo se opazi, da dioda sveti zelo slabo morala bi pa biti izključena.
če pritisnem na tipko se led dioda prižge, rele pa po čudi ugasne. V obratnem primeru še led dioda bolj salabo sveti rele pa vključi??? v čem je problem.
Koda je po moje vredu napisana.
za napajanje sem uporabil lm317 ga nastavil na 5V.
Prosim za pomoč. |
|
Nazaj na vrh |
|
 |
jnz Član

Pridružen-a: Pon 23 Mar 2009 22:11 Prispevkov: 112 Aktiv.: 0.57 Kraj: Ljubljana
|
Objavljeno: Sob Sep 12, 2009 2:22 pm Naslov sporočila: |
|
|
Kakšen transistor imaš za vklop releja? NPN ali PNP? Kako imaš vezan rele in tranzistor? Najbolje bi bilo, da bi skiciral vezavo in jo pripel.
lp |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 2:52 pm Naslov sporočila: |
|
|
kot v večina gradiva trazistor imam bc547 (NPN) vezava je takole
iz pina na 10k na bazo, emitor na maso, kolektor pa na rele in zaščitno diodo
sem pred par dnevi naredil enako vezje le da sem uporabil pic mikrokrmilnik, tam mi vse lepo dela, pri atmelu pa se mi pojavljajo težave.
enako del vezja kot je tu http://www.ivica-novakovic.from.hr/IrOn-Off.htm . |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Sep 12, 2009 3:54 pm Naslov sporočila: |
|
|
Kateri Atmelov mikrokontroler pa uporabljaš?
Namreč zdi se mi, da je napaka v kodi. Če uporabljaš AVR, programiranega v Bascom-AVR, je problem 100% v nerodno napisani kodi.
Zato prosim prilepi celotno kodo tukaj, če se le da. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 3:58 pm Naslov sporočila: |
|
|
v predalčku sem še imel par čipov AT89C2051
saj je koda skorav v celoti kot sem jo že prej objavil le da še manjka ta del
cofig debounce = 25
to je pa vse |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Sep 12, 2009 4:21 pm Naslov sporočila: |
|
|
Če je to vse, potem je problem v kodi:
--------
Do
Debounce p3.5 , 0 , vklop , sub
Debounce p3.5 , 0 , izklop , sub
Loop
End
Vklop:
P3.7 = 0
Return
Izklop:
P3.7 = 1
Return
--------
Poglej glavno zanko. Imaš dva Debounce stavka enega za drugim, ki preglejujeta enak pin za enako stanje...
Kako naj program ve, ali si ti želel rele ugasniti ali prižgati, če je parameter in pogoj popolnoma neka, le subrutina je drugačna?
Imaš torej 50% možnosti, da bo program deloval v 50% pravilno. Ali pa nikoli... Kajti imaš le nekaj procesorskih taktov razlike, ali bo program ob enakem stisku enake tipke rele prižgal, ali ugasnil. To pa je enakj uS in le tvoja sreča je, da bo program šel v pravo subrutino.
Poiskusi takole:
--------
Do
Debounce P3.5 , 0 , Obrni , Sub
Loop
End
Obrni:
P3.7 = Not P3.7
Return
--------
= Not ukaz povzroči, da port zamenja stanje, torej iz 0 na 1 ali obratno. In tako ti bo ob vsakem pritisku tipke pin zamenjal stanje.
Pri Bascom-AVR je ta ukaz:
TOGGLE PortX.y
Povej, če bo delalo. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 4:34 pm Naslov sporočila: |
|
|
kaj pa če zraven dodan še več tipk? in vsaka posamezna tipka ima svojo nalogo?
saj pa se mora v programu vedno znova in znova prevet ali je bila kakšna tipka pritisnjena ali ne. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 4:56 pm Naslov sporočila: |
|
|
Sem stvar preveril delno si mi pomagal hvala, vendar kot sem že omenil ni napaka programska.
Ko na napravo priključim na napajanje, rele takoj pritegne kontakte neda bi kaj sploh pritisnil.
Mora pa delovati tako, da ob pritisku na tipko pritegne.
Tranzistor ni prebit!! povezano je pa kot treba biti. |
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
Objavljeno: Sob Sep 12, 2009 5:20 pm Naslov sporočila: |
|
|
Hec je HW.
Citiram: |
Port 3 pins P3.0 to P3.5, P3.7 are seven bi-directional I/O pins with internal pull-ups. |
Po resetu je I/O pin zaradi internega pull-up upora na '1', zato ti rele vklopi.
Koda: |
Vklop:
P3.7 = 0
Return
Izklop:
P3.7 = 1
Return
|
Tole ne bo ok. Če imaš NPN tranzistor, ga logična '1' vklopi. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 5:42 pm Naslov sporočila: |
|
|
sem pravkar vezal na pin p1.2 pa se enako odziva uporabil sem pa npn tranzistor
ali moram vzet PNP?
zadevo sem sestavil na testno ploščo vendar se enako obnaša.
pregledal sem tudi članek univerzalni timer v katerem je iz vezja razvidno da je tranzistor z relejem vezan na p3.7 in naprava deluje
v mojem primeru, imam enako vezan rele in mi ne dela
Nazadnje urejal/a galex4 Sob Sep 12, 2009 5:59 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Sep 12, 2009 5:44 pm Naslov sporočila: |
|
|
Kaj pa če čisto na začetku dodaš stavek:
P3.7 = 0
In tako bo pin takoj ob vklopu na 0. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 6:14 pm Naslov sporočila: |
|
|
nemorem verjet, pa res deluje, nevem po kakšni logiki deluje ampak deluje.
Hvala
Vezal sem na pin p1.2 in ga že na začetku definiral na 1. Ko napravico priključim na napajanje rele se vklopi in takoj izklopi. Ko pa pritisnem na tipko pa deluje normalno. |
|
Nazaj na vrh |
|
 |
program_er Član


Pridružen-a: Sob 08 Mar 2008 13:47 Prispevkov: 2173 Aktiv.: 10.33 Kraj: Maribor (Pohorje)
|
Objavljeno: Sob Sep 12, 2009 9:35 pm Naslov sporočila: |
|
|
galex4 je napisal/a: |
nemorem verjet, pa res deluje, nevem po kakšni logiki deluje ampak deluje.
|
Čisto logično je, to si je dobro zapomniti tudi za ostale projekte. Po resetu čipa so vključeni interni pull-up upori med pinom in VCC, ki ti pin "vlečejo" na visoko stanje in je na njih 5V, dokler jih ne definiraš drugače.
Citiram: |
Vezal sem na pin p1.2 in ga že na začetku definiral na 1. |
Ja potem pa imaš najbrž PNP tranzistor in ne NPN... Namreč NPN se odpira z 1, z 0 zapira.
Citiram: |
kaj pa če zraven dodan še več tipk? in vsaka posamezna tipka ima svojo nalogo?
saj pa se mora v programu vedno znova in znova prevet ali je bila kakšna tipka pritisnjena ali ne. |
Že že, to imaš prav. Če bi ti imel več tipk, bi lahko naredil v stilu:
----------
Do
Debounce P3.3 , 0 , Rele1 , Sub
Debounce P3.4 , 0 , Rele2 , Sub
Debounce P3.5 , 0 , Rele3 , Sub
Loop
End
Rele1:
P3.5 = Not P3.5
Return
Rele2:
P3.6 = Not P3.6
Return
Rele3:
P3.7 = Not P3.7
Return
----------
Vendar pa pri eni tipki to ne gre.
Predstavljaj si, da bi imel tako kodo:
----------
Do
Debounce P3.5 , 0 , Rele1 , Sub
Debounce P3.5 , 0 , Rele2 , Sub
Debounce P3.5 , 0 , Rele3 , Sub
Loop
End
Rele1:
P3.5 = Not P3.5
Return
Rele2:
P3.6 = Not P3.6
Return
Rele3:
P3.7 = Not P3.7
Return
----------
Ta koda je podobna tisti tvoji prvi, le da malo pretiravam. Med vsakih Debounce ukazom je nekaj uS, nič več.
In zdaj program teče... Debounce1... Debounce2.... Debounce3... med vsakih je nekaj uS ali celo manj. Zdaj pa ti stisneš tipko! In ali lahko veš, ob katerem Debounce ukazu je bil program v tem trenutku? Se bo vklopil rele 1, 2 ali 3? Za vsakega imaš 33,3% možnost! To je kot ruleta! Zato tega tako ne moreš delat, a zdaj razumeš? Če ne, kar vprašaj. |
|
Nazaj na vrh |
|
 |
galex4 Član

Pridružen-a: Tor 01 Apr 2008 18:27 Prispevkov: 459 Aktiv.: 2.19
|
Objavljeno: Sob Sep 12, 2009 9:49 pm Naslov sporočila: |
|
|
tranzistor je bc547, torej je npn tranzistor
bom si zapomnil, hvala za pomoč |
|
Nazaj na vrh |
|
 |
dkone Član

Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2116 Aktiv.: 9.51 Kraj: Krško
|
Objavljeno: Ned Sep 13, 2009 9:14 am Naslov sporočila: |
|
|
galex4 je napisal/a: |
tranzistor je bc547, torej je npn tranzistor
bom si zapomnil, hvala za pomoč |
89 serije delujejo z negativno logiko kot AVR-ji. Zato vzami PNP tranzistor,veži pullup upor,ter krmili z "0",saj v tem stanju port doseže tistih 25mA. Izognil se boš tudi tisti začetni vklopitvi releja. _________________ Denis |
|
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: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|