sto realizzando un auto di grosse dimensioni in collegamento con android tramite bluetooth
ho realizzato il codice per il servo e il collegamento e funziona perfettamente
adesso ho comprato una scheda motori dalla cina ,
il problema e che non la capisco
allego la foto della scheda e i relativi parametri
adesso quello che vi chiedo ( vi ricordo che sono alle prime armi )
i collegamenti pwm e dir come li devo fare ?
correggetemi se sbaglio ma teoricamente ammettendo di usare il pin 11 e il pin 12
non ha nessuna importanza su quale va dir o pwm ?
potete darmi un esempio di come collegare e il tipo di codice ?
int forward = 12; // Pin 12 - Forward " mettendo il caso che sia dir "
int reverse = 11; // Pin 11 - Reverse " mettendo il caso che sia pwm "
char val; // Variable to receive data from the serial port
void setup() {
// initialize the digital pins as output
pinMode(forward, OUTPUT);
pinMode(reverse, OUTPUT);
Serial.begin(9600); // Start serial communication at 9600bps
}
// Fordward action
void go_forward() {
digitalWrite(forward, HIGH);
digitalWrite(reverse, LOW);
}
// Stop Forward action
void stop_go_forward() {
digitalWrite(forward, LOW);
}
// Reverse action
void go_reverse() {
digitalWrite(reverse, HIGH);
digitalWrite(forward, LOW);
}
// Stop Reverse action
void stop_go_reverse() {
digitalWrite(reverse, LOW);
che ne dite il mio ragionamento e giusto o sbaglio ?
grazie a chi mi dara una mano
EDIT: modificato titolo del thread (tolto "aiuto!")
Parli di PWM. Se parliamo di PWM, la differenza fra pin 11 e 12 è tanta visto che il pin 12 non ha il PWM. Inoltre nella porzione di codice che hai messo io non vedo nessun pilotaggio in PWM (che si fa con un analogWrite), solo settaggi digitali dei pin (digitalWrite).
Senza un datasheet si fa male, ma secondo quelle note l'integrato vuole un segnale PWM, per darglielo DEVI usare un pin PWM dell'Arduino e poi la funzione analogWrite
int pinDIR = 12; // Pin 12 - dir
int pinPWM = 11; // Pin 11 - pwm
char val; // Variable to receive data from the serial port
void setup() {
// initialize the digital pins as output
pinMode(pinDIR, OUTPUT);
pinMode(pinPWM, OUTPUT);
Serial.begin(9600); // Start serial communication at 9600bps
}
// Fordward action
void go_forward() {
digitalWrite(pinDIR, HIGH);
analogWrite(pinPWM, x); // dove x = valore da 0 a 255 ( 0=fermo , 255=max velocità )
}
// Stop action
void stop_go() {
analogWrite(pinPWM, 0); //
}
// Reverse action
void go_reverse() {
digitalWrite(pinDIR, LOW);
analogWrite(pinPWM, x); // dove x = valore da 0 a 255 ( 0=fermo , 255=max velocità
}
intanto un ringraziamento e' dovuto per la tua tempestivita e gentilezza
poi se ho ben capito dovro usare un pin per il dir e uno per il pwm ok !
un'altra cosa che mi preme sapere e i due pin che verranno usati dovranno perforza essere entrambi pwm ?
cioe mi spiego meglio , tu hai detto che il 12 non e' un segnale pwm lo posso usare come dir
o
dovro usare il pin 10 e 11 facendo diventare il 10 dir e 11 pwm ?
C'è un bug nel forum per cui la cella della tabella centrale che contiene il 1° thread di ogni sezione viene renderizzata male e risulta non cliccabile (te ne accorgi perché c'è una cella vuota proprio sotto alla barra verde con il nome della sezione. Per accederci l'unico modo (al momento) è quello di cliccare sul link dalla sezione "italiano", dove sotto ogni sottosezione si vede il link veloce alla 1° discussione.
I tuoi messaggi "spariscono" perché stamattina ho rimosso una tua discussione che avevi aperta doppia, probabilmente perché pensavi che questa fosse sparita.
link=msg=1936047:
i due pin che verranno usati dovranno perforza essere entrambi pwm ?
cioe mi spiego meglio , tu hai detto che il 12 non e' un segnale pwm lo posso usare come dir
o
dovro usare il pin 10 e 11 facendo diventare il 10 dir e 11 pwm ?
Un pin che ha funzionalità PWM può essere usato anche come pin digitale, ma non viceversa.
I pin PWM sono quelli che sulla scheda di Arduino sono segnati col simbolino "~" accanto al numero. Sulla UNO essi sono: 3, 5, 6, 9, 10, 11.
corso:
La scheda mantiene 15A continui e 30A di picco ma le batterie sono 7A
E il motore è un 24V 200w
Hai sbagliato a dimensionare il Driver. Un motore 24V e 200W consuma ca 8,5A a regime e potenza nominale. La corrente di spunto é facilmente 10 volte piú grande. e quella Ti ha fatto fondere la scheda.
corso:
Ciao Uwe
Ho visto altri motori delle stesse dimensione funzionare con schede da 12A e 25 di picco
Allora da quello che dici dovrei comprare una scheda con 100A di picco
Certo che se non posti un datasheet del motore, o almeno modello e produttore, e un data sheet del controller che stai usando è impossibile aiutarti.
Uwe ha ragione un motore da 200W, massimi o rated ?, può tranquillamente richiedere oltre 50A di spunto a 24V.
Li ho aggiunto io
Ma il problema è che quanto ho attaccato il più alla batteria è come se fosse andato in corto fumo nel filo
Motore che che gira e si ferma come frenato e fuoco sui mosfet
Brunello:
ma in quella scheda le alette di raffreddamento erano un optional ?
Usa degli IRF3205, poi tocca vedere se sono originali o cloni cineseria, hanno una Rdson di solo 8 mohm, con una corrente costante di 10 A dissipano solo 10^2 * 0.008 = 0.8 Watt, non serve nessuna aletta.
Se il motore è quello che ho linkato io nel post precedente è normale che i mos sono esplosi, è un motore da 200 W rated, vuol dire che in fase di avvio si prende tranquillamente oltre 100 A, serve un controllo con limitazione della corrente di spunto se non si vuole bruciare pure il motore oltre al ponte.