Salve, perdonate assolutamente la mia ignoranza, ma programmando il sensore di temperatura DS18B20 noto che nel programma dato da elegoo(dove ho preso il kit) utilizza una funzione: void loop (void) e void setup(void), ora mi chiedo in cosa differiscono dalle "solite" void loop() e void setup()?
Questo è il mio sketch:
#include <DallasTemperature.h> #include <OneWire.h>
int sensor=0;
int sogliaraffreddamento=27;
int sogliariscaldamento=25;
const int Ventola=30;
const int Lampada=38;
int soglia = 27; #define ONE_WIRE_BUS 31 // Cavo dati collegato alla porta 31 di arduino
OneWire oneWire(ONE_WIRE_BUS);// Imposta una istanza oneWire per comunicare con i dispositivi OW
DallasTemperature sensors(&oneWire);
void setup(void) {
pinMode (Ventola, OUTPUT);
pinMode (Lampada, OUTPUT);
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
sensors.begin();
}
void loop(void) {
Serial.println("Acquisendo la temperatura...");
sensors.requestTemperatures(); // Manda la richiesta per la temperatura
Serial.println("FATTO");
Serial.println("La temperatura nel salone è: ");
Serial.println(sensors.getTempCByIndex(0));
if (sensors.getTempCByIndex(0)<sogliaraffreddamento)
{digitalWrite(Ventola,LOW);
}
if (sensors.getTempCByIndex(0)>sogliaraffreddamento)
{digitalWrite(Ventola,HIGH);
digitalWrite (Lampada,LOW);
}
if (sensors.getTempCByIndex(0)<sogliariscaldamento)
{digitalWrite(Lampada,HIGH);
}
if (sensors.getTempCByIndex(0)>sogliariscaldamento)
{digitalWrite(Lampada,LOW);
}
Sono equivalenti, mettere void loop(void) si indica esplicitamente che la funzione non accetta parametri, ma è equivalente a void loop().
Nei prototipi di funzione in linguaggio C, "i prototipi di funzione non si usano in arduino quindi è solo una curiosità" ;), nel prototipo le parentisi vuote indica che i parametri non sono stati definiti ma comunque la funzione può averli, mettere void indica invece esplicitamente che la funzione non accetta parametri.
>Vurpian: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).
In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag:
[code] _il _tuo_ codice_ [/code]
così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.
Silente:
Ma Guglielmo, una domanda: come fai a far vedere i tag?
Ci metto all'inizio ed alla fine un tag fatto apposta: [ nobbc ] ...... [ /nobbc ], ovviamente senza spazi, che disabilita (e riabilita) i tag BBcode.
Occhio che funziona abbasta bene quando scrivi il post in modalita "View source" (puro testo), ma meno in modalità normale.
Guglielmo
P.S.: Prima che me lo chiedi, NO, non c'è nel forum una lista dei tag BBcode ... io l'ho scoperto per caso, provandolo, dato che fa parte dei tanti che esistono (... molti dei quali però, qui sul forum, NON funzionano/NON sono implementati).
gpb01:
... non c'è nel forum una lista dei tag BBcode ...
Una lista che pero' NON fa parte del forum, e' il "reference" di bbcode.org ... che li racoglie un po tutti ... ovviamente, come ha detto Guglielmo, alcuni o anche parecchi qui sul forum potrebbero NON funzionare, perche' chi ha implementato lo script non li ha abilitati ... tocca provare e vedere se funzionano uno per uno
... EDIT ...
gpb01:
... sino ad allora NON saranno ammessi nuovi post.
Scusa, ho scritto mentre scrivevi anche tu .. .cancella pure se vuoi, no problem ...