Ho una domanda probabilmente stupida - ma le mie reminiscenze di elettronica scarseggiano.
Ho un circuito con un potenziometro. Vorrei sostituirlo in modo tale da poter controllare il suo effetto tramite arduino.
Come fare?
Mi è stato consigliato di guardare i DAC, ma avrei bisogno di un aiuto per partire.
Il circuito in questione è di 16V, idealmente avrei una risoluzione di almeno 4 bit.
dovresti usare un paritore di tensione se non sbalgio in quanto se dai più di 5V ad arduino friggi il pin se ti va bene, tutta la scheda se ti va male.
io, tempo fà mi sono fatto un potenziometro digitale dei poveri con un pezzetto di penna nera, un led e una fotoresisrenza.
In pratica basta mettere il led e la fotoresistenza nel tubicino nero (affacciati l'uno all'altra) e tappare il tutto con qualcosa, e poi pilotare con analogWrite il led e leggere con analorRead la fotoresistenza, capito il meccanismo ? più luminoso sarà il led e più bassa sarà la resistenza e viceversa.
non è proprio un sostituto di un potenziometro digitale i2c ma all'epoca fece il dovere suo
BrainBooster:
io, tempo fà mi sono fatto un potenziometro digitale dei poveri con un pezzetto di penna nera, un led e una fotoresisrenza.
In pratica basta mettere il led e la fotoresistenza nel tubicino nero (affacciati l'uno all'altra) e tappare il tutto con qualcosa, e poi pilotare con analogWrite il led e leggere con analorRead la fotoresistenza, capito il meccanismo ? più luminoso sarà il led e più bassa sarà la resistenza e viceversa.
non è proprio un sostituto di un potenziometro digitale i2c ma all'epoca fece il dovere suo
l'arte dell'arrangiarsi è sempre la migliore.. grazie dello spunto
ero in procinto di pernderne uno perchè non avevo pensato a questa possibilità e con i costi che hanno
grande brain
BrainBooster:
io, tempo fà mi sono fatto un potenziometro digitale dei poveri con un pezzetto di penna nera, un led e una fotoresisrenza.
Se prendi 2 fotoresisteze e 2 LED in serie puoi costruirti anche una retroazione e puoi pilotare bene il valore della fotoresistenza che ti serve per il circuito.
Ciao Uwe
Quei controller sono potenziometri, ma con un valore di resistenza abbastanza bassa e con una potenza abbastanza alta.
Le cose sono molto piú semplici di quello che ci hai fatto credere finora.
Usa un uscita PWM con un MOSFET che metti tra la pista negativa e massa.
Non ho capito se vuoi costruirti quel circuito di start che viene proposto col PIC o solo sostituire i controller.
Ciao Uwe
Niente circuito di start, voglio solo poter controllare la velocità della macchinina da computer via arduino/processing.
Quindi se ho capito bene cambiando il valore di PMW (0-255), equivale a cambiare la tensione al gate chee cambia la quantità di corrente che il MOSFET lascia passare e quindi la velocità della macchinina?
Vedo che i MOSFET hanno risposte diverse a seconda della quantità di corrente al gate (lineare, saturazione..). Posso chiederti quali sono i parametri che devo tener d'occhio quando vado a comprare il componente? http://goo.gl/aZ5bg
no, stai confondendo transitori NPN-PNP con MOSFET.
I MOSFET li comandi in tensione. Hanno bisogno di un po di corrente nel momento di accensone/spegnimento perché devi caricare/scaricare il condensatore tra Gate e Soucer-Drain.
Col analogWrite() cambi il raporto tra acceso/spento del segnale rettangolare che esce dalle uscite PWM.
In pratica la somma della tensione sul tempo cambia.
Prendi un IRF540N e collefgalo con una resistenza da 1kOhm tra uscita Arduino e Gate. Colleghi massa di arduino con la massa del alimentatore della pisata auto. Il source del MOSFET va a massa il drain sulla pista (sull'immagine dove é scritto Array.
Ho provato a fare una prima prova! In allegato qualche immagine per spiegare.
Per fare una prova ho collegato il circuito con una batteria a 9V e due led per capire cosa sta succedendo.
Uno verde collegato al pin 5 PWM di arduino, e uno rosso collegato alla batteria che rappresenterebbe (nella mia testa) la pista scaletrix.
L'arduino e' programmato per fare un fade in e out sul pin 5.
void loop() {
// fade in from min to max in increments of 5 points:
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
// sets the value (range from 0 to 255):
analogWrite(gatePin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
// fade out from max to min in increments of 5 points:
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
// sets the value (range from 0 to 255):
analogWrite(gatePin, fadeValue);
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
delay(1000);
}
Il LED collegato al PWM funziona correttamente. Fade in e out.
Il LED collegato al MOSFET e collegato alla batteria 9V invece non da segni di vita.
E hai fatto benissimo, un LED collegato direttamente ad un pin del micro rischia seriamente di farsi del male e di fargliene al micro; se vuoi comunque farlo funzionare mettici una Resistenza in serie da 470 ohm; in realtà potresti scendere fino a 220 ma serve corrente per pilotare il mosfet ed un pin di Arduino al massimo può erogare 40mA