Pilotare scheda motori

salve ragazzi come da titolo

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).

Di che scheda parliamo? Hai un link?

ciao leo
grazie per la tua risposta lampo

allora mettiamo il caso di usare il pin 10 e 11

quindi basta usare analogwrite al posto di digita ?

hai visto l'allegato che ne pensi ?

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

quindi l'esempio che hai scritto tu, diventa:

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à 
}

corso:
salve ragazzi

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

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 ?

nid69ita

gia mi ero presentato in precedenza
ma non capisco perche i miei messaggi tendono a sparire dal forum

figurati che per rileggere il mio post l´ho dovuto inserire sui preferiti

perche accedendo al forum normalmente non riesco a trovare il mio post

non so il perche

ti ringrazio anticipatamente se mi dai spiegazione

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. :wink:

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.

Ti ringrazio Tanto per la tua disponibilta e gentilezza e nel modo in cui spieghi le cose in modo semplice che anche un inesperto riesce a capire

Penso che questa settimana farò il tutto è proverò poi ti farò sapere se va a buon fine o no

Ovviamente se non andrà a buon fine ruberó un altro Po del tuo tempo

Grazie ancora

Ciao Leo
Purtroppo è nato un grosso problema

Collegato il tutto i mosfet sono andati in fiamme

Non so il motivo
Può dipendere dal codice ?

I collegamenti li ho rivisti più di una volta è sono tutti giusti

La scheda mantiene 15A continui e 30A di picco ma le batterie sono 7A
E il motore è un 24V 200w

Quando ho collegato il motore ha fatto un giro poi si è stoppato ed i mosfet in fiamme

Ho riprovato nel secondo lato della scheda ma identico problema . Il motore gira anche qua ma poi Bloom

Ho provato il motore solo con le batterie ed è tutto ok

Che succede ?

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.

Ciao Uwe

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

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.

Il motore lo acquistato su ebay 24v 200w segna sulla etichetta 11A
Il motore è di tipo electroscooter

La scheda è questa
http://de.aliexpress.com/item/3-36v-15A-Dual-Motor-Driver-Module-H-Bridge-PWM-Control-Fast-Accurate-Braking-MOSFET-free/659594978.html

ma in quella scheda le alette di raffreddamento erano un optional ?

Costano troppo ;D

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

Il motore è questo ?

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.