Salve a tutti sto costruendo un cambio ad h per il mio volante per pc che ha il cambio sequenziale (ovvero a levette):
In poche parole sto sfruttando il pulsante che ruota nel joypad che possiede 2 potenziometri e leggendo i vari valori cosi so in che posizione è inserita la marcia ,ho creato delle funzioni che mi restituiscono sempre la stessa variabile (chiamata"statomarcia" )che assume valore diverso a seconda della posizione della marcia es 1 e per la prima etc...
Per far comunicare il volante con il cambio devo chiudere un circuito sfruttando un pin di arduino portando il singolo pin prima ad 1 e poi a 0 (per cambiare una singola marcia ) creo una sorta di impulso che simula la levetta che inserisce la marcia nel volante.
Per il codice sto sfruttando un switch case.
switch(statomarcia){
case 1:
Serial.print("prima");
digitalWrite(pulsrosso,HIGH);
delay(2);
digitalWrite(pulsrosso,LOW); // cosi inserisco la prima marcia
break;
essendo il case un mini loop le istruzioni si ripetono sempre a ruota e cosi si inseriscono tutte e sei le
marce.
Io vorrei che questa serie di istruzioni venissero svolte una sola volta (cosi inserisco una sola marcia
e dopo di che il pulsante rimane a stato zero fino a quando non si attiva il case successivo che sta ad
indicare un altra marcia ad esempio:
case 2:
Serial.print("seconda");
ho provato con while , do while e delay ma non ci sono riuscito.
Chi può darmi una mano ? grazie in anticipo ![]()