softstart primo progetto

Avrei una necessità, come posso fare per leggere quando il valore pwm arriva a 255 ed ottenere un'uscita digitale positiva e poi portare a "0" il pwm in modo che non ho presenza di un segnale pwm che potrebbe disturbare le varie frequenze

Avrei una necessità, come posso fare per leggere quando il valore pwm arriva a 255 ed ottenere un'uscita digitale positiva e poi portare a "0" il pwm in modo che non ho presenza di un segnale pwm che potrebbe disturbare le varie frequenze

(Auto quote me)

quindi quando andrai in trasmissione assicurati che il valore finale sia analogWrite(255) che equivale portare il pin di uscita HIGH.

Sei tu che imponi un determinato valore del duty clycle, quindi saprai benissimo che l'ultimo istruzione deve analogWrite(255). In questo modo il PWM non c'è più e al suo posto c'è un segnale di uscita HIGH.

Il circuito che pilota il filamento come l'hai realizzato?
Io penso che ti serva un mosfet, una sorgente di tensione stabile di potenza adeguata e la modulazione del mosfet tramite PWM, valore di pwm che varierai in un ciclo for. Dovresti anche usare la funzione millis() ma per una prova sperimentale puoi usare delay().

for (uint8_t pwmValue = 0; pwmValue<255; pwmValue++) {
     analogWrite(pwmValue);
     delay(10);
}

Il for impiega circa 2.5s dopo esce e l'ultimo valore di pwmValue è 255.
Questo codice è bloccante, per evitare questo inconveniente si usa la funzione millis()

Ciao.

Buonasera, è successa una cosa strana, ho caricato il programma su un'atmega328(quello di arduino uno) e montato in modo standalone ma mi da problemi, in qualche caso lampeggia un paio di volte, in'altri casi esegue la rampa arriva al massimo si spegne e riprende tutto,in altri casi fa la rampa poi si spegne e si fissa il led in vari valori.....caricato su un mega e tutto va bene

/Programma che genera un'avviamento graduale di due carichi
resistivi, uno dei due si deve avviare all'accensione del
circuito, il secondo solo se viene azzionato un'interruttore
che fa partire il ciclo di avviamento. a ciclo completo si
devono accendere dei led che permettono di sapere se la tensione
ha raggiunto la soglia ideale.
/

#define PWM_Filamenti 11 //PWM che comanda l'accensione dei filamenti

int valore_pwm = 0; //Assegna il valore 0 alla variabile pwm

void setup() {

pinMode(PWM_Filamenti, OUTPUT); //Definisce l'uscita variabile per i filamenti

}

void loop() {
// Si genera un segnale PWM
analogWrite(PWM_Filamenti, valore_pwm); //Assegna al pin 26 il valore di 0
delay(5000); //Determina un ritardo di 2 secondi prima di eseguire pla prossima riga
valore_pwm = valore_pwm + 25; //Aumenta il valore del pwm di 10%
if(valore_pwm > 255) valore_pwm = 255; //Se il valore dell'incremento del pwm supera il100% determina un valore di 100%

}

stavo pensando, essendo il soft start una cosa semplicissima d far fare all'arduino che volevo implementarlo nel programma del wattmetro che devo montare sull'apparecchio, ma il problema è che i pin pwm sono tutti impiegati per controllare il display, c'èe possibilita di far fare il sistema di soft start ad un pin analogico?