[ITA] Azionare il circuito premendo due pulsanti insieme

Salve, partendo da questo codice mi dite come posso fare la partenza del circuito premendo la combinazione di due tasti insieme. Ora ne ho uno solo che accende un led. ma in un altro codice ho quasi finito .. vi mostro il codice da dove sono partito. Pin senza resistenza input_pullup.
Ecco il codice:

#define led_pin 3
#define button_pin 2
 
boolean led_state;
boolean button_state;
boolean previous_button_state;
 
int debounceDelay = 20;
 
boolean debounce(int pin)
{
  boolean state;
  boolean previousState;
  previousState = digitalRead(pin);
  for(int counter=0; counter < debounceDelay; counter++) {
    delay(1);
    state = digitalRead(pin);
    if( state != previousState) {
      counter = 0;
      previousState = state; }
  }
  return state;
}
 
 
void setup() {
  pinMode(led_pin, OUTPUT);
  pinMode(button_pin, INPUT_PULLUP);
}
 
 
void loop() {
  button_state = debounce(button_pin);
  if(button_state==LOW && previous_button_state==HIGH) led_state = 1-led_state;
  previous_button_state = button_state;
  if(led_state==1) digitalWrite(led_pin, HIGH); else digitalWrite(led_pin, LOW);
}

Vuoi fare una cosa stile start and stop oppure il bisogno di avere tutti e due gli input ad 1?

si tutte e due a 1 .. e in più dopo fanno anche l'oro cose diverse tra di loro.
Ho già fatto lo start / stop con un pulsante solo .. ma non so come è la sintassi per unire le due condizioni ..
vi metto il codice su pastebin .. visto che il forum non mi piace la formattazione + non colora il codice.
https://pastebin.com/VFJSEHrr

grazie mille e buona giornata.

Primo, debounce hardware. Secondo, macchina a stati finiti. Direi di approfondire questi due aspetti.

Non potrebbe bastare mettere 2 pulsanti in serie sullo stesso pin?

ok grazie mille ora sto studiando la programmazione macchina a stati finiti.. tu hai un link dove hai studiato tu. grazie mille e buona serata.

no. non posso perché dopo quei due pulsanti.. dovrebbero fare cose diverse. grazie anche a te.

Ok, non avevo capito questo dettaglio.
Allora concordo con @speedyant

Potrebbe forse "bastare" un and tra i due ingressi.
Dovresti anche chiarire perché due pulsanti di start...

L'ho sempre visto usare per questioni di sicurezza (entrambe le mani occupate).

Se non ha esigenze particolari di timing credo sia la soluzione più semplice

Occhio che se si tratta di un comando per azionamento a due mani, ci sono dei requisiti di sicurezza minimi da soddisfare per essere a norma di legge e due ingressi /pulsanti diversi non sono sufficienti.
Il sistema deve essere "inviolabile", prevedere delle finestre temporali di azionamento etcetc.
Per non parlare poi delle certificazioni dei componenti e dell'impianto.
Finché si tratta di sperimentare tutto bene, ma se si parla di macchine o quasi macchine elettriche in caso di infortunio si ha a che fare con il codice penale.

Infatti "temo" sia per qualcosa del genere. Infatti chiedevo apposta.

Si, infatti esistono gli appositi moduli certificati per comando a 2 mani, come esistono gli appositi moduli di sicurezza per ripari o funghi di emergenza, e quelli devono essere utilizzati, non ti puoi inventare nulla.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.