Estoy tratando de hacer un oscilador donde pueda ajustar la frecuencia y el ciclo de trabajo de forma independiente, pero no estoy teniendo mucha suerte. Lo que quiero es un rango de frecuencia de 1Hz a 1MHz; y la capacidad de ajustar el ciclo de trabajo en incrementos del 10% de 0% a 100%, más o menos. Idealmente, también me gustaría poder especificar un ciclo de trabajo del 25% o 75%.
Mi pregunta básicamente se reduce a: ¿Cuál es la forma más sencilla (es decir, la más barata y más pequeña) de lograr un oscilador de onda cuadrada ajustable con un ciclo de trabajo ajustable, con las especificaciones anteriores y donde se ajusta el valor? ¿La frecuencia o el ciclo de trabajo no hace que la otra cambie?
Aquí sigue una explicación detallada de cómo llegué aquí:
Mi primer pensamiento fue un temporizador 555, pero eso fue muy problemático. Ajustar el ciclo de trabajo también tuvo un impacto en la frecuencia, y lograr un ciclo de trabajo de menos del 50% fue prácticamente imposible.
Misegundointentoinvolucróuninversorschmitt.Lamentablemente,lazonaSchmittnoestabacentradademanerauniformeentreVCCyGND,porloquetuvequecompensarelvoltajedeentradautilizandoundivisordevoltaje.Estolimitólacorrientehastaelpuntodequeelschmitt(TTL)nofuncionaba.Mástarde,locambiéporunavariantedeCMOSyeliminélasresistencias,perotodavíanoconseguíaunfuncionamientoconfiable.
Miterceraideafueobtenerunmicrocontrolador,específicamenteunPIC12F675,parausarsuADCparaleerdospotenciómetrosy,apartirdeestosvalores,generarunaondacuadradamedianteprogramación.Sinembargo,cuandotraguélosnúmeros,resultópocopráctico.
UnPIC12F675tieneunavelocidadderelojmáximade4MHz.Siasumimosqueocasionalmentetendráquerealizarhasta10instruccionesentreloscambiosdeestadodesalida,yteniendoencuentaqueunaondacompletarequiere2cambiosdeestado,terminamosconunafrecuenciadesalidamáximade200KHz.Estoesalgomásbajodeloqueestababuscando.
Además,aestafrecuenciamáximade200KHz,laMCU(pordefinición)nopodrácambiardeestadomásrápidamente;yporlotanto,elciclodetrabajosefijaráen50%,derrotandoelpropósito.Suponemosquerequerimosalmenosunrangoajustabledel10%al90%,nopodremosgenerarunafrecuenciadesalidademásdeaproximadamente20KHz.Otalvez10KHz.
UsarunaMCUmásrápidanoayudaríamucho.ElATmega328tieneunafrecuenciaderelojmáximade16MHz,loquenosdaríaunasalidadehasta80KHz.Todavíanoesmuyútil.
Micuartaideainvolucródostemporizadores555:unogenerandounaondacuadradaajustableconunciclodetrabajofijo,elotroactuandocomoundisparoparagenerarelciclodetrabajo.Desafortunadamente,elciclodetrabajosemediríaentiempo,enlugardeenporcentaje,y,porlotanto,elajustedelafrecuenciaafectaríaelciclodetrabajo.Además,enelextremoinferiorosuperiordelrangodefrecuencia,laperilladeajustedelciclodetrabajoseríatotalmenteinefectivaparalamayoríadesusviajes.
Miquintaideainvolucróuntemporizador555paragenerarlaondacuadrada(comoarriba),conuncontadorde4017décadasparadividirlasalidaenpartes.Conectarlaprimerasalida,porejemplo,medaríaunciclodetrabajodel10%.Podríacambiarlafrecuenciasinafectarelciclodetrabajo.Sinembargo,hayalgunosproblemasconesteenfoque.
Enprimerlugar,amenosquequisieramoverlospuentesamano,necesitaríaalgunaformadecontrolarlasalidaconunaperilla.Asíqueunmicrocontrolador,entonces.Elmicrocontroladornecesitaríaalgúntipodeconmutadormulticanalprogramable,comoel
Si quisiera un ciclo de trabajo del 25% o 75%, necesitaría agregar a esta lista otro 4017, otro interruptor IC, otro capacitor y alguna forma de cambiar los capacitores mediante programación.