Transistor BC547 e motorino

Salve, ho un problema con un transistor BC547 in modalità on/off e un motorino dc. Praticamente voglio accendere il motorino alla pressione di un tasto sulla tastiera e spegnerlo alla pressione di un altro. I collegamenti che ho fatto sono questi:

Lo sketch che uso è il seguente:

void setup() {
  pinMode(11, OUTPUT);
  
  Serial.begin(9600);
}

void loop() {
  
  if(Serial.available())
  {
    char s = Serial.read();
    
    switch(s)
    {
      case '1':
                digitalWrite(11, HIGH);
                break;
      
      case '0':
                digitalWrite(11, LOW);
                break;
    }
    
   }
  
}

Il problema è che quando il motorino si attiva, funziona per qualche secondo dopo di che è come se arduino si spegnesse non rispondendo più ai comandi, infatti non riesco più a spegnere il motorino a meno che non riavvio arduino.

Se al posto del motorino collego un led tutto funziona perfettamente.

Ho anche provato a mettere una resistenza da 1kohm sulla base e un diodo sull'emettitore, ma niente..

Cosa c'è che non va?

il transistor è un pnp npn e tu hai messo +9V sul emetitore e gnd sul colettore (ploarizzato sbaglioto secondo il tuo shema).

Ps. sarebbe molto, molto meglio che gli schemi elettrici siano fatti con programmi tipo eagel e okicad o simili o a mano su carta, piuttosto che con freeizing!!

se però è un errore di collegamento, comincierei a mettere un didodo (veloce) in anti parallelo al morore e se non basta qualche filtrino !!

poi dipende anche dal motore che usi, anche se alimentato a batteria da 9Vcc non credo sia una cosa mostruosa vero??

Inoltre manca la resistenza di base.

Martinix:
il transistor è un pnp e tu hai messo +9V sul emetitore e gnd sul colettore (ploarizzato sbaglioto secondo il tuo shema).

Ps. sarebbe molto, molto meglio che gli schemi elettrici siano fatti con programmi tipo eagel e okicad o simili o a mano su carta, piuttosto che con freeizing!!

se però è un errore di collegamento, comincierei a mettere un didodo (veloce) in anti parallelo al morore e se non basta qualche filtrino !!

poi dipende anche dal motore che usi, anche se alimentato a batteria da 9Vcc non credo sia una cosa mostruosa vero??

Scusami ma su quale datasheet hai visto che il BC547 è un PNP? Su tutti quelli che ho trovato io è indicato come NPN, inoltre sono stato proprio io a comprarlo così...

Il motore che uso è un semplice DC delle macchinine.

paulus1969:
Inoltre manca la resistenza di base.

Ho già scritto di aver messo sulla base una resistenza da 1K.

oddio scusami NPN (non pnp..dannata dislessia!!!!)

errore mio a parte, resta valido quanto detto primo (che era riferito a npn)

Ma la batteria serve anche ad alimentare Arduino ? Arduino Uno o Leonardo ?
Magari tra motorino e Arduino, la batteria non riesce a fornire abbastanza ampere ?
Io proverei ad alimentare in maniera separata motorino e Arduino (con GND in comune) tanto per escludere sia questo il problema.

Poi un diodo di protezione sul motore ci va sempre:
https://learn.adafruit.com/assets/2349

nid69ita:
Ma la batteria serve anche ad alimentare Arduino ? Arduino Uno o Leonardo ?
Magari tra motorino e Arduino, la batteria non riesce a fornire abbastanza ampere ?
Io proverei ad alimentare in maniera separata motorino e Arduino (con GND in comune) tanto per escludere sia questo il problema.

Poi un diodo di protezione sul motore ci va sempre:
Adafruit Learning System

Si, la batteria alimenta entrambi. Si tratta di Arduino Leonardo.

Sinceramente mi è sfuggito di fare la prova ad alimentarli separatamente, appena posso lo faccio.

Il diodo l'avevo già messo ma non cambia nulla. Comunque io l'avevo messo in serie il diodo, mentre nello schema che mi hai postato è posto in parallelo al motorino. Cosa cambia?

  1. con una batteria 9V vai poco lontano
  2. il BC547 regge solo 100mA
  3. la resistenza e' obbligatoria

Untitled Sketch 2_bb.jpg

cambia molto.... il diodo in serie serve a poco, il dido in parallelo serve a far "circolare" la corrente immagazzinata dagli induttori del motore su se stessa (crea un percorso di ricircolo) che si esaurisce dopo un tot. e protegge il transistor e limita gli spike. il problema è che deve essere un diodo veloce se metti un 1n4001 serve a pco, in quanto lento, specie sui tempi di recupero/conduzione

odio frizing :smiling_imp: :smiling_imp:

Va bene, vi ringrazio di tutti i consigli. Appena posso provo e poi vi faccio sapere.

walter4991:
...
http://arduino.cc/documents/datasheets/BC547.pdf
...

Appunto ... guarda bene i terminali ... l'emettitore va a massa, il collettore va al carico (motore), l'altro capo del carico va al positivo, la base va al pin di arduino tramite una resistenza da almeno 1K ... se il disegno che hai postato e' corretto, hai invertito l'alimentazione fra carico e transistor (perche' sul tuo disegno l'emettitore e' collegato al positivo, il collettore al motore e l'altro capo del motore al negativo, cioe' alla rovescia ;)), e non hai messo la resistenza sulla base ...

Inoltre i motori elettrici a spazzole generano disturbi, non e' mai una buona cosa collegarli all'alimentazione delle logiche senza metterci dei filtri o dei condensatori ... andrebbero collegati attraverso una cosa del genere di quella allegata ...

antidisturbo.png

Etem aggiungi anche Schottky allo schema. :grin:

Scusassero.... ma quel "massa" che è, visto che il motorino ha 2 fili + e - ?!? :blush:
Un filo dalla scocca del motore stesso ?

Si, la scocca in metallo che è considerata massa. Da non confondere con Terra, Ground o GND.

PaoloP:
Si, la scocca in metallo che è considerata massa. Da non confondere con Terra, Ground o GND.

Ci saldi un bel filo ? ;D ::slight_smile:

No, prendi i reofori dei condensatori e li saldi con un po' di stagno direttamente sulla cassa metallica.
Non serve il filo.

PaoloP:
No, prendi i reofori dei condensatori e li saldi con un po' di stagno direttamente sulla cassa metallica.
Non serve il filo.

Ah, ok. Vero. L'ho visto fatto così su un pò di motorini smontati da vecchi fax, stampanti, etc.

PaoloP:
Etem aggiungi anche Schottky allo schema. :grin:

Solo se devi farlo andare in un senso solo ... se deve poter invertire, non ci puoi mettere i diodi (che in quel caso vanno sui transistor ;))

Ragazzi, grazie a tutti dei suggerimenti. Ho collegato il motorino nel verso giusto, posto il diodo nella maniera corretta e funziona tutto perfettamente :wink: Grazie ancora! :smiley: