Fórum témák
» Több friss téma |
Sziasztok,
Pic-el szeretnék egy robotvezérlést megoldani. Két motor két forgásiránnyal. Egy előre meghatározott mozgáskombinációt végezne a robot. PC-n belül elkészíteném, hogy milyen mozgást kéne végrehajtania a robotnak, hogy lássam vizuálisan ( pl. egy négyzetet rajzol) és ezután tölteném rá a mikrochipre. Szóval a robot képes lenne egyszer négyzetet, máskor háromszöget mindig más oldalnagyságokkal lerajzolni, attól függően, hogy a PC-n belül én mit rajzolnák meg. Hogy lehetséges ez? Code blocks-ban készítettem ilyen programot ami kirajzolja a négyzetet stb, viszont a motorok vezérlését pl microc-ben teljesen máshogy kell. Hogy lehetne a kettőt összehangolni? PC-n megrajzolom majd áttöltöm a microchipre ami vezérli a robotot. Kicsit összetett a dolog... Előre is köszönöm a választ.
Sziasztok
![]()
Mi lehet a baj??
Próbáld igy
void main() { PORTA = 0; TRISA = 0b00000000; PORTA = 0b00000010; while(1); }
Ez tulajdonképpen egy CNC gép lenne vagy plotter? Talán egyszerűbb lenne ebben az irányban elindulnod, rengeteg, szinte kész megoldás létezik.
Köszönöm... mondjuk ez csak nyàron fog nekem kelleni. Akkorra tervezem eztva projektet... csak már jár a fejem rajta... aztán kezdek gondolkodni hogy mit is meg hogyan is!
De elöre is köszönöm
Szerintem ugyan az a ketto......
Müködik
![]() Idézet: CSúszásra még vároma megoldást vagy hogy kell kiszámolni ?? „Sajnos nem vagyok nagy matekos kb mennyit kene elvemni hozza adni es mily modon ???”
Nos, a számok még elég pontatlanok, talán jobb lenne egy hétig mérni, de ezt megteheted később is. Tegyük fel, hogy - ha jól értem - 15:47- kor indítottad az órát és kb 07:57-kor 4 mp késés volt.
Eközben 16 óra és 10 perc telt el. Ez összesen 16 x 3600 + 10 x 60 = 58200 másodperc Ez alatt 4 másodpercet téveszt, azaz minden 58200/4=14550 másodpercben késik egy mp-et. Én a favágó megoldást választanám, minden másodperc ugrásnál felfelé számoltatnék egy változót. Ha ez eléri a 14550 értéket, akkor még egy másodperccel inkrementálnám a másodperc értékét (persze 60-nál 0-znám és a percet inkrementálnám stb.), és nulláznám az előbbi változót. Miután viszont sem a C-hez nem értek, sem pedig a konkrét megoldásodat nem ismerem, innen Tied az út. Ha a hosszú távú méréssel más értéket számolsz, akkor a 14550-nek nyilván azt az értéket kell adni. Viszont ez a hiba kb 69 ppm ami a duplája az általam megnézett kvarcok max hibájának. Ott valami nem stimmel. Lehet, hogy nem is állandó a hiba. Ez azt is jelenti, hogy van esély arra, hogy a 4 mp. mondjuk holnap 2 lesz, hétfőn meg 9. Ezt már kompenzálással nem fogod meg. Idézet: „Viszont ez a hiba kb 69 ppm ami a duplája az általam megnézett kvarcok max hibájának. Ott valami nem stimmel. Lehet, hogy nem is állandó a hiba. Ez azt is jelenti, hogy van esély arra, hogy a 4 mp. mondjuk holnap 2 lesz, hétfőn meg 9. Ezt már kompenzálással nem fogod meg.” A forráskódót csatoltam hátha valaki rájön mit hibázok. Vagy csináljam azt hogy számolom a masodperceket nem nullázom(persze éjfélkor nullázoma változokat) vissza bontogatom while ciklussal . Holnap beszurom hogy mire gondolok.
Ismereteim szerint a BT adatátvitel tartalmaz némi védelmet az átvitt adatot épségére.
Szia
megnézve a forráskódot, szerintem az jó. 1/14550-ednyi hibát nem nagyon tud a rutinod okozni, legalábbis én nem látom. Két interrupt között 1/100 mp telik el, aminek elégnek kell mindenre lennie. Ha tippelnem kellene 50% esélyt adok a kvarc köröl parazita kapacitások kártékony hatására. 20%-ot arra, hogy kifogtál egy rossz kvarcot, 20 % egyéb HW 10% SW. 4MHz-s kvarcod van rajta ugye? Ahhoz 15-30pF-es kondenzátorokat ír a doku. Megpróbálhatod külső oszcillátorral járatni, megnézni, hogy akkor mi a helyzet. Akár más értékű kvarccal, előosztóval.
Ha Gyoran jól számolt, akkor a feltételezés szerint az órajeled 69 miliomod résszel alacsonyabb, mint 4MHz. De számoljunk csak utasítás végrehajtási ciklusokkal (1MHz ~ 1us).
A megszakítás 1/100 s -enkét következik be, így két megszakítás között 10000 utasítás hajtódik végre. Mivel az órajel nem pontos, hanem 69 ppm -el eltér lefelé, így egy exakt márodperc alatt csak 1000000 - 69 órajel ciklus lesz. A megszakítási rutint írnám át Roman Black féle módszerre: Vennék egy longint változót, kezdőértéknek 999931 -et írnék bele. A megszakítási rutin minden lefutása alatt 10000 -et levonnkék belőle. Ha az érték negatív 999931 -t hozzáadnék és növelném a másodperc értékét.
Egy byte-kód értelmező féleséget kellene inkább írnod a pic-re, és rakni mellé vagy ramot, vagy flash-t, hogy abba küldd majd az adatokat a pc-ről. Ha meg van tervezve a művelet egésze, lefordítod elemi műveleti lépésekre, és azt küldöd le a pic-nek.
22 pf farádot használok. 4mhz eset. Akkor nem a programba keressem a hibát. Még végig gondoloma dolgokat. Köszönöm Idézet: „Ha Gyoran jól számolt, akkor a feltételezés szerint az órajeled 69 miliomod résszel alacsonyabb, mint 4MHz. De számoljunk csak utasítás végrehajtási ciklusokkal (1MHz ~ 1us). A megszakítás 1/100 s -enkét következik be, így két megszakítás között 10000 utasítás hajtódik végre. Mivel az órajel nem pontos, hanem 69 ppm -el eltér lefelé, így egy exakt márodperc alatt csak 1000000 - 69 órajel ciklus lesz. A megszakítási rutint írnám át Roman Black féle módszerre: Vennék egy longint változót, kezdőértéknek 999931 -et írnék bele. A megszakítási rutin minden lefutása alatt 10000 -et levonnkék belőle. Ha az érték negatív 999931 -t hozzáadnék és növelném a másodperc értékét.” C be leprogramozom nagyából hogy nézne ki letudnád nekem majd ellenőrizni???
Sziasztok!
Van egy AMC 1200-esem. Szeretnék vele izoláltan áramot mérni és az értékét beolvasni egy pic adc-jén keresztül. Még nem teszteltem az áramkört, de a két kimenetén mérhető a bemeneti feszültség 8x-a. A gondom az, hogy a két kimenet feszültségkülönbsége adja a mérendő jelet. A pic-el ha jól tudom nem tudok csak pozitív tartományban mérni. Valahogy meg lehet oldani ezt más áramkör hozzátoldása nélkül?
Sziasztok!
PIC-hez tudtok javasolni valami egyszerű kezelhetősègű könnyű editoros 5 coll környèki kijelzőt? A Nextion HMI -jèt nézegettem... de fèlek hogy kinai lenne nekem! Első kijelzős projekt lenne! Igyhajlando vagyok egy kicsit dràgàbbat is megvenni ha egyszerűbb a kezelhetősège! A projekt az egy lakàs analizácio lenne / majd majd/ Statikus stilizált kèp ès a mèrt hőmèrsèglet pàra megjelenitése. Minden ötletet szivesen meghallgatok!
Pedig én a Nextiont javaslom.
Ha nem vagy biztos magadban, töltsd le a feljesztő iörnyezetét. Van benne szimulátor. Azt csinálja amit a HMI is.Kivéve a háttérvilágítás fényereje. És soros porton valós PIC -et is rá tudsz kötni. Így ismerkedhetsz vele költségek nélkül.
Mint már írtuk páran, először is járasd hosszabb ideig. Ha kb. 1 mp-es a leolvasási pontosságod, a 3-4 mp hiba még túl nagy leolvasási hibát tartalmaz, tehát hagyd, hogy az eltérés legalább 100 mp legyen, itt a leolvasási hiba más sokkal kisebb. Ha ez megvan, segítünk kiszámolni mennyivel kell korrigálni. Ellenőrizni csak te tudod egyedül, mi nem látjuk helyesen jár-e.
![]()
Na akkor azt hiszem megprobàlkozom!
Letöltöm... aztàn ha valamit nem tudok megyek a topicjába èy kèrdezgetek! Addig is köszönöm!
Csak érdeklődés szintjén!
Tudtok mondani olyan más kijelzőket aminek hasonlo az editor felülete.. tehát grafikus.. ? Mondjuk esetleg i2c alaput? Addig is belemélyedek ebbe a nextionba Idézet: „Mint már írtuk páran, először is járasd hosszabb ideig. Ha kb. 1 mp-es a leolvasási pontosságod, a 3-4 mp hiba még túl nagy leolvasási hibát tartalmaz, tehát hagyd, hogy az eltérés legalább 100 mp legyen, itt a leolvasási hiba más sokkal kisebb. Ha ez megvan, segítünk kiszámolni mennyivel kell korrigálni. Ellenőrizni csak te tudod egyedül, mi nem látjuk helyesen jár-e.” Rendben Akkor marad minden és akkor írom az információkat. 22pf lecserélem 33 ra az baj lenne? A hozzászólás módosítva: Márc 27, 2017
Nem hinném, a PIC dokumentációja azt írja, hogy a nagyobb kapacitás növeli a stabilitást és a felfutási időt is. Ez utóbbi gondolom mindegy.
Esetleg megpróbálnék 15 pF-et is, ha könnyen tudsz cserélni. Másfelől egy kvarc soros kondival húzható el, de ebben nincs tudásom/tapasztalatom. Harmadrészt a PIC adatlapja ír valamit soros ellenállásól és a kvarc adatlapjára utal. Ez utóbbi szerintem legtöbbször nem elérhető pont arra a kvarcra ami a kezedben van, így a dolog a woodoo kategóriához közelít ![]() Negyedrészt, a fali analóg kijelzésű digitálisan meghajtott óráim (a leggagyibb is) messze pontosabb, mint a 30 ppm, amit egy kvarc biztosít, tehát létezik a technológia pontos órához. Remélem ezzel vitát robbantok... ![]()
Nem hiszem, azok a kis 32k kvarcok sokszor 10ppm-esek, és ugye jó pénzért 1-2ppm-es kvarcot/oszcillátort is lehet kapni.
Igen, baj lenne. Ne kapkodj. Egyszerre csak egy dolgon változtass, különben elveszted a fonalat.
Egy összehasonlító mérés még nem dönti el semmit. Ne változtass semmin, csak hosszabb időn keresztül figyeld, mérd az eltéréseket. Ha azonos eltérést tapasztalsz, akkor nem érdemes a kvarc környékét piszkálni, egyszerűbb a szoftveres korrekció. Ha instabil, változó eltéréseket tapasztalsz, csak akkor foglalkozz az oszcillátorral.
Rendben ven ha meg van 100mp kulombseg irok.
Bocsánat a dupla postért annoo ezt rendeltem innen hestorrol:
Bővebben: Link
Anno kerestem lehető legpontosabb kvarcokat, de a HEStore-ban is csak 20 ppm-esek vannak, meg a TME-nél is, Lomex-nél is - merre lehet normálisabb kvarcot találni?
Pl. 10ppm-eset szoktam használni alapesetben, ha valami jobb kell lehet TCXO.
|
Bejelentkezés
Hirdetés |