generatore di rampa pwm

Salve a tutti ho un problema ho la necessità di programmare un pic con una rampa in pwm esempio con al chiusura di un contato parte cuna rampa in pwm da 0 ad z hrz ( inferiore ad 20 khrz) quando rilascio un contatto la rampa va da hz dove si trova sino a 0 hrz pensavo di utilizzare un 12f509 pero non ho idea da dove cominciare mi dareste un qualche suggerimento ringrazio sin dora per il vostro cortese aiuto

Reply to
<jo_me_69
Loading thread data ...

Forse intendevi:

Solitamente il uC lo si scegli in base al numero di I/O e al tipo di I/O che servono per raggiungere le proprie finalità. Altro termine di valutazione è il core del processore di cui devi conoscere le istruzioni o eventuali linguaggi del tool di sviluppo che vorresti eventualmente sposare. Terzo il prezzo, potrebbe essere anche il primo elemento di valutazione se il progetto che intendi realizzare prevede uno sbocco commerciale.

Suggerimenti sulla programmazione sono a mio avviso prematuri se non altro perchè stai chiedendo una cosa assai "banale" che solitamente viene insegnata e accompagna solitamente agli esempi di base della programmazione di un uC.

Credo che tu non abbia neppure mai acquistato un ambiente di sviluppo, quindi per cominciare metterei ordine alle idee, farei un piano iniziale di accostamento alla programmazione, acquisterei un kit XY per iniziare (può quasi essere ininfluente) e con calma andrei a sviscerare i programmi dimostrativi inclusi nel kit, il resto sarà una passeggiata (sempre che non voglia cimentarti su progetti di complessità tipo NASA). Chiedi consiglio sul kit più semplice ed economico nell'area "it.hobby.elettronica.digitale" probabilmente sarà Arduino o comunque similari. Importante è partire! Ciao

--
http://www.voip-info.org/wiki/view/Asterisk+tips+wake-Up+and+Reminder
Reply to
Giovanni1958

scusa hi ragione, ma la mia conoscenza sui pic era limitata alla guida di tanzilli che ho letto una marea di anni fa,ed alla programmazione del 16f84 hai tempi doro di tele+, poi stop assoluto, spiego cosa dovrei fare, dinnanzi tutto penso sia non ( ma forse esiste già ma non l'ho trovata) , commerciale se lo fosse sarebbe per me open sorge , dovrei fare un dispositivo per provare dei driver passo passo, il quale alla pressione di un pulsante 1, ( input ) il pic mi genera una onda quadra ttl , con frequenza 0 hrz, a salire sino ad in massimo di circa

20 khrz, con un duti cicle invariato, ( out ) come rilascio il pulsante 1 la frequenza torna a 0 hrz dalla frequenza a cui era arrivata, la rampa serve ad impedire, che il motore passo passo, non perda i passi , non pensavo di usare un arduino perché troppo ingombrante, ma limitarmi ad un dispositivo, tipo pic perché una volta programmato lo inserisco, in un dispositivo che deve rimanere piccolo , e per ciò che pensavo di un 8 dip , un cordiale grazie per la risposta di giovanni 1958

"Giovanni1958" ha scritto nel messaggio news:jom68m$5pg$ snipped-for-privacy@tdi.cu.mi.it...

Forse intendevi:

Solitamente il uC lo si scegli in base al numero di I/O e al tipo di I/O che servono per raggiungere le proprie finalità. Altro termine di valutazione è il core del processore di cui devi conoscere le istruzioni o eventuali linguaggi del tool di sviluppo che vorresti eventualmente sposare. Terzo il prezzo, potrebbe essere anche il primo elemento di valutazione se il progetto che intendi realizzare prevede uno sbocco commerciale.

Suggerimenti sulla programmazione sono a mio avviso prematuri se non altro perchè stai chiedendo una cosa assai "banale" che solitamente viene insegnata e accompagna solitamente agli esempi di base della programmazione di un uC.

Credo che tu non abbia neppure mai acquistato un ambiente di sviluppo, quindi per cominciare metterei ordine alle idee, farei un piano iniziale di accostamento alla programmazione, acquisterei un kit XY per iniziare (può quasi essere ininfluente) e con calma andrei a sviscerare i programmi dimostrativi inclusi nel kit, il resto sarà una passeggiata (sempre che non voglia cimentarti su progetti di complessità tipo NASA). Chiedi consiglio sul kit più semplice ed economico nell'area "it.hobby.elettronica.digitale" probabilmente sarà Arduino o comunque similari. Importante è partire! Ciao

--
http://www.voip-info.org/wiki/view/Asterisk+tips+wake-Up+and+Reminder
Reply to
<jo_me_69

Il 12/05/2012 15.29, jo_me snipped-for-privacy@hotmail.com ha scritto:

Ciao. Ho visto la risposta di Giovanni1958 e quoto in pieno tutto quanto ti ha già suggerito. Ma giusto per precisazione e, visto che da quanto capisco ti stai avvicinando ora all'elettronica, per non lasciare in te false convinzioni, volevo sottolineare 2 cose:

1) Le unità di misura sono importanti, e l'unità di misura della frequenza di scrive "Hz" (con la maiuscola), e NON "hrz" o "hz" o quant'altro; 2) Quello che vuoi fare tu NON è un PWM. Considerando un'onda quadra, e definito "Duty Cycle" la percentuale di tempo, riferita ad un'onda con periodo (e quindi anche frequenza) costante, in cui il segnale è a livello alto, il PWM è la tecnica per cui si varia appunto il Duty Cycle e non la frequenza (che poi ci siano tecniche che variano entrambi per ora non ci interessa). Tu invece da quanto ho capito vuoi fare uno sweep in frequenza da 0 a Z Hz, suppongo con un Duty Cycle del 50% visto che non lo citi e quindi non dev'essere un parametro critico nella tua applicazione.

