grazie in anticipo;
/un semplice programma, che legge i valori di due sensori, e se tali valori non rispettano i miei parametri accende determinati pin digitali di output. inoltre c'è un servomotore che ogni 17280 secondi gira di centoottanta gradi;
// i sensori da me usato phidgets temperatura umiditaa analogico, che si trova in robot italy, mentre è un comune servo analogico da 4,8v;
void setup ()
{
int temperaturaPin = 1; //sensore temperatura pin 1 analogico int float temperatura = 0;
int lampadinaPin = 5; // pin digitale uscita che si attiva in caso di una determinata temperatura;
int umiditaPin = 2; //sensore umidita pin 2 analogico;
int pompaPin= 10; // pin digitale uscita, che si attiva in caso di una determinata umidita;
int pos = 0; // variabile posizione servo, che parte da zero gradi
int temperatura = 0; // variabile di comodo;
int tempo= 0; // variabile di comodo, che si incrementa di un unita ogni volta che si muove il servo;
pinMode(temperaturaPin, INPUT);
pinMode (lampadinaPin, OUTPUT);
pinMode (umiditaPin, INPUT);
pinMode (pompaPin, OUTPUT);
}
void loop(){
{ temperatura= analogRead(temperaturaPin); //leggiamo il sensore temperatura, e inseriamo il valore nella variabile temperatura ;
temperatura = (temperatura*0.0,22222)-61.111; //trasformo attraverso la formula che trovo nel datasheet, i valori letti dalla sonda in volt in gradi centigradi;
temperatura= floor(temperatura); //approssimo per difetto il valore che ottengo
if temperatura <37 {
{digitalWrite(lampadinaPin, HIGH); // se la temperatura è minore di 37, accendo il pin digitale lampadinapin;
}
else {if temperatura >38 // se la temperatura è maggiore di 37, e maggiore di 38 spengo la il pin lampadina;
{then digitalWrite(lampadinaPin, LOW);}}
}
delay(20000)};//aspetto 20 secondi prima di ripetere il ciclo temperatura;
{umidita = analogRead(umiditapin); //leggo l'umidita dal sensore umidita, e inserisco il valore in una variabile;
umidita = (umidita*0,1906)-40,2;// attraverso una formula che trovo nel datasheet trasformo il valore in V della sonda in valori umidita;
umidita = floor(umidita);// approssimo per difetto il valore umidita;
if umidita< 52{
{then digitalWrite(pompaPin, HIGH);}// se il valore dell'umidita è minore di 52 attivo il pin digitale pompapin;
{else {if umidita>53// se invece l'umidita è maggiore di 52, ma maggiore di 53, allora spengo il pin;
else digitalWrite(pompaPin, LOW);}}
delay(30000)};//aspetto 30 secondi e poi ripartiamo con il ciclo umidita;
{servomotore.attach(servopin3); //il servo motore analogico si trova nel pin tre analogico;
posizioneservo=analogRead(servomotore); //leggo la posizione del servo motore, e inserisco tale valore in una variabile;
tempo = tempo +1; //contatore di questo ciclo, che esce nel caso se è di valore nove cinque
{if tempo = 95
{else // se il tempo non è 95 allora
{ if posizioneservo =0 //se la posizioneservo è zero allora sposta il servo di centoottantagradi;
{then
servomotore.write(180)}
{else // in caso contrario sposta il servo a zero gradi;
servomotore.write(0)}}}
end}
delay(17280000);*} //asetta diciasettamiladuecendoottanda secondi e poi riparti con tale ciclo;