Salve a tutti,
ho un arduino uno e vorrei che un motore DC da 3v ad esso collegato giri ad una velocità prestabilita nel programma caricato. A partire da un programma un po' più complesso, e con l'aiuto di fonti in rete, ho provato questa configurazone:
int Val_PWM = 0; //Valore per PWM (0-255)
const int MOTORE = 3; //Motore
void setup()
{
Serial.begin(9600);
Serial.println("system startup");
pinMode(MOTORE, OUTPUT); //Impostazione PIN come uscita
}
void loop()
{
analogWrite(MOTORE, Val_PWM); //Imposto velocità
delay(50); //Attesa
}
Mi aspettavo quindi che assegnando preventivamente un valore arbitrario a Val_PWM compreso tra 0 e 255 cambiasse la velocità del motore. Ma così non è, gira sempre alla stessa velocità.
Dove sbaglio? Potete aiutarmi? Grazie
se vuoi farlo andare solo in un senso un npn è più che sufficiente...suppongo che il motorino sia piccolo e non consumi tanto..
in ogni caso devi mettere una resistenza fra la base e il pin dell'arduino di almeno 1kohm.. ma fino a 4.7 kohm può andare...
così dovrebbe andare meglio...
alexdb:
se vuoi farlo andare solo in un senso un npn è più che sufficiente...suppongo che il motorino sia piccolo e non consumi tanto..
in ogni caso devi mettere una resistenza fra la base e il pin dell'arduino di almeno 1kohm.. ma fino a 4.7 kohm può andare...
così dovrebbe andare meglio...
Ciao, premettendo che sono alquanto inesperto, e aldilà della resistenza che ci va, ma i collegamenti dell'npn sono corretti? Perché io metterei sul collettore del transistor (quello più a sinistra i) i 3V di arduino, la base (quella al centro) con la resistenza come tu hai suggerito collegata al pin di arduino e l'emettitore (quello più a destra) con il polo positivo del motorino. Il negativo del motorino lo attaccherei direttamente al gnd di arduino. O mi sono perso qualcosa?
alexdb:
se vuoi farlo andare solo in un senso un npn è più che sufficiente...
@Ithos92 Anch'io sapevo così, su youtube si vedono motorini che funzionano con un transistor, senza ponte H
alexdb:
suppongo che il motorino sia piccolo e non consumi tanto..
in ogni caso devi mettere una resistenza fra la base e il pin dell'arduino di almeno 1kohm.. ma fino a 4.7 kohm può andare...
così dovrebbe andare meglio...
Ho provato a mettere una resistenza da 4.7 kohm (da meno le avevo solo da 330ohm)
PaoloP:
Secondo me, così bruci l'Arduino. =(
Speriamo di no
critical:
Ciao, premettendo che sono alquanto inesperto, e aldilà della resistenza che ci va, ma i collegamenti dell'npn sono corretti? Perché io metterei sul collettore del transistor (quello più a sinistra i) i 3V di arduino, la base (quella al centro) con la resistenza come tu hai suggerito collegata al pin di arduino e l'emettitore (quello più a destra) con il polo positivo del motorino. Il negativo del motorino lo attaccherei direttamente al gnd di arduino. O mi sono perso qualcosa?
Ho provato, ma ancora nulla. Questo è l'ultimo schema provato con i vostri suggerimenti.
Risolto: sembra si trattasse di un transistor difettoso. Per quanto riguarda la resistenza invece, è necessaria, ma 4.7kohm è troppo. Con 330 ohm funziona discretamente. L'unico problema sembra essere che, se collego una ruota al motore, questa parte solo se accompagnata all'inzio: senza una leggera spinta, sembra non essere in grado di avviarsi. Sapete mica perché e come posso rimediare? Grazie
ilfugiuliopascal:
Risolto: sembra si trattasse di un transistor difettoso. Per quanto riguarda la resistenza invece, è necessaria, ma 4.7kohm è troppo. Con 330 ohm funziona discretamente. L'unico problema sembra essere che, se collego una ruota al motore, questa parte solo se accompagnata all'inzio: senza una leggera spinta, sembra non essere in grado di avviarsi. Sapete mica perché e come posso rimediare? Grazie
Io ho avuto un problema anlogo con un motore da tre volt che ho collegato all'emettitore di un transistor. Innanzitutto ho messo un diodo invertito ai capi del motore, come si fa normalmente per i rele'. Poi ho notato che un motore elettrico ha difficolta' a partire con tensioni piu' basse di quella nominale. Conviene farlo partire con la tensione massima e poi diminuire.
ciao
comunque in questo caso il diodo serve per chè il motore è un carico induttivo. Un induttanza si comporta in modo un pò particolare: quando la corrente che ci scorre dentro diminuisce fa aumentare la tensione. questa sovratensione potrebbe danneggiare il transistor. qui interviene il diodo che fa passare la tensione anomala preservando il transistor.
in questo caso l'ideale sarebbe avere un diodo scottky, che sono diodi particolari con un tempo molto basso di intervento!
No,il bc547 credo sia un npn quindi la resistenza va alla base,l'emettitore va a massa , il collettore al motore ed all'anodo diodo(i due sono in pratica in parallelo),catodo diodo ed altro filo motore a positivo.
A parte il fatto che anche il Diodo e' rovesciato.
L'uscita a 3,3V dell'Arduino eroga al massimo 50mA.
Un motorino per piccolo che sia consumera' quasi sicuramente una corrente maggiore.
Quindi.... non lo fare, Usa una fonte di alimentazione esterna o al massimo riduci la 5 Volts con tre diodi in serie.
Comunque e' buona norma verificare l'assorbimento, prima di usare l'alimentazione erogata da Arduino