Spero di averti dato una mano a chiarire le idee. Per il resto ripeto quanto detto da Giovanni, prendi un kit di sviluppo da non spendere molto e prova ad incominciare a pacioccare su un micro, capirai meglio qual'è il micro che ti serve. Se vuoi andare sui pic prendi uno dei vari programmatori e scarica MPLab ed eventualmente (se non vuoi programmare in assembler) le versioni di prova dei compilatori C.

Ciao!

--
Saluti
Paolo
Reply to
Paolo Squaratti

Non vedo niente di particolare. Dai un'occhiata all'arduino mini, e' veramente molto piccolo. Comunque al di la' del micro per ottenere la quadra a freq. variabile userei un timer 8 o 16 bit con l'interrupt raggiunto il valore preimpostato. Pe la rampa potresti integrare la quadra oppure usare un DAC. Giorgio

Il 13/05/2012 9.09, jo_me snipped-for-privacy@hotmail.com ha scritto:

Reply to
Giorgio

jo_me snipped-for-privacy@hotmail.com ha scritto:

se ti vuoi semplificare la vita, visti i costi attuali dei uC PIC di piccole dimensioni, prendine uno che abbia la funzione PWM hardware. e con un software molto semplice riesci a fare quello che tu chiedi.....in C è meglio, altimenti in ASM

Reply to
emilio

Il 13/05/2012 9.09, jo_me snipped-for-privacy@hotmail.com ha scritto:

visto che parli di duty invariato immagino che i segnali in quadratura li generi il driver e che col tuo segnali dai semplicemente l'incremento di passo allo stepper.

Prima questione è una osservazione/domanda da ignorante: se adotti la soluzione col micro sii certo che arrivi a 20kHz sull'uscita. Meglio un micro con un output compare su un timer (come suggerito da Giorgio)

Secondo: ma se a te serve solo questa onda quadra a duty costante e il suo sweep...non è che risolvi meglio senza micro? ...un paio di ne555 e qualche operazionale...

Ciao Ste

