Go Down

Topic: Problema con transistor e motore DC (Read 3199 times) previous topic - next topic

rio21509

Apr 17, 2012, 04:22 pm Last Edit: Apr 17, 2012, 05:43 pm by rio21509 Reason: 1
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: [Select]
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

uwefed

#1
Apr 17, 2012, 05:27 pm Last Edit: Apr 17, 2012, 08:00 pm by uwefed Reason: 1
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]

djpatrik1824

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

rio21509

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 ?

pelletta

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

pola

Ciao..
Allora innanzi tutto il circuito è tutto sbagliato! :)
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  :)

Michele Menniti

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?
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

uwefed


Ciao..
Allora innanzi tutto il circuito è tutto sbagliato! :)
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  :)

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

Michele Menniti

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

uwefed


qui si scrive senza leggere :smiley-mr-green:

Scrivo 10 minuti e poi dovrei cancellarlo perché mi anticipi di 2 minuti?
Ciao Uwe

Michele Menniti



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

leo72

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.

pola



Ciao..
Allora innanzi tutto il circuito è tutto sbagliato! :)
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  :)

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

Go Up