fatto. grazie
Ormai Astro e Guglielmo e company mi hanno mischiato la malattia...
const int là non si può vedere e nemmeno int sotto.......
Ne sono convinto, ma io sono ancora nella fase in cui non mi capacito del fatto che esegua davvero le operazioni che mi servono
Nativoz:
Ne sono convinto, ma io sono ancora nella fase in cui non mi capacito del fatto che esegua davvero le operazioni che mi servono
Studiati il codice che TU hai scritto Suona strano
Comunque, lo dico qua a nome di tutti Per definire i pin non è necessario usare un 'int'. Quel const ha senso ma... un 'int' occupa 2byte come penso sai e non ne vale la pena usarlo e ti spiego il semplice motivo: 'int' comprende i numeri che vanno da -32768 a +32768:
Punto 1: non ti serve assolutamente tutto quel range di numeri per un pin visto che Arduino ne ha mooolti di meno.
Punto 2: Il punto più importante: un pin non è una variabile ma una costante, per cui quel const ha senso, ma siccome poi il const lo devi abbinare o a un 'byte' o un 'int' come nel tuo caso, allora tanto vale usare un semplice #define !
Zero consumo di flash e ram, cit Astro
Arduino è uno sfaticato cit me 
In poche parole definisci quei pin in un modo migliore, ovvero questo:
#define PinSensoreManomissione 2
#define PinConsensoApertura 3
#define PinPulsanteRiarmo 4
Poi, passiamo al secondo "difetto":
int StatoManomissione = 0;
int lettura = 0;
Nel tuo codice queste VARIABILI intere, (sì queste sono variabili ) assumono soltanto 0 e 1.... Beh, ricordati che 'int' comprende numeri fino a 32mila e bla bla bla... bene. Che senso ha usare 2byte di memoria per una variabile che comprende solo 0 e 1? Non c'è l'ho contro di te, sto pensando al playground
Quindi, il modo migliore per dichiarare quelle due variabili, che comprendono solo 0 e 1, è usare byte. Byte come ben sai, comprende numeri da 0 a 255, più che sufficienti per il tuo scopo o sbaglio ?
Beh penso proprio di sì!
Qui quelle int diventano:
byte StatoManomissione = 0;
byte lettura = 0;
Spero che il mio grande discorso sia servito, ma non credo Ma di sicuro almeno per TE sarà utile
certo che è servito, sono io che sono uno sprecone e penso sempre di avere ram a go go
A dirla tutta, per meglio entrare nell'ottica di risparmio, dove serve uno stato acceso/spento tipo lo stato di manomissione, persino il byte è sprecato ed è sufficiente il bit 1/0
farò tesoro e cercherò in futuro di sprecare meno ardu-risorse.
grazie
Nativoz:
A dirla tutta, per meglio entrare nell'ottica di risparmio, dove serve uno stato acceso/spento tipo lo stato di manomissione, persino il byte è sprecato ed è sufficiente il bit 1/0
Non ci scherzare perché .. si fa veramente ... con UNA variabile ti tipo BYTE puoi memorizzare ben 8 flag on/off diverse, una per bit.
Modo semplice per farlo è usare le apposite funzioni per agire sui bit di un byte che si trovano nel reference (sezione Bits and Bytes): bitSet(), bitClear, bitRead(), bitWrite(), modo più complesso, ma più veloce, saper usare bene gli operatori che agiscono sui bit (sempre nel reference, Bitwise Operators): and / or / not .
Guglielmo
Nativoz:
certo che è servito, sono io che sono uno sprecone e penso sempre di avere ram a go goA dirla tutta, per meglio entrare nell'ottica di risparmio, dove serve uno stato acceso/spento tipo lo stato di manomissione, persino il byte è sprecato ed è sufficiente il bit 1/0
farò tesoro e cercherò in futuro di sprecare meno ardu-risorse.
grazie
Bene
Carina la cosa che ha pubblicato Guglielmo, in effetti....