--
Ogni problema complicato ha una soluzione semplice...per lo piu` sbagliata
[cit. Franco, i.h.e. 20.01.2007]
Reply to
PeSte

...

Per una cosa cos=EC semplice non hai bisogno di un microcontrollore. E' sufficiente un flip-flop set-reset (anche un paio di porte NAND o un CD4013), due pulsanti, una rete RC e un VCO (il CD4046 =E8 perfetto). Oppure un paio di NE555 (oppure un NE556 che ne contiene due).

Piccio.

Reply to
Piccio

Errata corrige: non =E8 cos=EC semplice raggiungere la condizione di zero- Hz... :-( Meglio svilupparlo con qualche OpAmp.

Piccio.

Reply to
Piccio

"Giorgio" ha scritto nel messaggio news:4faf948b$0$1587$ snipped-for-privacy@news.tiscali.it...

Non vedo niente di particolare. Dai un'occhiata all'arduino mini, e' veramente molto piccolo. Comunque al di la' del micro per ottenere la quadra a freq. variabile userei un timer 8 o 16 bit con l'interrupt raggiunto il valore preimpostato. Pe la rampa potresti integrare la quadra oppure usare un DAC. Giorgio ciao Giorgio grazie per la tua risposta, mi era passata pure a me l'dea di fare un VFO, con un condensatore in carica e scarica, ma inizialmente l'avevo scartata perchè troppo macchinoso, ma riflettendo .... grazie giorgio

Il 13/05/2012 9.09, jo_me snipped-for-privacy@hotmail.com ha scritto:

Reply to
edison

ciao peste grazie per la tua riposta il segnale di onda quadra in ttl non la venera il driver pp. ma usa questa onda quadra come clock il duti cicle non è moto importante che puo essere 50 % 25% 12% al driver pp questo non ha in gran valore , il driver funziona in sostanza con una frequenza, meglio se in onda quadra , in genere i driver stepper vengono dichiarati come massima frequenza 20kHz, ma ve ne sono alcuni cinesi dichiarato 200kHz massimi, come sarebbe a dire i 2 timer 555 ed un operazionale ?? hai una sorta di schema grazie sono curioso

"PeSte" ha scritto nel messaggio news:jooujo$7o0$ snipped-for-privacy@tdi.cu.mi.it...

Il 13/05/2012 9.09, jo_me snipped-for-privacy@hotmail.com ha scritto:

visto che parli di duty invariato immagino che i segnali in quadratura li generi il driver e che col tuo segnali dai semplicemente l'incremento di passo allo stepper.

Prima questione è una osservazione/domanda da ignorante: se adotti la soluzione col micro sii certo che arrivi a 20kHz sull'uscita. Meglio un micro con un output compare su un timer (come suggerito da Giorgio)

Secondo: ma se a te serve solo questa onda quadra a duty costante e il suo sweep...non è che risolvi meglio senza micro? ...un paio di ne555 e qualche operazionale...

Ciao Ste

--
Ogni problema complicato ha una soluzione semplice...per lo piu` sbagliata
[cit. Franco, i.h.e. 20.01.2007]
Reply to
edison

ciao paolo grazie per la tua correzione , perdona la mia ignoranza ma sono un auto didatta

"Paolo Squaratti" ha scritto nel messaggio news:4faf944a$0$1579$ snipped-for-privacy@news.tiscali.it...

Il 12/05/2012 15.29, jo_me snipped-for-privacy@hotmail.com ha scritto:

Ciao. Ho visto la risposta di Giovanni1958 e quoto in pieno tutto quanto ti ha già suggerito. Ma giusto per precisazione e, visto che da quanto capisco ti stai avvicinando ora all'elettronica, per non lasciare in te false convinzioni, volevo sottolineare 2 cose:

1) Le unità di misura sono importanti, e l'unità di misura della frequenza di scrive "Hz" (con la maiuscola), e NON "hrz" o "hz" o quant'altro; 2) Quello che vuoi fare tu NON è un PWM. Considerando un'onda quadra, e definito "Duty Cycle" la percentuale di tempo, riferita ad un'onda con periodo (e quindi anche frequenza) costante, in cui il segnale è a livello alto, il PWM è la tecnica per cui si varia appunto il Duty Cycle e non la frequenza (che poi ci siano tecniche che variano entrambi per ora non ci interessa). Tu invece da quanto ho capito vuoi fare uno sweep in frequenza da 0 a Z Hz, suppongo con un Duty Cycle del 50% visto che non lo citi e quindi non dev'essere un parametro critico nella tua applicazione.

