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
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
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
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.
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:
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
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]
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).
"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:
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]
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 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
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]
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.
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]
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.