Elektronicky tlacitkovy regulator zarovky

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#16 Příspěvek od Andrea »

Bohužel se zákmitama, které jsou u těch mechanických kodérů téměř pravidlem, si to neporadí. Tohle zapojení se hodí spíš pro optické kodéry. :(
masar
Příspěvky: 14454
Registrován: 03 pro 2005, 00:00

#17 Příspěvek od masar »

To je pravda, nicméně s filtrem podle doporučení výrobce by počet falešných impulzů neměl být nijak kritický vzhledem k zamýšlenému použití. :wink:
p.s. Já tohle řešení nepreferuji, jen ho považuji za možné. Osobně bych raději vytrpěl trochu toho programování jednočipu.
Přílohy
kodér.png
(9.97 KiB) Staženo 73 x
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#18 Příspěvek od nekmil »

Jen doplněk k tomu mému schématu - motor nebo žárovka je jedno.
Plus - zvyšuje, Mínus - snižuje (otáčky, jas)
Samozřejmě se to programuje jen pro ukázku v Bascomu:

'jednoduchý regulátor motoru pomocí PWM

$regfile = "attiny2313.DAT"
$crystal = 1000000 'ponechat v továrním nastavení 8MHz/8 t.j. 1MHz
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40

'nastavení PWM pro Timer0
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Down

'konfigurace vstupu
Config Pind.0 = Input 'koder A - plus
Config Pind.1 = Input 'koder B - minus
Config Pind.2 = Input 'tlacitko koderu
Portd = &B111 'pullup pro encoder a tlačítko

Config Portd.5 = Output 'výstup PWM signálu OC0B

Pwm_1 Alias Ocr0b
Tlacitko Alias Pind.2


Dim A1 As Integer 'hodnoty do PWM
Dim X As Byte 'pomocná proměnná pro encoder

Do
X = Encoder(pind.0 , Pind.1 , Minus_1 , Plus_1 , 0)
Loop

'nastavování hodnot pro PWM
'---------
Plus_1:
Incr A1 'zde budeme PWM zvětšovat
If A1 > 255 Then A1 = 255 'kontrola rozsahu
Pwm_1 = A1 'nastavení PWM Timer0
Return
'---------
Minus_1:
Decr A1 'zde budeme PWM zmenšovat
If A1 < 0 Then A1 = 0 'kontrola rozsahu
Pwm_1 = A1 'nastavení PWM Timer0
Return
'---------------------------------------------------------

'Řízení šířkové modulace je jednoduché - změnou proměnné Pwm1a se mění poměr
'impuls/mezera. Maximální hodnota Pwm1a je 255.
'Při Pwm1a = 1 je poměr 1/255
'Při Pwm1a = 2 je poměr 2/254
'Při Pwm1a = 10 je poměr 10/246 atd

'Nastavení Timer1 pro PWM:
'Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Up

'Pwm = 8 - osmibitová PWM (Pwm1a = 1 až 255)
'Prescale = 1 - opak.kmit = 20 kHz (při oscilátoru 10MHz)
'Prescale = 8 - opak.kmit = 20/8 kHz) atd
'Compare A Pwm = Clear Down - polarita výst. impulsů je opačná než při Clear Up

'kmitočet PWM=$crystal/Prescale/510 (při rozlišení 8 bitů)
Uživatelský avatar
OndraHy
Příspěvky: 11
Registrován: 31 pro 2008, 00:00

#19 Příspěvek od OndraHy »

Chjo... Ja vim, taky bych to nejradsi vyresil programovanim. Jenze to zatim nepripada uvahu :-( Jeste na to doma nic nemam a ani jsem se tomu nikdy nevenoval - budu samouk a to zabere dost casu, nez bych tohle zvladnul naprogramovat.
Zatim jsem se snazil vzdycky vsechno obejit a "zjednodusit", tak abych se programovani vyhnul.
masar
Příspěvky: 14454
Registrován: 03 pro 2005, 00:00

#20 Příspěvek od masar »

OndraHy píše:Chjo... Ja vim, taky bych to nejradsi vyresil programovanim. Jenze to zatim nepripada uvahu :-( Jeste na to doma nic nemam a ani jsem se tomu nikdy nevenoval - budu samouk a to zabere dost casu, nez bych tohle zvladnul naprogramovat.
Zatim jsem se snazil vzdycky vsechno obejit a "zjednodusit", tak abych se programovani vyhnul.

Máš vynikající příležitost překročit rubikon. Bez motivace se do programování nikdy nepustíš. :wink:
Uživatelský avatar
OndraHy
Příspěvky: 11
Registrován: 31 pro 2008, 00:00

#21 Příspěvek od OndraHy »

Hmm... Kostky jsou vrzeny... Rozhodne tj dobra motivace. No, uvidime.
Co bys radil do zacatku? Vubec nevim, od kud bych na to mel jit? Asi bych zacal literaturou, ne?
masar
Příspěvky: 14454
Registrován: 03 pro 2005, 00:00

#22 Příspěvek od masar »

Ano, literaturou. Snad by bylo dobré se nejprve rozhodnout pro určitou "rodinu" jednočipů. Od nekmila máš program skoro hotový - proč nezačít u attiny? :wink:
p.s. Ode mne se toho o programování moc nedozvíš, mám "na kontě" jen pár programů pro atmela a pokaždé začínám skoro od začátku. :wink:
Uživatelský avatar
OndraHy
Příspěvky: 11
Registrován: 31 pro 2008, 00:00

#23 Příspěvek od OndraHy »

Dobra. Sice ted vubec netusim, kudy kam, ale je to vyzva. A ja vyzvy rad... :twisted:
Tak vzhuru "do skoly"... :-D
Ale kdyz nekdo budete vedet jak to udelat bez programovani, budu rad. Mozna to bude rychlejsi, nez se to naucim :-D
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#24 Příspěvek od Crifodo »

nevím na co konkrétně takový způsob řízení potřebuješ, ale pro většinu použití jsem silně proti takovým přetechnizovaným řešením. Nebývá to odolné vůči rušení, při zakmitnutí napájecího napětí se to nedokáže uvést do výchozího stavu, pokud je řízený výkonovýprvek jinde než obsluha, nejde to nastavit hmatem, nedá se to obyčejně nastavit naráz na jedinou žádanou hodnotu. Řízení potenciometrem nebo přepínačem nastavíš jediným hmatem, vidíš ihned v jaké části rozsahu se regulace nachází, nastavený stav zůstane i po vypnutí a je k dispozici ihned po zapnutí, žádanou hodnotu nastavíš i ve stressu v zakouřeném prostředí při zemětřesení při převratu v opilosti atd :twisted:
Mám rádio s laděním tlačítkama, po každém zapnutí se musí znova krokovat žádaná stanice, nemá to paměť, při krátkém zarušení pásma se syntezátor nastaví taky třeba někam mimo stanice...
fuck off elektronické řízení, když není 100% :roll:
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#25 Příspěvek od Andrea »

Crifodo píše:fuck off elektronické řízení, když není 100% :roll:

Ty sis dal novoroční předsevzetí, že budeš hustej jako sinclair? :wink:
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#26 Příspěvek od Crifodo »

Andrea píše:
Crifodo píše:fuck off elektronické řízení, když není 100% :roll:

Ty sis dal novoroční předsevzetí, že budeš hustej jako sinclair? :wink:

a ty ses stala mou osobní zpovědnicí? :P
Uživatelský avatar
OndraHy
Příspěvky: 11
Registrován: 31 pro 2008, 00:00

#27 Příspěvek od OndraHy »

No, je fakt, ze kdyz jsem se na to ted mrknul, tak by to slo predelat a dat tam normalni potak. Ale to bych prisel o tu zabavu s tim to resit a treba nakonec i vyresit :-D
Jo, ty veci co tu pises jsou samozrejme pravda... Ale i s tim pocitam... Pochybuju ze pri zemetreseni, nebo valce si budu tocit s koleckem a regulovat jas zarovky. Poradne opilej uz jsem nebyl hodne dlouho (a kdyz, tak to vytahnu ze zasuvky :-D) a v pokoj mam nekurackej 8-)
A Taky nevim, jestli se potenciometry delaji s tlacitkem, jako je tenhle koder.
Vim, ze to neni nejjednodussi a nejstastnejsi reseni, ale mne by vyhovovalo.
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#28 Příspěvek od Crifodo »

neříkám že se řešení s enkodérem nedá udělat funkční, třeba pomocí digitálních poťáku s EEPROM (Xicor atd.) zůstane pak jen komplikovaná indikace.
Ale už jsem viděl moc aplikací, kde byly moderní µP a při rychlým zapnutívypnutí se TV uvede do stavu zrnění, nereaguje na tlačítka ani DO, video se kousne a půl hodiny působí dojmem že odešel procesor...
Každému dle jeho přání :wink:
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#29 Příspěvek od Andrea »

Crifodo píše:neříkám že se řešení s enkodérem nedá udělat funkční, třeba pomocí digitálních poťáku s EEPROM (Xicor atd.) zůstane pak jen komplikovaná indikace.
Ale už jsem viděl moc aplikací, kde byly moderní µP a při rychlým zapnutívypnutí se TV uvede do stavu zrnění, nereaguje na tlačítka ani DO, video se kousne a půl hodiny působí dojmem že odešel procesor...
Každému dle jeho přání :wink:

Ono to hodně záleží na programovacích schopnostech autora. U nás dělal jeden expert jako diplomku (bakalářku?) napájecí zdroj do cubesatu, samozřejmě řízený uprocesorem. Při obhajobě proběhla debata:
Otázka: Jak to máte ošetřené pro případ narušení chodu programu nějakým rušením?
Odpověď: Nijak.
Otázka: A co alespoň watchdog?
Odpověď: Ten jsem vypnul, protože mi to s ním nefungovalo.
Možná proto (naštěstí?) to ještě nelítá :roll:
Uživatelský avatar
OndraHy
Příspěvky: 11
Registrován: 31 pro 2008, 00:00

#30 Příspěvek od OndraHy »

Jo, souhlasim. Nejhorsi zavada je vzdy lidska chyba - nejrizikovejsi vec je lidskej faktor. Prave proto jsme chtel najit nejake "jednodussi" zapojeni, nebo uz funkcniho brouka... Ale asi to nevyjde.
Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“