dott.cicala Inserita: 18 ottobre 2016 Segnala Share Inserita: 18 ottobre 2016 L'autore non c'è più, ma a me ha fatto nascere una curiosità, come spesso accade leggendo le discussioni sul forum, che ho dovuto assolutamente soddisfare e così, ecco il risultato finale Ho dovuto semplificare perchè il pic usato faceva fatica a calcolarsi i 3 array coeffR[Angolo]=(Offset+(Offset*(sin((float)((Angolo*pi)/180))))); coeffS[Angolo]=(Offset+(Offset*(sin((float)((120+(Angolo*pi))/180))))); coeffT[Angolo]=(Offset+(Offset*(sin((float)((240+(Angolo*pi))/180)))));; quindi, ho eseguito i calcoli in excell ottenendo 3 tabelle da 30 campioni che rappresentano il valore del duty cycle di ogni pwm per ogni passo di 12° int R[30]={511,619,721,813,895,956,1002,1022, 1022,1002,956,895,813,721,619,517, 404,302,210,128,67,21,0,0,21, 67,128,205,302,399}; int S[30]={956,895,813,721,619,517,404,302, 210,128,67,21,0,0,21,67,128,205, 302,399,506,619,721,813,895,956, 997,1022,1022,1002}; int T[30]={67,21,0,0,21,67,128,205,302,399, 506,619,721,813,895,956,997,1022, 1022,1002,956,895,818,726,624,517, 404,302,210,133}; Di conseguenza la routine che viene eseguita in interrupt è molto snella //############################################################################## // Interrupt Routine //############################################################################## void interrupt(){ if(INTCON.TMR0IF) { Angolo=Angolo+1; if(Angolo>29)Angolo=0; PWM1DC = R[Angolo]; PWM2DC = S[Angolo]; PWM3DC = T[Angolo]; PWMLD =0x7; TMR0 = 174; INTCON.TMR0IF = 0; } } e questo è il risultato e rimane abbastanza spazio per fare altro Link al commento Condividi su altri siti More sharing options...
dnmeza Inserita: 18 ottobre 2016 Segnala Share Inserita: 18 ottobre 2016 Stefano, oltre che, pignolo, professionista, sei anche BRAVO, non lasciando nulla d'intentato, vuoi sempre arrivare allo scopo, Complimenti Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 18 ottobre 2016 Segnala Share Inserita: 18 ottobre 2016 Troppo buono...grazie Nel frattempo...la forma d'onda e il livello d'uscita migliorano ulteriormente ponendo R=10K C=470nF. Misurando la distorsione con la red mi fornisce un bel 0.8% ...e devo fidarmi perché non ho un vero distorsimetro Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 19 ottobre 2016 Segnala Share Inserita: 19 ottobre 2016 Tutto bello Stefano, peccato che chi ha aperto la discussione sia sparito dopo il primo messaggio. Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 19 ottobre 2016 Segnala Share Inserita: 19 ottobre 2016 Quote peccato che chi ha aperto la discussione sia sparito dopo il primo messaggio Pazienza Vorrà dire che non continuerò con eventuali miglioramenti. Pensavo di non sprecare i pins liberi e creare un segnale di sincronismo...e rendere variabile la frequenza da 8 a 110Hz.... ...sarà per un'altra volta Link al commento Condividi su altri siti More sharing options...
morgan.106 Inserita: 24 ottobre 2016 Autore Segnala Share Inserita: 24 ottobre 2016 Eh ma non posso allontanarmi un mesetto che mi date per disperso :-D ! Scherzi a parte siete straordinari tutti! Alcune soluzioni sono davvero interessanti ma molto sofisticate al punto da dover scegliere quella del motore trifase. È una soluzione che mi garantisce la riuscita. Quanto scritto data voi non è certo vano.... rimane a disposizione di tutti. Grazie. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 24 ottobre 2016 Segnala Share Inserita: 24 ottobre 2016 Scopo del forum è, soprattutto la circolazione di idee. Una domanda spesso porta a speculazioni intellettuali (tanto per usare parole grosse ) che propongo soluzioni differenti. Link al commento Condividi su altri siti More sharing options...
morgan.106 Inserita: 25 ottobre 2016 Autore Segnala Share Inserita: 25 ottobre 2016 La penso come Lei, è da stimolo per tutti. Si può solo crescere in questo gruppo. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora