|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
start Član
Pridružen-a: Sob 06 Sep 2008 22:59 Prispevkov: 2392 Aktiv.: 12.58 Kraj: Eindhoven, Nizozemska
|
Objavljeno: Sre Apr 20, 2011 8:03 pm Naslov sporočila: Attiny2313 in modelarski servo motor |
|
|
Pozdravljeni!
Izdelujem maketo elektronskega krmila za kajak.
Sem iz lesa naredil maketo, s modelarskim servo motorjem.
Za krmiljenje serva bom uporabil mikrokontroler Attiny2313.
Stvar deluje tako:
-Servo ima 3 pozicije (-45°, 0°, 45°)
-Imamo dve tipki, T1 (levo), T2 (desno)
-Ce ni pritisnjena nobena izmed tipk, je servo v poziciji 0°
-Ce je pritisnjena tipka levo, se servo premakne iz 0° na -45°
-Ce je pritisnjena tipka desno, se servo premakne iz 0° na 45°
Spisal sem program in Vas prosim za nekaj navodil in nasvetov:
-Ali je program pravilno napisan?
-Mogoce kaksnen komenar, nasvet (to je moj prvi samostojni program)
Tudi shemo sem zrisal in tudi tukaj vas prosim za majhno pomoc:
-Je vse pravilno?
-Skrbi me tisti kristal ali mora biti nujno tam?
Prvotno sem program spisal za uC Mega8, tam nisem imel nobenega zunanjega kristala.
Program:
$regfile = "Attiny2313.dat"
Config Portd.0 = Input 'tipka desno
Config Portd.1 = Input 'tipka levo
Config Servos = 1 , Servo1 = Portd.2 , Reload = 10
Config Portd.2 = Output 'servo signal
Enable Interrupts
Tipka_desno Alias Portd.1 'Preimenovana tipka v Tipka Desno
Tipka_levo Alias Portd.0 'Preimenovana tipka v Tipka Levo
Servo_motor Alias Portd.3 'Preimenovanje v Servo
Do
If Tipka_desno = 1 And Tipka_levo = 1 Then Servo(1) = 40
If Tipka_desno = 0 Then Servo(1) = 80
If Tipka_levo = 0 Then Servo(1) = 120
Loop
Shema je v priponki.
P.S. potebujem samo 3 pine, ostale sem dal, ce bom kdaj stvar nadgrajeval.
Sem hotel uporabiti manjsi kontroler Attiny13, vendar mi pise da ima premalo SRAMa...
Hvala!
Opis: |
|
Velikost datoteke: |
102.5 KB |
Pogledana: |
39 krat |
|
_________________ Lep pozdrav!
Aljaž T. |
|
Nazaj na vrh |
|
|
Obelix Član
Pridružen-a: Pon 19 Maj 2008 13:59 Prispevkov: 1862 Aktiv.: 9.61 Kraj: Maribor
|
Objavljeno: Čet Apr 21, 2011 8:39 am Naslov sporočila: |
|
|
Kristal ni nujen. S primerno nastavitvijo "fuse-ov" aktiviraš interni oscilator.
LpA
|
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.04 Kraj: Dragomer
|
Objavljeno: Čet Apr 21, 2011 8:43 am Naslov sporočila: |
|
|
Svoje čase sem krmilil servo motorje brez uporabe servo ukaza, z timerjem, zahtevno a je šlo. Ne vprašaj me, kje to imam, ker je tega davno.
Servo ukazi so zame novi in izgleda prijazni za uporabo.
Če so servo ukazi v tvojem programu v redu, pa gotovo ni odtipavanje tipk.
Tipke morajo biti deFinirane kot pind.o in ne portd.0
No morda malo neumestno vprašanje: kako pa nameravaš pritiskati na tipke, ko bo kajak v vodi?
|
|
Nazaj na vrh |
|
|
start Član
Pridružen-a: Sob 06 Sep 2008 22:59 Prispevkov: 2392 Aktiv.: 12.58 Kraj: Eindhoven, Nizozemska
|
Objavljeno: Čet Apr 21, 2011 6:07 pm Naslov sporočila: |
|
|
@vilko Hvala!
Bom popravil program.
Kako bom tipke uporabljal?
Tipke pridejo druge, sedaj delam zadevo le za maketo. Za v kajak, pa bom naredil drugo tiskanino, kjer ne bo dodatnih (nepoterbnih pinov), tipke pridejo vodotesne.
Vezje bo spravljeno v vodotesnjeno ohisje.
Krmilo, je v bistvu le ena palcka, ki se jo premika levo in desno. Torej, bodo tipke postavljene ob palcki, tako da bos krmilo (namesto 6cm v vsako stran) premaknil cca 5mm v eno ali drugo stran in s tem sklenil tipko in obrnil krmilo...
Upam da sem vspel kaj pojasniti. Bom s slikami vec povedal...
Sem popravil tiskanino.
Kristal sem pustil gor, ga ne bom prilotal, ce ga bom potreboval ga bom ze namestil...
Manjkala sta mi upor in kondenzator med resetom in VCC in drugi med resetom in GND...
Tudi tiskanina je zrisana.
Vidi kdo se kaksno napako kje?
Hvala!
Opis: |
|
Velikost datoteke: |
129.47 KB |
Pogledana: |
4 krat |
|
Opis: |
|
Velikost datoteke: |
147.28 KB |
Pogledana: |
2 krat |
|
_________________ Lep pozdrav!
Aljaž T. |
|
Nazaj na vrh |
|
|
rudiP Član
Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 6.07 Kraj: KOPER
|
Objavljeno: Čet Apr 21, 2011 6:23 pm Naslov sporočila: |
|
|
Smiselno bi bilo na to ploščico dodati tudi napetostni stabilizator 5V s pripadajočimi kondenzatorji. Pa tudi eno diodo 1n4007 pred njim kot zaščito proti narobe obrnjeni polariteti.
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
|
start Član
Pridružen-a: Sob 06 Sep 2008 22:59 Prispevkov: 2392 Aktiv.: 12.58 Kraj: Eindhoven, Nizozemska
|
Objavljeno: Čet Apr 21, 2011 6:26 pm Naslov sporočila: |
|
|
Sem razmisljal tudi v tej smeri. Mogoce bi v postev prisla le dioda 1N400X. Ker za stabilizacijo oz napajanje pride Step down vezje http://www.elektronik.si/phpBB2/viewtopic.php?t=25610
Vendar moram pogledati ali bo servo deloval na 4.3V (0.7V je na diode,ne?)
_________________ Lep pozdrav!
Aljaž T. |
|
Nazaj na vrh |
|
|
rudiP Član
Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 6.07 Kraj: KOPER
|
Objavljeno: Čet Apr 21, 2011 6:52 pm Naslov sporočila: |
|
|
Diodo daj pred step down nato narisana elektronika . Torej sponka -> 1N400x -> Attiny 2313 in Servo motorček.
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
|
start Član
Pridružen-a: Sob 06 Sep 2008 22:59 Prispevkov: 2392 Aktiv.: 12.58 Kraj: Eindhoven, Nizozemska
|
Objavljeno: Čet Apr 21, 2011 7:04 pm Naslov sporočila: |
|
|
rudiP je napisal/a: |
Diodo daj pred step down nato narisana elektronika . Torej sponka -> 1N400x -> Attiny 2313 in Servo motorček. |
Bom tako naredil kot si predlagal.
Hvala.
Samo pri maketi bo vse OK, saj servo ne bo povlekel vec kot 150mA.
Servo za v kajak pa bo bistveno mocnejsi (19,2kg do 31kg), tako bo tekel tok (upam) nekje 800mA-1.2A...
_________________ Lep pozdrav!
Aljaž T. |
|
Nazaj na vrh |
|
|
rudiP Član
Pridružen-a: Tor 07 Avg 2007 15:30 Prispevkov: 1234 Aktiv.: 6.07 Kraj: KOPER
|
Objavljeno: Čet Apr 21, 2011 7:15 pm Naslov sporočila: |
|
|
rudiP je napisal/a: |
Diodo daj pred step down nato narisana elektronika . Torej sponka -> 1N400x -> Attiny 2313 in Servo motorček. |
Pravilno je: Torej sponka -> 1N400x -> step down na 5V -> Attiny 2313 in Servo motorček.
Za večje tokove pa dodaš še tranzistor ali Mosfet.
_________________ Lep pozdrav iz Kopra Rudi |
|
Nazaj na vrh |
|
|
David2204 Član
Pridružen-a: Pon 03 Nov 2008 0:01 Prispevkov: 997 Aktiv.: 5.30 Kraj: Ljubljana - Nova Gorica
|
Objavljeno: Čet Apr 21, 2011 10:02 pm Naslov sporočila: |
|
|
rudiP je napisal/a: |
Za večje tokove pa dodaš še tranzistor ali Mosfet. |
Saj nočem biti pikolovski, ampak MOSFET je tranzistor. En izmed mnogih tipov.
Kot "tranzistor" mislim da imaš v mislih bipolarnega (NPN ali PNP). Imam prav?
|
|
Nazaj na vrh |
|
|
start Član
Pridružen-a: Sob 06 Sep 2008 22:59 Prispevkov: 2392 Aktiv.: 12.58 Kraj: Eindhoven, Nizozemska
|
Objavljeno: Čet Apr 21, 2011 10:30 pm Naslov sporočila: |
|
|
vilko je napisal/a: |
Tipke morajo biti deFinirane kot pind.o in ne portd.0
|
Smem vprasati zakaj mora tam pisati pind.0 in ne port?
Kaj s portom definiramo, komplet od 0-7 portov a s pinom pa samo en pin, imam prav?
_________________ Lep pozdrav!
Aljaž T. |
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.04 Kraj: Dragomer
|
Objavljeno: Pet Apr 22, 2011 6:45 am Naslov sporočila: |
|
|
start je napisal/a: |
vilko je napisal/a: |
Tipke morajo biti deFinirane kot pind.o in ne portd.0
|
Smem vprasati zakaj mora tam pisati pind.0 in ne port?
Kaj s portom definiramo, komplet od 0-7 portov a s pinom pa samo en pin, imam prav? |
Ne. Enostavno postavljeno je tako, da z portd.0 postavljaš vrednosti, s kateremi krmiliš pin na izhodu, no lahko tudi povprašaš, kako si ga krmilil. Če pa hočeš prebrati vrednost pina, ki je vsiljena mikrokrmilniku od zunaj, potem moraš to nasloviti z pind.0
Primer:
Na pin imaš preko zaščitnega upora 300E priključeno kombinacijo tipka na maso in upor 10k na plus.
Krmiliš portd.0 = 1 - pin postaviš na 5V
Potem pritisneš in držiš tipko, pin forsiraš na 0V
bit = portd.0 bo še vedno dobil 1, ki si jo dal v portd.0
bit = pind.0 pa boš odčital dejanski potencial na pinu in boš dobil 0.
|
|
Nazaj na vrh |
|
|
start Član
Pridružen-a: Sob 06 Sep 2008 22:59 Prispevkov: 2392 Aktiv.: 12.58 Kraj: Eindhoven, Nizozemska
|
Objavljeno: Pet Apr 22, 2011 7:17 am Naslov sporočila: |
|
|
Hvala za izcrpen odgovor.
Sem razumel.
Se nekaj me zanima:
Ker kristala ne bom potreboval, mi je nekdo omenil da se moram igrati s fuse biti in bom tako vklopil notranjega...
Kaj to se nardi tako, da deklariram frekvenco (recimo 4000000) takoj pod tistim ukazom, kjer dolocim kontroler?
_________________ Lep pozdrav!
Aljaž T. |
|
Nazaj na vrh |
|
|
žrepko Član
Pridružen-a: Tor 23 Mar 2010 20:12 Prispevkov: 700 Aktiv.: 4.08 Kraj: Ptuj-Maribor
|
Objavljeno: Pet Apr 22, 2011 7:45 am Naslov sporočila: |
|
|
Uporabi FUSE CALCULATOR .
Sicer ti v datasheetu vse lepo nazorno piše in čaka, da prebereš.
|
|
Nazaj na vrh |
|
|
vilko Član
Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3351 Aktiv.: 15.04 Kraj: Dragomer
|
Objavljeno: Pet Apr 22, 2011 2:32 pm Naslov sporočila: |
|
|
start je napisal/a: |
Hvala za izcrpen odgovor.
Sem razumel.
Se nekaj me zanima:
Ker kristala ne bom potreboval, mi je nekdo omenil da se moram igrati s fuse biti in bom tako vklopil notranjega...
Kaj to se nardi tako, da deklariram frekvenco (recimo 4000000) takoj pod tistim ukazom, kjer dolocim kontroler? |
Običajno ima program, ki upravlja pretok programa iz PC-a v mikro, več zavihkov.
Eden je za polnjenje flash pomnilnika, programa, ta je najobičajnejši.
Drugi je za polnjenje (in branje) EEPROM-a, kjer lahko za mikro vpišeš trajne podatke. Običajno se ta briše pri polnnjenu programa v flash, lahko pa do brisanje prepoveš in
Tretji zavihek ti pokaže stanje FUSE AND LOCK bitov v mikrokrmilniku, kjer med drugim določiš, kateri oscilator poganja mikro. Nič ti ne pomaga, če imaš kristal, v fuse and lock bitih pa imaš specificiran 8 MHz interni oscilator. Mikro bo delal z 8 Mhz.
Je pa pri tem potrebno paziti. Je razlika med externim oscilatorjem in externim kristalom. Če pomotoma klikneš na externi oscilator, mikro brez eksternegaoscilatorja ne bo delal, niti ga ne boš brez tega mogel popraviti fuse bite.
Previdno torrej
|
|
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: 70 dni
Powered by phpBB © 2001, 2005 phpBB Group
|