Pages: [1] 2 3   Go Down
Author Topic: Motor Shield R3 e problemi di temperatura  (Read 4266 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sto facendo qualche prova con degli step motor, collego questo motore:
http://robot-italy.com/it/39byg013-nema-17-bipolar-20mm-stepper.html

ad Motor shield rev3 uso il codice sotto.

Tutto funziona correttamente il motore fa un giro in senso orario ed uno antiorario, in accordo con la velocità che specifico nel codice. (myStepper.setSpeed(100)smiley-wink
Alimento lo shield con un alimentatore esterno a 9V.

L'unica cosa è che scalda terribilmente, in tempo 1/2 minuti il chip non si tocca e scalda TANTISSIMO anche il motore? qualche suggerimento?


Code:
#include <Stepper.h>

 const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
 const int pwmA = 3;
 const int pwmB = 11;
 const int brakeA = 9;
 const int brakeB = 8;
 const int dirA = 12;
 const int dirB = 13;                             // for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 12,13);           

void setup() {
   myStepper.setSpeed(100);
   Serial.begin(9600);
   pinMode(pwmA, OUTPUT);
   pinMode(pwmB, OUTPUT);
   pinMode(brakeA, OUTPUT);
   pinMode(brakeB, OUTPUT);
   digitalWrite(pwmA, HIGH);
   digitalWrite(pwmB, HIGH);
   digitalWrite(brakeA, LOW);
   digitalWrite(brakeB, LOW);
}

void loop() {
    myStepper.step(200);
    delay(1000);
    myStepper.step(-200);
    delay(1000);
   
    Serial.print("A0:");
    int a0 = analogRead(A0);
    int a1 = analogRead(A1);
    Serial.print(a0);
    Serial.print(" A1:");
    Serial.println(a1);
}
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao kurtommy, sbaglio o almeno un paio di volte ti è stato gentilmente chiesto di aprire questi Topic nelle specifiche sezioni? Inoltre 3-4gg fa ne hai aperto un'altro sullo stesso argomento, non potevi continuare a scrivere lì? Ognuno di noi deve dare il proprio contributo, non è giusto costringere il MOD a fare questo super-lavoro ogni santo giorno di spostare i Topic perché non stiamo accorti.
Ho da farti un paio di domande sul tuo problma, maaspetto di leggere la domanda nella giusta sezione. Grazie.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Offline Offline
Newbie
*****
Karma: 13
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non disperare Michele  smiley-wink smiley-wink smiley-wink
Ciao Uwe
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

kurtommy leggi con attenzione le specifiche del motore:
6,8Ohm e 0,4A per fase.
Tu lo alimenti con 9V. Penso che il L298 sulla motor shield sopravive ma il motore no.
Suggerimento: Attieniti alle specifiche. Alimenta il shield in modo che il motore assorbe 0,4A.

Ciao Uwe
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao kurtommy, sbaglio o almeno un paio di volte ti è stato gentilmente chiesto di aprire questi Topic nelle specifiche sezioni? Inoltre 3-4gg fa ne hai aperto un'altro sullo stesso argomento, non potevi continuare a scrivere lì? Ognuno di noi deve dare il proprio contributo, non è giusto costringere il MOD a fare questo super-lavoro ogni santo giorno di spostare i Topic perché non stiamo accorti.
Ho da farti un paio di domande sul tuo problma, maaspetto di leggere la domanda nella giusta sezione. Grazie.
Hai super ragione, ho postato nella sezione sbagliata, non ci ho messo attenzione.
Per il fatto di aprire un nuovo post l'ho fatto perchè la domanda adesso era diversa e pensavo che fosse giusto farlo per non scrivere cose fuori tema! e meglio qundi che scrivo sempre nel solito allora?!
GRAZIE
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

kurtommy leggi con attenzione le specifiche del motore:
6,8Ohm e 0,4A per fase.
Tu lo alimenti con 9V. Penso che il L298 sulla motor shield sopravive ma il motore no.
Suggerimento: Attieniti alle specifiche. Alimenta il shield in modo che il motore assorbe 0,4A.

Ciao Uwe

Ho letto le specifiche del motore ma avevo anche letto questo nelle specifiche del Motor shield:Operating Voltage: 5V to 12V.
Come devo fare per attuare questo tuo suggerimento? "Alimenta il shield in modo che il motore assorbe 0,4A."
Legge di Ohm? V = R* I -> 6.8 * 0.4 = 2.72 V ? (sicuramente ho detto una bomba!)

Grazie per le risposte
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao kurtommy, sbaglio o almeno un paio di volte ti è stato gentilmente chiesto di aprire questi Topic nelle specifiche sezioni? Inoltre 3-4gg fa ne hai aperto un'altro sullo stesso argomento, non potevi continuare a scrivere lì? Ognuno di noi deve dare il proprio contributo, non è giusto costringere il MOD a fare questo super-lavoro ogni santo giorno di spostare i Topic perché non stiamo accorti.
Ho da farti un paio di domande sul tuo problma, maaspetto di leggere la domanda nella giusta sezione. Grazie.
Hai super ragione, ho postato nella sezione sbagliata, non ci ho messo attenzione.
Per il fatto di aprire un nuovo post l'ho fatto perchè la domanda adesso era diversa e pensavo che fosse giusto farlo per non scrivere cose fuori tema! e meglio qundi che scrivo sempre nel solito allora?!
GRAZIE
Basta appunto un po' di attenzione in futuro, per ora ci ha pensato UWE. L'argomento è uguale, cambia la problematica, quindi puoi benissimo restare in casi del genere in un Topic aperto in precedenza, ormai è fatta.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

kurtommy leggi con attenzione le specifiche del motore:
6,8Ohm e 0,4A per fase.
Tu lo alimenti con 9V. Penso che il L298 sulla motor shield sopravive ma il motore no.
Suggerimento: Attieniti alle specifiche. Alimenta il shield in modo che il motore assorbe 0,4A.

Ciao Uwe

Ho letto le specifiche del motore ma avevo anche letto questo nelle specifiche del Motor shield:Operating Voltage: 5V to 12V.
Come devo fare per attuare questo tuo suggerimento? "Alimenta il shield in modo che il motore assorbe 0,4A."
Legge di Ohm? V = R* I -> 6.8 * 0.4 = 2.72 V ? (sicuramente ho detto una bomba!)

Grazie per le risposte
mah, il tuo ragionamento sembra corretto, la prova che puoi fare è appunto alimentare direttamente il motore a 3V e vedere come si comporta, se non scalda e lavor correttamente, a quel punto devi dimensionare correttamente il motor shield che, però, a quanto leggo, vuole minimo 5V.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

questo alimentatore ha tensione variabile, se lo metto a 6V, non so per quale motivo ma invece di fare un giro in un senso ed uno in un altro, continua a farli nel solito verso, se aumento la tensione, riprende a fare come descritto nello sketch.
Idee?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma è un alimentatore SERIO o uno di quegli scatolotti 5€/kg col commutatore rotativo 3-4,5-6-7,5-9-12V dichiarati per 1A (o, peggio, 0.5A) e poi in realtà ne danno meno di un terzo con tensione non stabilizzata?
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Penso sia più versione scatolotto!
Ma se serve una tensione così bassa potrei evitare di dargli quella esterna e fare tutto conquella di arduino.
Anche se adesso che ci penso mi pare di ricordare che eroga massimo 0.040A mentre al motore per fase ne servono 0.4A che è 10  volte di più.
Mi consigli quindi di provare un buon alimentatore?
Altrimenti potrei provare a collegarci una cella lipo da 3.7V Per la corrente quelle non hanno certo problema ho 20C a 2200mAh dovrebbe erogare 44Ampere che stra avanazno.
Dico bene?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12576
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora lo scatolotto buttalo e cerca di non lasciare impronte digitali, in modo che non si possa mai sapere che l'hai messo tu in circolazione smiley-mr-green Questi alimentatori erogano tensioni decisamente superiori a quelle nominali, non  stabilizzate, sporche da morire e con correnti ridicole.
L'idea della LiPo è buona, l'alimentazione diretta come prova ti fa capire se il motore smette di riscaldare o comunque se diminuisce tanto.
Arduino come controllore non è in grado di andare oltre 200mA totali e 40mA per pin, quindi niente da fare. Come uscita a 5V invece dovrebbe superare i 300mA, pochi in ogni caso; la tensione esterna ti serve, quindi un buon alimentatore, governato tramite transistor o mosfet da Arduino ed è tutto finito.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK, grazie ho capito tutto meno che questa parte:
"governato tramite transistor o mosfet da Arduino ed è tutto finito."
La soluzione più veloce mi pare comunque quella della batteria (fra poco la provo e ti dico come va). Per l'alimentatore mi sai consigliare qualche modello buono da acquistare? Magari con tensioni variabili e con una corrente decente...
Grazie 1000
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21665
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L' idea della LiPo non mi piace. In caso di corto eroga troppa corrente e rischi di fondere qualcosa o incendiare la LiPo. Un alimentatore limita molto prima la corrente.
Il L298 perde un po di tensione sui transistori. Per avere 2,7V sul Motore serve ca 5V di alimentazione.

Ciao Uwe
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 104
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho fatto una prova al volo con una lipo che ne ho molte disponibili.
Una cella che misura ai capi alimentando arduino e motore 3.94V i valori che leggo dagli ingressi analogici A0 ed A1 sono:
124 e 123
quindi a quanto ho letto dovrebbe essere 1024 pari a 2A quindi facendo la proporzione viene 2*124/1024 = 0,24A assorbiti per ogni ponte H
Giusto ?

Ho fatto anche qualche altra prova con il codice, inserendo pause di 1Millisecondo tra un movimento ed un altro vedo che la corrente assorbita è notevolmente inferiore:
Code:
myStepper.step(200);
  delay(1);
  myStepper.step(-200);
  delay(1);

Leggo sulla seriale
A0:27 A1:84

Ma ancora una domanda, ho sempre letto che le chiamate alle funzioni myStepper.step(); sono bloccanti ovvero fino a quando il movimento non è stato completato il codice non va avanti, ma al momento che effettuo la lettura della corrente assorbita sugli ingressi A0 e A1 il motore è fermo quindi leggo la corrente che passa perchè lo shield tiene comunque alimentato il motore nella fase in cui rimane al compimento dell'ultimo passo? altrimenti sarebbe fermo disalimentato e dovrei leggere corrente = 0 !
« Last Edit: August 20, 2012, 06:27:52 pm by kurtommy » Logged

Pages: [1] 2 3   Go Up
Jump to: