Buongiorno a tutti, mi chiamo RAOUL, vorrei chiedere un aiuto a tutti voi……
il problema è il seguente.
io ho questa coindizione : "POTin" e " VAR" sono variabili, "MEM40" una memoria con un valore già memorizzato.
"Dw" è un PIN digitale "6"
VAR= analogRead(POTin);
if ( VAR==MEM40) {digitalWrite(Dw,LOW);
questa condizione è inserita in un lungo contesto dentro il software.
il problema è che ogni tanto in qualche ciclo non riesce ARDUINO NANO a leggerlo in tempo o non so cosa, ma il codice va avanti e non tiene conto di questa RIGA….. la salta.
"VAR" è una variabile che si carica con un valore proveniente da un potenziometro che è accoppiato all'ingresso analogico "A0" e gira e va da 0Volt fino a 5Volt. ( 0 to 1023 )
Se gira molto ma molto piano legge e non sbaglia ma un po' piu' veloce e non funziona a dovere.
ARDUINO NANO funge a 16Mhz di clock.
Dico io…..si puo' scrivere che la comparazione tra questi due valori sia un po' piu' flessibile..??? cioè
VAR== MEM40 + o - 10 Mi spiego..?? comparare VAR a (MEM40 pero' con un margine di 10 sotto e 10 sopra.)
Esempio. VAR vale 200 e varia con il potenziometro da (0 a 1023)
MEM40 vale 357 ma poterlo comparare (tra 347 e 367) con VAR.
Spero sia stato chiaro……
Buonasera,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentartiIN 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 su citato REGOLAMENTO ... Grazie.
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto.
IZ7JXJ:
... Dico io…..si puo' scrivere che la comparazione tra questi due valori sia un po' piu' flessibile..??? cioè
VAR== MEM40 + o - 10 Mi spiego..?? comparare VAR a (MEM40 pero' con un margine di 10 sotto e 10 sopra.)
Quello che vuoi fare è creare un "intervallo di validità" ...
direi che ti basta usare un operatore '&&' (and logico) per controllare due condizioni che VAR si maggiore di MEM40 - X e contemporaneamente minore di MEM40 + X, dove X è il valore di intervalo che deci tu (parlavi di 10), ovvero che si trovi all'interno dell'intervallo.
Ciao Guglielmo, anzitutto grazie per la pronta risposta……
Ho fatto la presentazione come mi hai detto ma non la vedo da nessuna parte dopo aver scritto su REPLY e di aver poi premuto "POST".
Per la tua risposta ci provo….secondo me è una soluzione logica
"X" sarebbe una variabile già caricata col numero che considero sufficiente.
Ok.... come sempre quando si risolve un problema...appare un altro...!!..
mi spiego, risolto il problema di fare un "intervallo di validità" per comparare una variabile ed un altra.....
Adesso però devo fare lo stesso con un comando "IF" che una volta dentro questo "INTERVALO" smetta di fare il LOOP e
torni al Codice.
Questo è il LOOP a cui mi riferisco....
void quarantaSU(){
smeter();
Posizione();
var = analogRead(POTin);
if ((var >= band40m - X) && (var <= band40m + X)) {digitalWrite(Up,LOW); // INTERVALO CREATO
tft.setTextColor(ILI9340_GREEN);
tft.setCursor(264,77);
tft.println("GO!");
tft.setCursor(266,44 );
tft.println("UP");
}
if ((var < band40m - X ) && (var <= band40m + X)) {digitalWrite(Up,HIGH); // INTERVALO CREATO
tft.setTextColor(ILI9340_RED);
tft.setCursor(264,77);
tft.println("GO!");
tft.setCursor(266,44 );
tft.println("UP");
}
if (var != band40m) {quarantaSU();} // Questo è se "BAND40M" non è uguale PROPRIO a "VAR" torna
} // al LOOP "
//******************
Adesso se "VAR" non è esattamente uguale a "BAND40m" continua a tornare al LOOP.....ma vorrei che accettassi
tutto l'intervalo completo creato, non soltanto se sono esattamente uguali le due variabili per uscire dal LOOP
io ho provato così ma NON VA.....!
if ( ( var < band40 - X) && (var > band40 +X)) {quarantaSU();}
Aspetta, non capisco, tu parli di LOOP ... ma indendi la funzione loop() di Arduino o intedi altro?
Puoi schematizzare (fare un diagramma), magari anche con uno schemino fatto a penna e fotografato, cosa vorresti fare? Perché, perdonami, ma non ho ben capito ... :