Pages: [1]   Go Down
Author Topic: Problema con transistor e motore DC  (Read 2925 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve
è la prima volta che uso un transistor e non ancora riesco a capire a pieno il suo funzionamento come amplificatore di segnale.
Sto provando a far cambiare velocità ad un motore DC con un potenziometro ma il motore non parte nemmeno!
Vi posto un'immagine del circuito che ho creato con relativo codice, ditemi voi dove sbaglio perche non so proprio come andare avanti.

Ho un Arduino UNO e il transistor è un BC547 NPN e l'Arduino è collegato sia al computer via usb e sia all'alimentazione a 9 volt

Code:
int pot = A0;
int mot = 9;
int val = 0;

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

void loop()
{
  val = map(analogRead(pot),0,1023,0,255);
  Serial.println(val);
  analogWrite(mot,val);
}

Ho un Arduino UNO e il transistor è un BC547 NPN e l'Arduino è collegato sia al computer via usb e sia all'alimentazione a 9 volt
« Last Edit: April 17, 2012, 10:43:07 am by rio21509 » Logged

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

Come hai collegato motore e transostore; che dati (tensione e corrente nominale) ha il motore?
Ciao Uwe
[EDIT]scusate non avevo visto la foto[/EDIT]
« Last Edit: April 17, 2012, 01:00:21 pm by uwefed » Logged

Padova, Italia
Offline Offline
Newbie
*
Karma: 0
Posts: 47
I love Arduino:-)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se il cablaggio è giusto ( e finchè non citi la sigla del tuo transistor non te lo so dire) sicuramente il problema sono i 20 mA che a fatica eroga Arduino..figuriamoci e farlo partire a magari il minimo...Devi collegare il positivo di arduino ad una fonte che possa erogare una corrente maggiore e mettere la massa di Arduino in comune con questa altra fonte...Poi magari potrebbe anche servire un condensatore per dare la "spinta" iniziale...ma intanto prova come ti ho detto.. smiley-grin
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il motore dovrebbe essere un 5v a 1A e il transistor è un NPN BC547 e comunque l'arduino è collegato sia all'alimentazione da 9 volt e sia al computer via usb e dove dovrei metterlo il condensatore ?
Logged

Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2276
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Benvenuto.
Il BC547 non va bene perchè regge fino a 100mA proprio a essere ottimisti, cambia transistor oppure usa un mosfet.
Il condensatore per lo spunto va messo in parallelo al motore e ti servirà anche mettere un diodo 1N4007 (o simili) perchè il motore è un carico induttivo.
E' consigliato mettere inoltre una resistenza tra il pin di arduino e la base del transistor come protezione, se chiedi troppa corrente al pin dell'arduino rischi di danneggiarlo.
Ciao
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao..
Allora innanzi tutto il circuito è tutto sbagliato! smiley
Prima cosa che devi fare è polarizzare correttamente il transistor, sennò non funziona e rischi anche di danneggiarlo. Polarizzarlo significa collegare le giuste resistenze ai capi del collettore e base del transistor. Io sinceramente non so come fare perchè bisogna utilizzare delle formule che in questo momento non conosco. Quello che posso è di provare con delle resistrenze a caso su Workbench e guardare se funziona, oppure cerco dei circiuti già fatti.
Poi devi collegare il polo positivo dell'alimentazione a 9 volt nel collettore e il polo negativo all'emmettitore (massa), poi un cavo che parte dal motore lo colleghi al colletore del transistor e l'altro a massa, coè all'emmettitore.
Infine la base del transistor lo colleghi (con l'apposita resistenza in serie) al pin 9 e il GND all'emmettitore.
Per sapere in che ordine sono i tre capi del transistor devi andare a vedere i data sheet del componente che in internet troverai sicuramente.
Il potenziomentro è collegato correttamente.
Se non è chiaro ti posso inviare un'immagine del circuito,
Ciao e buon lavoro  smiley
Logged

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

L'idea di base mi sembra corretta; però devi (più o meno mi pare ti sia già stato detto):
1 - mettere una R da 1K tra il pin di Arduino e la base del TR
2 - mettere una R da 10K tra la base del TR e GND
3 - verificare quanto assorbe il motorino e sostituire il TR con uno di adeguate prestazioni
4 - mettere un diodo 1n4148 sui due pin del motore: anodo a Vin e catodo a GND
5 - anche la fonte 9V deve essere adeguata ad alimentare il motorino

Il motorino che tensione e corrente richiede per lavorare?
Logged


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

Ciao..
Allora innanzi tutto il circuito è tutto sbagliato! smiley
Prima cosa che devi fare è polarizzare correttamente il transistor, sennò non funziona e rischi anche di danneggiarlo. Polarizzarlo significa collegare le giuste resistenze ai capi del collettore e base del transistor. Io sinceramente non so come fare perchè bisogna utilizzare delle formule che in questo momento non conosco. Quello che posso è di provare con delle resistrenze a caso su Workbench e guardare se funziona, oppure cerco dei circiuti già fatti.
Poi devi collegare il polo positivo dell'alimentazione a 9 volt nel collettore e il polo negativo all'emmettitore (massa), poi un cavo che parte dal motore lo colleghi al colletore del transistor e l'altro a massa, coè all'emmettitore.
Infine la base del transistor lo colleghi (con l'apposita resistenza in serie) al pin 9 e il GND all'emmettitore.
Per sapere in che ordine sono i tre capi del transistor devi andare a vedere i data sheet del componente che in internet troverai sicuramente.
Il potenziomentro è collegato correttamente.
Se non è chiaro ti posso inviare un'immagine del circuito,
Ciao e buon lavoro  smiley
Scusami pola
Se metti il positivo del alimentazione  sul colletore e il negativo sul emettitore come consigli fai un bel corto del alimentazione appena comuta il transistore.

Se usi il transistore come interuttore non serve anzi non deve esserci una resistenza sul collettore.

Lo schema di rio21509 é quasi giusto serve una resistenza tra base e Arduino da 1kOhm. Il BC547 e Arduino sono troppo deboli per un motore da 1A.

@rio21509 Usa per esempio un TIP120 e alimenta il motore /transistore direttamente dal alimentatore e non attraverso Arduino. Una batteria da 9 V é troppo debole per quel motore.

Ciao Uwe
Logged

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

qui si scrive senza leggere smiley-mr-green
Logged


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

qui si scrive senza leggere smiley-mr-green
Scrivo 10 minuti e poi dovrei cancellarlo perché mi anticipi di 2 minuti?
Ciao Uwe
Logged

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

qui si scrive senza leggere smiley-mr-green
Scrivo 10 minuti e poi dovrei cancellarlo perché mi anticipi di 2 minuti?
Ciao Uwe
ma no! io non lo farei, però mi fa piacere che comincio a dare risposte simili alle tue, vuol dire che sto imparando qualcosa a forza di frequentarti smiley-wink
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22973
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E' inutile collegare entrambe le alimentazioni, USB e jack. Questo perché l'Arduino ha un circuito che seleziona l'USB nel caso siano comunque presenti entrambe. Quindi, stacca il cavo USB perché il PC può fornire solo 500 mA e se il motorino assorbe 1A rischi di far saltare la protezione della scheda madre sulla porta USB. Usa invece un buon alimentatore esterno da 9V ed almeno 1,5A: 1A te lo "succhia" il motorino, il resto ti serve per l'Arduino ed il circuito.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao..
Allora innanzi tutto il circuito è tutto sbagliato! smiley
Prima cosa che devi fare è polarizzare correttamente il transistor, sennò non funziona e rischi anche di danneggiarlo. Polarizzarlo significa collegare le giuste resistenze ai capi del collettore e base del transistor. Io sinceramente non so come fare perchè bisogna utilizzare delle formule che in questo momento non conosco. Quello che posso è di provare con delle resistrenze a caso su Workbench e guardare se funziona, oppure cerco dei circiuti già fatti.
Poi devi collegare il polo positivo dell'alimentazione a 9 volt nel collettore e il polo negativo all'emmettitore (massa), poi un cavo che parte dal motore lo colleghi al colletore del transistor e l'altro a massa, coè all'emmettitore.
Infine la base del transistor lo colleghi (con l'apposita resistenza in serie) al pin 9 e il GND all'emmettitore.
Per sapere in che ordine sono i tre capi del transistor devi andare a vedere i data sheet del componente che in internet troverai sicuramente.
Il potenziomentro è collegato correttamente.
Se non è chiaro ti posso inviare un'immagine del circuito,
Ciao e buon lavoro  smiley
Scusami pola
Se metti il positivo del alimentazione  sul colletore e il negativo sul emettitore come consigli fai un bel corto del alimentazione appena comuta il transistore.

Se usi il transistore come interuttore non serve anzi non deve esserci una resistenza sul collettore.

Lo schema di rio21509 é quasi giusto serve una resistenza tra base e Arduino da 1kOhm. Il BC547 e Arduino sono troppo deboli per un motore da 1A.

@rio21509 Usa per esempio un TIP120 e alimenta il motore /transistore direttamente dal alimentatore e non attraverso Arduino. Una batteria da 9 V é troppo debole per quel motore.

Ciao Uwe

Uwe
Hai ragione è vero! quindi il motore conviene collegarlo in serie tra colletore e +5volt
Logged

Pages: [1]   Go Up
Jump to: