Controllo di più attuatori lineari

ciao a tutti, mi presento perchè sono nuovo, faccio lo scenografo e sto iniziando a entrare nel mondo arduino per realizzare alcuni movimenti e effetti speciali. ora mi capita di dover muovere 6 attuatori lineari in modo piuttosto casuale, che vadano in loop aprendosi e chiudendosi in continuo, ho iniziato a muoverne uno senza troppi problemi, con una scheda a doppio relè e uno sketch semplice di apertura e chiusura...ora come posso continuare per metterne 6 in movimento? grazie a tuttti!

Avevo un problema similare, ho trovato questo link per N servo, magari può essere addatato per linear actuators?

@thescenographer85 : Buongiorno e benvenuto, :slight_smile:
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà (eventiali risposte verrebbero cancellate), quindi ti consiglio di farla al più presto. :wink:

ciao.
prova a postare lo sketch e lo schema che hai usato.

void setup() {
pinMode(7, OUTPUT); // Configure pin 7 as an Output
pinMode(8, OUTPUT); // Configure pin 8 as an Output
digitalWrite(7, HIGH); // Initialize pin 7 as Low
digitalWrite(8, HIGH); // Initialize pin 7 as Low

pinMode(9, OUTPUT); // Configure pin 7 as an Output
pinMode(10, OUTPUT); // Configure pin 8 as an Output
digitalWrite(9, HIGH); // Initialize pin 7 as Low
digitalWrite(10, HIGH); // Initialize pin 7 as Low

pinMode(11, OUTPUT); // Configure pin 7 as an Output
pinMode(12, OUTPUT); // Configure pin 8 as an Output
digitalWrite(11, HIGH); // Initialize pin 7 as Low
digitalWrite(12, HIGH); // Initialize pin 7 as Low

}

void loop() {
// Extend Linear Actuator
digitalWrite(7, LOW);
digitalWrite(8, HIGH);

digitalWrite(9, LOW);
digitalWrite(10, HIGH);

digitalWrite(11, LOW);
digitalWrite(12, HIGH);

delay(2000); // 2 seconds

// Stops Actuator
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);

digitalWrite(9, HIGH);
digitalWrite(10, HIGH);

digitalWrite(11, HIGH);
digitalWrite(12, HIGH);

delay(2000); // 2 seconds

// Retracts Linear Actuator
digitalWrite(7, HIGH);
digitalWrite(8, LOW);

digitalWrite(9, HIGH);
digitalWrite(10, LOW);

digitalWrite(11, HIGH);
digitalWrite(12, LOW);

delay(2000); // 2 seconds

// Stop Actuator
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);

digitalWrite(9, HIGH);
digitalWrite(10, HIGH);

digitalWrite(11, HIGH);
digitalWrite(12, HIGH);

delay(2000); // 2 seconds
}

con questo ne muovo 3 in modo uguale,come posso muoverli casualmente?

la funzione delay() blocca arduino, nel tuo caso per 2 secondi, senza fare niente.
Per far funzionare in contemporanea più attuatori devi usare la funzione millis().

@thescenographer85 : In conformità al REGOLAMENTO, fosse anche per una sola riga, il codice va racchiuso negli appositi tag ... :roll_eyes:

... cortesemente, quindi, edita il tuo post più sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice.

Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac all'intero del IDE). Grazie. :slight_smile:

Guglielmo

come dice Guglielmo
quel programma devi racchiuderlo
poi devi indentarlo
e aggiungo io
metti a posto i commenti, che così come sono sono inguardabili
se devi scrivere un commento deve (deve) essere congruo col programma e non inutile
un commento che dice "configuro il pin 7 come output" è inutile, perché anche il più inesperto conosce l'uso della pinMode
se poi il pin che configuri è l'otto.... cosa devo pensare?

e poi il programma
BUTTALO
è inutile, fuorviante e sbagliato

per prima cosa tu devi stabilire come lavorano gli attuatori
ovvero se sono on-Off, proporzionali o cosa
come si comportano se li mandi a fondo corsa e sapere quanto tempo ci mettono

poi cominci a ragionare in logica non bloccante
e qui di esempi c'è ne sono a migliaia
dalla "blink without delay" alla mia "il tempo delle librerie"

e dopo unisci il tutto

anzi, fatti un giro su:

aiutateci ad aiutarvi
la pappa è fatta
aiutati che il ciel...

e leggiteli bene
guarda che non sono menate: sono consigli dettati da esperienza
esperienza "specifica" formata aiutando altri come te