comandare un relè con pulsante e lm35

grazie mille **>Claudio_FF **
sto leggendo , ma vorrei capire meglio l'uso di unint8_t, ho letto che è int(intero), senza segno, a 8 bit. Ecco 8 bit lo spazio di archiviazione, int <Integer è un modo per memorizzare numeri utilizzando 2 byte.
Il range di memorizzazione va quindi da -32768 a 32767 cioè da -215 a (215 -1).> (da Elementi base del linguaggio di programmazione di Arduino) . Lo ritrovo con uint16_t sensor=[..], capisco che è per avere più spazio per memorizzare la variabile di tipo intero e il sensore può misurare temperature negative quindi senza segno e non ci arrivo a capire il perché di questa soluzione sul pulsante. (o non ci ho capito nulla)

Seconda curiosità (1 == stato) è diverso (stato==1)?

Standardoil:
io qualcosa te lo ho detto, due volte
Non ci sarà una terza, adesso la palla è a te

non lo nego e ti ringrazio, il problema è la mancanza mia di informazioni su come compilare uno sketch. singolarmente funzionano solo che come mi è stato detto:

Claudio_FF:
Non è che non lo legge. Continui a comandare lo stesso relé da due if diverse che fanno cose diverse, e la seconda annulla i comandi della prima.

Il relé va comandato in un solo punto,

lo sbaglio è sul dire a BUTTON che lui, ignoravo questa uint_8t (come ancora non capisco del perchè sul pulsante), non chiedo la terza.. ora sto capendo come strutturare determinate funzioni nel programma e credo che il prossimo post sara il risultato, grazie ancora :slight_smile:

lupin89:
sto leggendo , ma vorrei capire meglio l'uso di unint8_t, ho letto che è int(intero), senza segno, a 8 bit.

Corrispondenze:

tipi_variabili_arduino.png

non ci arrivo a capire il perché di questa soluzione sul pulsante

Non ho capito la domanda.

Seconda curiosità (1 == stato) è diverso (stato==1)?

Ni, se scrivi giusto sono la stessa cosa, invece se dimentichi un uguale nel primo caso il compilatore lo segnala mentre nel secondo no.

Claudio_FF:
Non ho capito la domanda.

Le variabili sono aree della memoria di Arduino e uint8, è stata utilizzata per le dimensioni del valore che si vuole memorizzare?
perché non si è usata un'altro tipo di variabile? tipo int.. scusa la poca chiarezza, ma sono alle prime armi, ho capito che queste int sono come contenitori, dove appunto inserisco un valore, che in base all'uso cambia. Ho cercato quindi di sfruttare lo stato 0 delle variabili "fisse" dove leggevano un dato x e valore x, procedendo con un cambio stato. Ovviamente non sono riuscito nell'intento perché nn ho assegnato le giuste variabili da comandare rele da un solo punto del programma.

lupin89:
Le variabili sono aree della memoria di Arduino e uint8, è stata utilizzata per le dimensioni del valore che si vuole memorizzare? perché non si è usata un'altro tipo di variabile? tipo int

Ho usato una 8 bit perché è sufficiente per contenere il valore, e senza segno perché non devo trattare numeri negativi. Potevo usare anche una 16, 32 o 64 bit, e anche con segno, funzionerebbe uguale, ma sarebbe sia uno "spreco" di spazio che di tempo elaborazione (in questo caso comunque del tutto irrilevanti). Per la lettura analogica invece serve una variabile da almeno 16 bit perché il valore massimo 1023 non ci sta in 8.

Attento: in C l'and logico si scrive &&!
Aggiungo che &, invece, è la moltiplicazione matematica binaria bit per bit tra due valori.

Ieri sera mi sono fatti certi filmoni e non riuscivo a capire cosa sbagliavo, oggi sono andato a vedere il diagramma postato prima ed è uscito solo solo:

if((1==manuale ) || (celsius>20)) {
  digitalWrite (RELEY, HIGH);
  } else {
    digitalWrite (RELEY, LOW);
    
  }

grazie infinite :slight_smile: