Go Down

Topic: modalità passo passo (Read 1 time) previous topic - next topic

maximilian3

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

maximilian3

nessuno che mi può aiutare per questa cosa o non sono stato chiaro nella spiegazione? :(

Davide

Cosa intendi per modalità passo-passo?

maximilian3

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

Federico Vanzati

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

F

maximilian3

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?

uwefed

#6
Jan 09, 2011, 01:02 am Last Edit: Jan 09, 2011, 01:03 am by uwefed Reason: 1
Devi programmarlo.
Code: [Select]

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

maximilian3

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 ;)

uwefed

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

Go Up