Generátor řízený dobou trvání řídícího pulzu..
Moderátor: Moderátoři
Generátor řízený dobou trvání řídícího pulzu..
potřeboval bych poradit jak udělat nějaký jednoduchý obvod který by vytvářel obdélníkový signál a jeho frekvenci řídit dobou řídícího pulzu (např. stlačený spínač). Stačilo by aby frekvence se dala řídit od 0-50Hz ale jak nahoru tak i dolů.
Potřeboval bych to co nejjednoduší-nejmenší protože v modelu už není moc místa.. a pokuď možno bez PICu (nemám ho kde naprogramovat)...
Děkuji za jakýkoliv nápad...
Re: Generátor řízený dobou trvání řídícího pulzu..
fog-eye píše:... a pokuď možno bez PICu (nemám ho kde naprogramovat)...
Tím jste právě vyřadil to nejmenší a nejjednodušší řešení. Obávám se, že úsilí k dosažení alternativního, skutečně vyhovujícího řešení bude větší než úsilí potřebné k získání programátoru a fungujícího programu. Základní problém bude v dlouhodobém a stabilním uchování informace o délce řídícího pulsu. Možná bych se nechal nějak inspirovat cyklovačem stěračů s nastavitelnou periodou, ten si také pamatuje dobu mezi dvěma zapnutími a potom ji dodržuje.
Akorát bych potřeboval kdyby se tu našel někdo velice hodný a napsal mi nějaký program
Potřeboval bych 2 vstupy, u kterých by jeden při přivedeni log.1 zrychloval a druhy vstup aby naopak spomaloval vystupní frekvenci...
kdyby se tu někdo takový našel a poslal mi program a schémátko.... byl bych mu velice zavázán ...
- kevin_mitnick
- Příspěvky: 1812
- Registrován: 20 kvě 2007, 00:00
http://www.ebastlirna.cz/modules.php?na ... ic&t=22884
Já bych to řešil nějak takhle, pozn. následující code není hotový program:
Kód: Vybrat vše
----------------
#define COUNT_UP 1
#define COUNT_DOWN 0
// #define Q_1 set fyzical output hi
// #define Q_0 set fyzical output low
// Q is output pin
//
char PRESET; // preset value
char CNT1; // free running timer
char DIR; //1-count up, 0-count down
init(){
PRESET=0;
CNT1=0;
DIR= COUNT_UP;
OUT=0;
}
loop(){
if (flag_every_100ms){
if (Tlacitko1){
PRESET++;
}
if (Tlacitko2){
PRESET--;
}
}
if(flag_every_10ms){
if (DIR==COUNT_UP){
CNT1++;
}
if (DIR==COUNT_DOWN){
CNT1--;
}
if (CNT1==0){
Q_1;
DIR=COUNT_UP;
}
if (CNT1>=PRESET){
Q_0;
DIR=COUNT_DOWN;
}
}
}- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
A pokud bys chtěl kmitočet řídit šířkou pulsu, tak moc úprav nebude potřeba.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Mimochodem nepotřebuji udržet informaci o rychlosti frekvence buch ví jak dlohou dobu stačí cca 5-10min... a velká přesnost taky není potřeba...
Tudíž kdybych použil nějaký fet tranzistor tak vstupní proud je malý takže kapacita by nebyla zas tak hrozná...
Myslíte že by to tak mohlo fungovat ? Budu rád když mě popřípadě opravíte, rád se něčemu přiučím ...
- ZdenekHQ
- Významný člen
- Příspěvky: 25519
- Registrován: 21 črc 2006, 00:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
555 jako VCO je složitej orloj, té 4046 stačí kondík + odpor. Integrátor je jeden OZ, foliový kondík a odpor + dvě tlačítka proti + a - . V SMT to nacpeš na 2cm čtvereční.
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]