E me lo chiedi? Vai con gli IGBT Quello che ti consiglio però è di lasciar perdere il ponte di fortuna... mi gioco un caffè che non è pilotato come dovrebbe! Fai un bel circuitino ed utilizza i driver che ti abbiamo dato... Vedrai che allora tutto andrà bene.
Kekko
--------------- L'universo è dominato dagli estremi, l'infinitamente grande e l'infinitamente piccolo. Ma l'equilibrio è ciò che plasma la materia di cui siamo fatti. by kekko
azzzz.. mi hai spillato un caffè ... ma come hai fatto ad indovinare a 700km di distanza?? (vabbe lo so è come sparare sulla crocerossa..)
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
comunque ho rifatto i conti ed un motore con 20cm di lunghezza attiva (un alternatore ha solo 2,5cm di lunghezza attiva!!!!!!!!!) e di 20cm di diametro che gira velocemente (molto) , con 12 poli e 0,5T nel gap non ha limiti precisi di potenza il limite dipende solo dalla capacità di raffreddamento dagli isolamenti dalla precisione e robustezza meccanica.
Comunque peccato che il rame conduca così così, poco per questi tipi di motori aspetteremo il grafene (campacavallo..)
I materiali magnetici sono al massimo e sono anche debolucci per queste applicazioni
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
oggi abbiamo riprovato con un apparato che crea un impulso variabile , la frequenza aumenta ma comunque non siamo ancora al punto è difficile farsi capire
riporto il programma aggiustato dall'informatico e dal giovane
/* Arduino 101: timer and interrupts Timer1 compare match interupts Example more infos: www.letmakerobots.com/node/28278 created by RobotFreak */
Modificato da NonSoloBolleDiAcqua - 21/5/2013, 15:44
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
... la frequenza aumenta ma comunque non siamo ancora al punto è difficile farsi capire
Difficile farsi capire? Hahhahahah... sei capitato in un forum che è covo di elettronici-informatici, come i giocatori di scacchi, ci è estremamente facile prevedere ogni futura mossa...più o meno come quando i professori facendo fare gli esercizi già sanno quali errori faranno i loro studenti...però è grande la soddisfazione nel vedere coloro che vanno dritti senza cadere...ed è una gioia incommensurabile vedere quando qualcuno tira fuori nuove strade.
PS: L'apertura della seriale mi suona strana messa nel loop... cmq non effettuando log ... è indifferente. Potreste, sempre se è lecito il suggerimento, mettere l'apertura della seriale nel setup() e visualizzare i valori di T e Pw sul pc (mediante una Serial.write) ...in modo da avere un riscontro. Questa sera guardo il codice con calma...vedo se,a livello teorico, fa quello che vorreste che faccia...un controllo in più non fa mai male...anche se non ho mai posseduto un arduino hhahhahaa Intanto chiamiamo i rinforzi...Elettro....Elettro!
Modificato da NonSoloBolleDiAcqua - 21/5/2013, 16:45
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
quello che non viene compreso è che negli intervalli di tempo in cui non c'è l'impulso l'alvvolgimento deve essere libero, i quattro interruttori devono essere comandati separatamente e si deve essere certi che se non sono comandati lascino libero (su impedenza infinita) l'avvolgimento e non lo forzano a massa o simili, cosa che imporrebbe al motore di frenare
dal punto di vista logico l'alimentazione è simile a quella del Bedini, in cui si comanda l'avvolgimento tramite il collettore di un transistor. Quando il transistor non è pilotato il collettore ha impedenza infinita e l'avvolgimento è libero di generare la sua fem con corrente praticamente nulla e non frena
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
Posto parte dell'analisi del buon ElettroshockNow ( )...può essere sicuramente utile segnalarla perchè problemi del genere possono avvenire anche se il tutto 'funziona'...tutto va .... ma va perchè la natura ( che interpreta i nostri desideri) ci è benevola. Inoltre ha segnalato una ulteriore anomalia che sto cercando di verificare...4 oci is meglio de 2
Ho testato il codice ed ecco i risultati:
Frequenza minima 7,8Hz Frequenza massima 975Hz
L'aumento della frequenza risulta logaritmico ,quindi step molto ristretti a bassi valori..
Ho in aggiunta riscontrato un errore.
-Erroneamente hanno settato il pin 2 (SwitchPin) come Input ,quindi il segnare generato sarà presente solo sul Pin 3 (MotorPin).
Se viene settato anche il Pin 2 come Output ,il segnale generato sarà presente sia sul Pin2 che sul Pin3 ,ma in opposizione di fase....
Cerco di buttare giù un qualcosa di più esplicativo...cercando di non dire cretinate!
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
Facendo una prina analisi a livello di codice, sempre a meno di errori di interpretazione, otteniamo il grafico posto in allegato. L'anomalia segnalata da Elettro me la ritrovo anche io...noto che l'alimentazione del motore, anche se gestito in modalità negata, non combacia con lo switchPin ( che tra parentesi non è settato come uscita). Quindi il tutto dovrebbe funzionare solo perchè lo switch pin è mantenuto a livello alto e il Motore viene abilitato con un solo gradino....quindi mi sento di dire che il motore funge per ...una concomitanza di eventi.
[CENTER]
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
Andrebbero fatte , sempre se non sono stati fatti errori di interpretazione, sul codice delle correzioni.
In allegato è presente il grafico di come gestire le due uscite. Il PinSwitch andrebbe inviato uno sul ponte A ed il negato su B, mentre il motorpin è quello che alimenta il ponte.
1. Sostituire pinMode(switchPin, OUTPUT); al posto di pinMode(switchPin, INPUT); 2. Sostituire la ISR con la ISR riportata per avere la gestione del motorPin come da grafico
CODICE
ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine
{
switch(Status)
{
case 0:
{
digitalWrite(motorPin, HIGH); // toggle LED pin
digitalWrite(switchPin, LOW); // toggle LED pin
Status = 1;
}
break;
case 1:
{
if(Cmp >= Pw)
{
digitalWrite(motorPin, LOW); // toggle LED pin
Status = 2;
}
}
break;
case 2:
{
if(Cmp>=T/2)
{
digitalWrite(switchPin, HIGH); // toggle LED pin
digitalWrite(motorPin, HIGH);
Status = 3;
}
}
break;
case 3:
{
if(Cmp>=(T/2+Pw))
{
digitalWrite(switchPin, LOW);
digitalWrite(motorPin, LOW); // toggle LED pin
Status = 4;
}
}break;
case 4:
{
if(Cmp>=T)
{
Cmp = 0;
Status = 0;
}
}
}
Cmp++;
}
Andrà meglio?
--------------- Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux). Un risultato se non è ripetibile non esiste (by qqcreafis).
non sono riuscito a capire bene come funzionano i timerma comunque questa è la mia versione per 4 comandi separati ai rami del ponte (si deve notare che ho messo i rami con uscita all'emettitore come negli amplificatori quindi il ramo basso è "pnp" e si spegne con comando alto e si accendecon comando basso , il ramo superiore è "npn" e si accende con comando alto , e si spegne con comando basso)
//#define ledPin 13 #define enablePin 13
#define Pin 1 // Pin 1 ACCENDE BASSO SINISTRA H SE 0 #define Pin 2 // Pin 2 ACCENDE ALTO SINISTRA H SE 1 #define pin 3 // Pin 3 ACCENDE BASSO DESTRA H SE 0 #define Pin 4 // Pin 4 ACCENDE ALTO DESTRA H SE 1
// Pin 1 ACCENDE BASSO SINISTRA H SE 0 // Pin 2 ACCENDE ALTO SINISTRA H SE 1 // Pin 3 ACCENDE BASSO DESTRA H SE 0 // Pin 4 ACCENDE ALTO DESTRA H SE 1
//#define switchPin 2 //#define motorPin 3
int Cmp = 0; int T = 1000; // periodo del treno di impulsi int Status = 0; //variaibli di stati int Pw = 5; //Ampiezza dell'impulso int contatore = 0;
ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine
switch(Status) { case 0: {
// Pin 1 ACCENDE BASSO SINISTRA H SE 0 // Pin 2 ACCENDE ALTO SINISTRA H SE 1 // Pin 3 ACCENDE BASSO DESTRA H SE 0 // Pin 4 ACCENDE ALTO DESTRA H SE 1
digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0 digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0 digitalWrite(Pin3, HIGH); // SPEGNE BASSO DESTRA H SE 1 digitalWrite(Pin4, HIGH); // ACCENDE ALTO DESTRA H SE 1
Status = 1; }break; case 1: { if(Cmp >= Pw) {
digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0 RIMANE A MASSA digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0 digitalWrite(Pin3, HIGH); // SPEGNE BASSO DESTRA H SE 1 digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0
Status = 2; } }break; case 2: { if(Cmp>=T/2) {
digitalWrite(Pin1, HIGH); // SPEGNE BASSO SINISTRA H SE 0 digitalWrite(Pin2, HIGH); // ACCENDE ALTO SINISTRA H SE 1 digitalWrite(Pin3, LOW); // ACCENDE BASSO DESTRA H SE 1 digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0
//digitalWrite(switchPin, HIGH); // toggle LED pin Status = 3; } }break; case 3: { if(Cmp>=(T/2+Pw)) {
digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0 digitalWrite(Pin3, HIGH); // SPEGNE BASSO DESTRA H SE 1 digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0
digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0 E RIMANE A MASSA
//digitalWrite(switchPin, LOW); Status = 4; } }break; case 4: { if(Cmp>=T) { Cmp = 0; Status = 0; } } } Cmp++; }
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
Controllato il SW e ha passato il controllo qualità ....quindi se sistemi i mode pin da 2 a 4 dovrebbe essere tutto ok! Per il Timer usi (giustamente) il prescaler ...ed ogni x microsecondi viene chiamata la funzione ISR...e quella incrementa la variabile Cmp la quale modifica lo Stato (*)del motore...ed ora non fa una 'grinzetta' Ciao
ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine
cosa significa di preciso?
Modificato da qqcreafis - 23/5/2013, 15:29
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
Ma perchè complicarsi la vita? La soluzione a collettore comune presenta diversi ostacoli e qualche problema... La soluzione che devi utilizzare per non far rompere i poveri transistor è quella ad emettitore comune, cioè questa:
Immagine Allegata: ponte qq giusto
--------------- L'universo è dominato dagli estremi, l'infinitamente grande e l'infinitamente piccolo. Ma l'equilibrio è ciò che plasma la materia di cui siamo fatti. by kekko
soluzione che devi utilizzare per non far rompere i poveri transistor è quella ad emettitore comune, cioè questa:
sisi mi avevano detto proprio così, ma l'avevo già saldato , poi se funziona con il nuovo soft lo modifico ( e rimodifico il software). iI nuovo ponte con igbt che voglio far fare al giovane verrà in questa configurazione ? (conosco pochissimo gli igbt)
Modificato da qqcreafis - 23/5/2013, 15:26
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.