Řízení modelářského serva pomocí operačních zesilovačů

Ahoj všichni.
Jde o to, že jsem chtěl někoho poprosi tady na foru, o napsání programu pro ATtiny13 který řídí modelářské servo, jako na přiloženém videu.
Funkce obvodu je následující. Po přivedení napájení je microservo v poloze A, po sepnutí tlačítka se microservo dostane do polohy B. Po uvolnění tlačítka se vratí na polohu A.

Pro přiklad přikládám doprovodné video

youtube.com/watch?v=d5kbDpBgB1Q

a zapojení je na

uloz.to/6238495/servo-schalt … 00x817-jpg

Tištěný spoj si udělám, ale neumím programovat. Proto se na Vás obracím s prosbou o návrh ovládacího programu, který již zvládnu nahrát (snad) přes programátor (AVRPROG-T Programátor mikrokontrolérů AVR, shodný s STK500, USB). Pokud se najde nějaká dobrá duše.

Díky všem za případné nápady.

:arrow_right: administrator: přesunuto z "Off – topic"

:arrow_right: administrator: přejmenováno z "POMOC o napsání programu pro ATtiny13"

:arrow_right: administrator: příspěvek byl upraven
Odkaz byl vyjmut z code.

:arrow_right: administrator: přiloženy externí soubory
Servo - Schalt-Skizze- mit 5Volt_1100x817.jpg

Kdybys tam nepotřeboval tu nastavitelnou rychlost změny polohy, stačily by na to operáky (ze dvou vytvoříš trojúhelníkovej generátor, třetí jako komparátor určuje střídu). Pokud by mělo servo malej rozsah střídy (třeba 1ms), asi by to zvládla i 555. Obě varianty by byly mnohem levnější než programátor+mcu.

Ridici impulsy maji rozsah od 1ms do 2ms, frekvence 50Hz.

to piityy:

Právě že potřebuju. Je to k ovládání různého příslušenství v železničním modelářství, např. přestavníky, ovládání vrat výtopny, aj… Pro každý doplněk potřebuji právě rozdílnou nastavitelnou rychlost a koncové body.

Vypadá to, že se do toho nikomu nechce :slight_smile:. Holt čas je drahej a bez hw se program ladí dost blbě.
Úplná analogová verze (viz. příloha) už asi nebude tak výhodná.
analogPWM.gif

pro me je to nevhodny typ MCU :wink: , jinak bych neco sesmolil

to piityy

Díky za schéma. Ono by to taky asi stačilo.

Nechyba v scheme to tlacitko?
Ako pozeram, tak pozeram oba trimre su zapojene paralelne. Ale mozno zle pozeram.

Rozne casy “otvarani” a “zatvarani” sa daju nastavit tak, ze jednosmerne napatie privedene do komparatora pojde cez RC clen. Cim bude hodnota RC vyssia, tym pomalsia zmena sa udeje, tak ako je nakreslene v scheme. Len by som vyhodil tie dve antiparalelne diody D1 a D2 a miesto nich dal skratovu prepojku a zrusil by som R13. Ako OZ mozes kludne pouzit i lacny LM324.

Správně :slight_smile: mezi R10 a uzlem (R11, +, R6) má být spínač. Na papíře ho mám, do eaglu už se nějak nedostal…
Antiparalelní diody jsou tam proto, aby byl výstup IC3A posunut při nabíjení/vybíjení kondiku o vyšší napětí než pouze o rozdíl. Tím se bude C nabíjet rovnoměrnějším proudem a komparační úroveň pro IC3B se také bude měnit více lineárně. Jinak by to šlo po celé exponenciále. R13 pak zastaví nabíjení v okamžiku dosažení potenciálu + IC3A. Mohlo by hrozit, že OZ se mozná v ten okamžik rozknitá, ale to tomu RC na výstupu nevadí.

Dobrá finta :slight_smile:

Ještě vysvětli ty dva paralelně zapojené trimry.

Edit: Už to chápu, tam vlastně chybí to tlačítko… :smiley:

Už jsem to doupravil :slight_smile:

Šlo by přidat do toho schémátka hodnoty součástek? Zkusil bych to postavit.
Díky

Určitě šlo. Jen je otázka, jesli to bude jednodušší spočítat, nebo naprogramovat :smiley:. Ale pokusim se tedy…

edit: první část - oscilátor. Výpočet se od simulace lišil asi o 40% ve frekvenci (počítal jsem s jinýma saturacema, než má LM324), tak dávám screen.

edit2: tak z toho asi nic nebude… Teoreticky by to chodilo, ale prakticky to vypadá bledě. Na rozdíl 1ms ve střídě (plný rozsah serva) připadá jen 0.03V rozdílu v referenci pro komparátor (IC3B). Né že by to nešlo ralizovat, ale bylo vy to strašně citlivé na změny v napájení. Zvětšením rozkmitu generátoru bych to posunul až na 0.1V. Ani to by však asi nebylo dostatečné.
oscil.gif

Zastavte stroje, vypnete masiny :slight_smile:
Tady uz je to postavene, je to pouzitelne jak v DCC tak analogu, programem pod win si nastavis primo rychlostni krivku a polohy atd…
digital-bahn.de/bau_servo/sandei.htm

Zrovna když jsem to dodělal… :slight_smile: Ale i tak to přihodim.
R10 = trimr max, R2=trimr min, R4=trimr speed. Je možné, že bude třeba jemě doladit R1.
Postup nastavení: sepnout tlačítko, nastavit max, pak uvolnit a nastavit min.
analogPWM_ref.gif

Taky přihodím jedno z možných řešení, které jsem dělal na objednávku pro známého na modelovou železnici.
Po připojení napájení, dvou serv, ovladacích tlačítek, se připojí programovací tlačítko. Jeho stiskem a držením se dostaneme do programovacího režimu, LED začne blikat. Jako první se nastavuje servo1, napřed levý doraz, pak pravý doraz a nakonec rychlost. Na servu1 po stisku ovládacího tlačítka můžeme vidět ihned změnu. Pak následuje nastavení serva2, po nastavení obou serv dlouhým stiskem prog. tlačítka se nastavení uloží do eeprom a je možno programovací tlačítko odpojit a připojit k dalšímu modulu. Určitě takových modulů budeš potřebovat více. Po doplnění usměrňovačem a stabilizátorem 5V se dá tento modul napájet přímo z kolejiště. Ale, protože pracuji s PIC, je program napsán pro 12F629. Snažil jsem se také nepoužít žádné mechanické nastavovací prvky.
Servo.JPG

Díky všem. Zkusím postavit obě řešení. Někdy se ta elektronika může mezi sebou pokopat. Už takkle je jí tam dost (optosnímače, el. relé do toho digitál aj…)

to Petr: Mohl by jsi mi prosím poslat ten ovládací program pro PIC?

to BorgMcz: Tohle řešení mi přijde docela složité.

Pokud bys to chtěl stavět bez mikrokontroléru, zkus se podívat na
seattlerobotics.org/encoder/ … rciser.htm
Vypustit nepotřebné a zdvojit R4 přes přepínací tlačítko.
Myslím, že by to mělo fungovat.

to jardavr

ono se to jen zda, ale umi to hlavne tu rychlostni krivku, to znamena, na zatatku treba dvere od depa pujdou pomaleji, pak rychleji a pri dovirani zase pomaleji atd… Byl u toho kladen duraz na rozmer, aby se to veslo pripadne do vagonu. Take to dokaze zpracovavat DCC signal. Takze je to dost universalni. Osobne jsem si ten oboustranej plosnej spoj objednaval u nich, abych tu neresil vyrobu oboustrane desky.