Spero di averti dato una mano a chiarire le idee. Per il resto ripeto quanto detto da Giovanni, prendi un kit di sviluppo da non spendere molto e prova ad incominciare a pacioccare su un micro, capirai meglio qual'è il micro che ti serve. Se vuoi andare sui pic prendi uno dei vari programmatori e scarica MPLab ed eventualmente (se non vuoi programmare in assembler) le versioni di prova dei compilatori C.

Ciao!

--
Saluti
Paolo
Reply to
edison

ciao emilio grazie per la tua risposta a lume di naso mi sai suggerire un pic con la funzione PWM hardware incorporata grazie

"emilio" ha scritto nel messaggio news:jooner$243$ snipped-for-privacy@tdi.cu.mi.it...

jo_me snipped-for-privacy@hotmail.com ha scritto:

se ti vuoi semplificare la vita, visti i costi attuali dei uC PIC di piccole dimensioni, prendine uno che abbia la funzione PWM hardware. e con un software molto semplice riesci a fare quello che tu chiedi.....in C è meglio, altimenti in ASM

Reply to
edison

Il 13/05/2012 22.31, edison ha scritto:

scusa ma non capisco dove finisce questo segnale...hai uno schema applicativo? che driver sono? datasheet? se 20kHz vanno direttamente al driver...non sono gli incrementi di passo direi...

Ste

--
Ogni problema complicato ha una soluzione semplice...per lo piu` sbagliata
[cit. Franco, i.h.e. 20.01.2007]
Reply to
PeSte

Il 13/05/2012 09:09, jo_me snipped-for-privacy@hotmail.com ha scritto:

C'è un motivo particolare per cui cerchi di realizzare il dispositivo tramite microcontrollore? Visto che ti serve solo per provare i passo-passo una soluzione più veloce e flessibile è di realizzare un'interfaccia parallela come per le cnc. Si tratta solo di inserire un buffer su un pin della parallela. O su 2-3 pin nel caso vuoi provare più motori assieme.

Poi utilizzi Mach3

formatting link
versione free per fare muovere il motore.

Hai il vantaggio di avere un circuito semplicissimo e senza logica programmabile. Molto più flessibile perché puoi cambiare al volo il profilo delle rampe e la velocità massima senza dover riprogrammare il micro. Puoi anche creare un semplicissimo G-Code per fare dei test più complessi: es. muovi lento avanti e indietro, poi veloce avanti e indietro, ecc...

Se invece vuoi proprio usare un micro, direi che uno qualsiasi va bene. Tutti hanno un timer. Non serve altro che invertire lo stato dell'uscita

- 1 istruzione - quando il timer va in overflow (o compare, a seconda del tipo, ma il concetto non cambia) e generare la rampa, cioè cambiare quando il tasto è premuto. Un'altra manciata di istruzioni.

La via che seguirei è impostare il timer affinché generi un interrupt alla frequenza doppia di quella massima prevista.

Poi nella routine di interrupt incrementi una variabile. Quando diventa uguale a quella di riferimento la azzeri e inverti l'uscita. Quella di riferimento la decrementi fino a 0 ogni x ms (a seconda della pendenza che vuoi della rampa) se il tasto è premuto, viceversa la incrementi fino a un valore massimo quando il tasto è rilasciato.

Marco

Reply to
Marco Trapanese

Il 14/05/2012 08:27, Marco Trapanese ha scritto:

Ho dimenticato un "almeno". Più alta è la frequenza della base dei tempi migliore è la granularità quando ti avvicini al limite.

Marco

Reply to
Marco Trapanese

Ciao Piccio, visto quello che ne deve fare lo zero Hz lo può ottenere spegnendo il tutto, l'importante è che avvendendo si parta da una frequenza ragionevolmente bassa

Ste

--
Ogni problema complicato ha una soluzione semplice...per lo piu` sbagliata
[cit. Franco, i.h.e. 20.01.2007]
Reply to
PeSte

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.