devo pilotare l'intensita di un laserino ma sorge un problema con qualsiasi potenziometro che sia logaritmico o lineare da 10k fino a 1mega l'intensita va a scatti ,mi spiego meglio pot al massimo acceso giro il pot inizia a calare l'intensita per poi ritornare al massimo o quasi poi continuando a girare cala poi ritorna su fino a regolare bene verso fine corsa del pot che fa la sfumata fino a spento.
ho interfacciato arduino con max msp un programma che con lo sketch firmata ti consente di controllare arduino se uso i fader di max msp il problema non esiste l'intensita e molto lineare da acceso a spento quindi deduco che almeno il circuito del laserino non ha problemi di driver e ttl.
Gli sketh che ho usato sono quelli che trovi comunemente per pilotare l'intensita di un led, il led o il laserino sono due diodi e si comportano in maniera simile, qiu lo sketch:
int sensorPin = A0; // input potenziometro intensita
int ledPin = 9; // out ttl laser
int sensorPinValue = 0; // valore di partenza intensita
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.
Attenzione che i laser lavorano in corrente, non in tensione (come i led ... ma al contrario dei led, sono estremamente permalosi, e se gli dai troppa corrente, anche per periodi molto brevi, ti salutano e se ne vanno (al creatore) ... inoltre richiedono un minimo di dissipazione di calore anche quelli meno potenti (a volte basta il portadiodo), mentre per potenze piu elevate se non c'e' il dissipatore si friggono velocemente.
Neanche bisogno di dirlo, quando si parla di laser, SEMPRE la sicurezza per prima, di occhi ne avete solo due, e non vi vendono i ricambi, se bruciate una retina
Il analogread() legge valori da 0 a 1023.
Il analogWrite si aspetta valori da 0 a 255. Prende solo i primi 8 bit ignorando i bit di valore piú alti.
per quello in una corsa del potenziometro l'uscita PWM varia 4 volte da o a 255.
Devi dividere per 4 o usare la funzione map().