scusate se vi chiedo cose seplici (per voi) non sono riuscito a trovare un tutorial che mi spiegasse come impostare arduino nella modalità passo passo cioe ad ogni impulso va al canale successivo
l'ingresso per l'impulso qual'è ? non vorrei sbaglaire e il minimo ed il massimo di tensione che ha bisogno per funzionare e quello per non bruciarsi ( parlo sempre dell'impulso)
grazie mille ;D
nessuno che mi può aiutare per questa cosa o non sono stato chiaro nella spiegazione?
Cosa intendi per modalità passo-passo?
che ad esempio collego un led o luce ad ogni uscita (nel caso di arduino mega sono 50) e a ogni impulso mi passa alla luce successiva:
primo impuso accende la prima luce secondo impulso si accende la 2 al terzo si accende la 3 e cosi via
Con impulso cosa intendi? un evento generato da un pulsante?
Comunque un modo semplice per fare quello che chiedi potrebbe essere così:
-
"l'impulso" va ad incrementare un contatore che conterà ad esempio da 0 a 50
-
metti a stato logico 0 tutte le uscite (così spegni il passo precedente e sei sempre sicuro che siano tutte spente le altre)
-
metti a stato logico 1 l'uscita che corrisponde al valore del contatore.
Ovviamente ci sono un'infinità di modi per fare questa cosa, se quello che cerchi è fare delle operazioni in sequenza allora documentati su "macchina a stati finiti".
Spero di esserti stato utile
si grazie sei stato utile
esattamente quello che voglio fare è:
dalle uscite di arduino mega2560 devo accendere dei relè 1 alla volta
io do un'impulso di corrente(in un ingresso che ancora non so bene) e arduino mi deve accendere il primo relè e spegnerlo subito dopo, poi quando dò un'altro impulso o tensione mi deve far accendere il secondo relè e spegnerlo nuovamente e così via fino al 54
credo che si possa fare vero?
Devi programmarlo.
diciamo che hai messo dei Driver ULN2803 e dei relé sui pin 2 a 51: e hai definito tutti i pin come uscita e messi a LOW.
setup(){
i=0;
}
loop(){
if (impulso) // controlla se arriva un impulso; devi modificare come ti serve.
{
digital.Write (i,HIGH);
delay(1000); // aspetta un secondo
digital.Write (i,LOW);
i++; // prossima uscita
// aggiungere cosa é da fare se arriva all'ultimo pin.
}
Ciao Uwe
ok grazie
ma l'impulso come lo posso dare io ho un relè che comando con il mac che tensione devo dare e dove devo far entrare questa corrente?
ti spiego il mio progetto io dovo far accendere 50 luci a tempo di musica quindi con questo relè mi comando gli impulsi e con arduino mega accendo le luci solo che le luci si devono accendere a volte anche in sequenza di 0,2 sec quindi non so se con il tuo programma lo posso fare dato che ho visto che le luci restano accese per 1 sec giusto o mi sono confuso?
comunque grazie mille e spero che mi puoi aiutare
ciao maximilian3
Tui ho mostrato la strada per realizzare quello che hai chiesto. Nel esempio ho messo un accensione di un secondo con la funzione:
delay(1000); // aspetta un secondo
Se Ti serve diverso cambialo. Spegni la luce accesa prima di accendere la successica.
Ciao Uwe