Ciao a tutti, volevo chiedere un aiuto: sto realizzando un programma con uno stepper e un IR, ma ho qualche difficoltà con la programmazione, potreste aiutarmi?
Vorrei fare in modo tale che se schiaccio un pulsante lui giri nel senso orario, se schiaccio il secondo pulsante lui giri nel senso antiorario e fino a qui ci sono, il problema sorge quando io voglio che se schiaccio ad esempio due volte il primo pulsante lui non giri, perchè per forza dopo il primo pulsante io devo schiacciare il secondo.
Visto che questo è il tuo primo post, ti consiglio di presentarti QUI, e leggere attentamente il regolamento del forum QUI.
Poi postami lo sketch che hai usato fino ad ora
Giovanni
... consigli che vedo ... NON hai seguito, difatti, in conformità al regolamento, punto 7, edita il tuo post e racchiudi il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie.
Guglielmo
Grazie mille per i consigli a tutti ![]()
Riecco il codice ![]()
#include <IRremote.h>
#include <IRremoteInt.h>
#include <Stepper.h>
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int stepsPerRevolution=200;
const int stepsPerRevolutionoff=0;
Stepper myStepper(stepsPerRevolution,9,10,11,12);
int lettura;
void setup(){
myStepper.setSpeed(30);
Serial.begin(9600);
irrecv.enableIRIn();
before=0;
}
void loop(){
if (irrecv.decode(&results))
{Serial.println(results.value,DEC);
irrecv.resume();
}
if (results.value == 284153895 )
{ myStepper.step(stepsPerRevolution);
}
if (results.value == 284137575)
{ myStepper.step(-stepsPerRevolution);
}
else
delay(0);
}
Ingridcimpu:
... il problema sorge quando io voglio che se schiaccio ad esempio due volte il primo pulsante lui non giri, perchè per forza dopo il primo pulsante io devo schiacciare il secondo.
... basta che ti segni da qualche parte in che direzione è il motore.
Se hai schiacciato 1 ed è verso destra, memorizzi in una variabile che è verso destra (es. ci metti il valore -1). Se hai schiacciato 2 ed è verso sinistra, memorizzi nella variabile che è a sinistra (es. ci metti il valore +1) ... a questo punto semplicemente, prima di eseguire uno dei due movimenti, verifichi la variabile e, se sei già in una direzione, ignori la pressione del bottone.
Spero di aver ben capito quello che volevi, altrimenti dai più dettagli ... :![]()
Guglielmo
Quello che intendo io è che se schiaccio 1 va a destra, se rischiaccio uno lui non deve più andare a denstra, non devo proprio fare nullo,quindi di conseguenza devo per forza schiacciare 2 e schiacciando due va verso sinistra
Ma hai letto quello che ho scritto ? ? ? :o :o :o ... perché è esattamente ciò !
Guglielmo
Come faccio a creare questa variabile allora
Senti ... qui siamo proprio alle basi ...
... che ne dici, prima di proseguire, magari di dedicare un po' di tempo per studiarti meglio la programmazione di Arduino? ... perché poi ti riavvicinerai, sicuramente più produttivo, al tuo programma ![]()
Magari puoi cominciare con QUESTO e magari cercare in libreria qualche buon testo di programmazione C su Arduino. In inglese, ad esempio, c'è QUESTO , ma ne trovi parecchi anche in Italiano ![]()
Guglielmo
Se ho chiesto qui è perchè ho già provato, ma non sono riuscita, lei non crede?
Pensavo di riuscire a trovare aiuto, ma vedo che è servito a ben poco...
Ingrid.
Qui difatti trovi AIUTO (correzioni, suggerimenti, consigli, ecc) , non chi scrive i programmi per te ... che, purtroppo, dimostri di NON avere le minime basi necessarie.
Chiedermi "come si fa a creare una variabile" ... è come chiedere come si fa una somma o una sottrazione ... ovvero cose che sono il minimo per poter fare qualsiasi cosa.
Potrei dirti ...
int miaVariabile;
... ma a cosa servirebbe ?
Ti ho suggerito quindi di dedicare un po' di tempo a STUDIARE le basi ... così poi da avere una visione più chiara di cosa stai facendo e capire il programma ... poi vedi tu ...
Guglielmo
P.S.: Rinnovo inoltre l'invito a presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione)
Ingridcimpu:
Quello che intendo io è che se schiaccio 1 va a destra, se rischiaccio uno lui non deve più andare a denstra, non devo proprio fare nullo,quindi di conseguenza devo per forza schiacciare 2 e schiacciando due va verso sinistra
Ma allora se schiacci il pulsante1 il motore deve girare a destra; se rischiacci il pulsante 1 allora deve fermarsi?
Stessa cosa col pulsante 2 e altro senso di rotazione.
Ciao Uwe
No, Uwe, vuole semplicemente quello che ho già spiegato QUI come fare ...
... se hai premuto uno ed il motore si è spostato verso destra, premendo di nuovo uno occorre ignorare le pressioni (... visto che è già a destra), stessa cosa per il due, se è a sinistra deve ignorare le pressioni del due (... visto che è già a sinistra), se invece è a destra e tu premi due, ovviamente si deve spostare a sinistra e viceversa. ![]()
Guglielmo