Intervallino, modificato

Salve a tutti, sono nuovo qua e volevo chiedervi un aiuto.
Sto sfruttando il codice introdotto con intervaluino per far scattare la macchina con interrati di tempo selezionabili, per un tempo indeterminato finché l’operatore non decide di smettere.

per questo ho sfruttato la libreria timer.h però quando devo definire il periodo di tempo tra una foto e la successiva. E’ in un qualche modo possibile usare un dato selezionato nel void loop dall’utente come variabile per la ripetizione del timer dichiarata nel void setup???

grazie in anticipo

#include <Timer.h>

Timer t1;
Timer t2;

int shutter_on = 100;
int shutter_wait = 100;
int shutter_off;
int af_on = 50;
int af_wait = 50;

int shutterPin = 2;
int afPin = 3;
int buttonPin = 4;
int potPin = A0;

int val;
int shutterSelect = 0;
int buttonState;
int on_off = 0;

void timeSelection(void) {
if(shutterSelect==0) {
if((analogRead(potPin)>=0)&&(analogRead(potPin)<500)) {
shutter_off = 700;
Serial.println(“Scatto ogni secondo”);
Serial.println(shutter_off);
}
if((analogRead(potPin)>=500)&&(analogRead(potPin)<1000)) {
shutter_off = 2700;
Serial.println(“Scatto ogni tre secondi”);
Serial.println(shutter_off);
}
if(analogRead(potPin)>=1000) {
shutter_off = 4700;
Serial.println(“Scatto ogni cinque secondi”);
Serial.println(shutter_off);
}
}
}

void function(void) {
digitalWrite(afPin, HIGH);
Serial.println(“AF on”);
delay(af_on);
digitalWrite(afPin, LOW);
Serial.println(“AF off”);
delay(af_wait);
digitalWrite(shutterPin, HIGH);
Serial.println(“SHUTTER on”);
delay(shutter_on);
digitalWrite(shutterPin, LOW);
Serial.println(“SHUTTER off”);
}

void setup() {
pinMode(shutterPin, OUTPUT);
pinMode(afPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(potPin, INPUT);
Serial.begin(9600);
buttonState = digitalRead(buttonPin);
t1.every(2000, timeSelection);
t2.every(shutter_off, function);
}

void loop() {
t1.update();

val = digitalRead(buttonPin);
if (val != buttonState) {
if (val == LOW) {
if (on_off == 0) {
on_off = 1;
shutterSelect = 1;
Serial.println(“on_off=1”);
delay(shutter_wait);
}
else {
on_off = 0;
shutterSelect = 0;
Serial.println(“on_off=0”);
}
}
}

buttonState = val;

if (on_off == 1) {
t2.update();
}
}

Allora,
tanto per cominciare nella sezione in lingua Inglese si può scrivere SOLO in Inglese … quindi, per favore, la prossima volta presta più attenzione, poi … di nuovo qui in che senso ?

Io vedo che hai UN solo post all’attivo, quindi …ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO .

Infine … in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More → Modify) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Grazie.

Guglielmo

P.S.: Il tuo post è stato spostato nell’opportuna sezione del forum “Italiano”