Go Down

Topic: Problemi sul software per un progetto! (Read 5 times) previous topic - next topic

acca90

il sensore è un LM35 collegato direttamente ad arduino!!!
Intendevo come stabilizzare il più possibile la temperatura per evitare concomitanze di varie azioni(es accensione dei led giallo/rosso)

qsecofr


il sensore è un LM35 collegato direttamente ad arduino!!!
Intendevo come stabilizzare il più possibile la temperatura per evitare concomitanze di varie azioni(es accensione dei led giallo/rosso)


è te l'ho detto: il metodo giusto è avere una temperatura di on diversa da quella di off... se hai per esempio una temperatura critica di 30° accendi il rosso quando superi i 30° e spegni il rosso quando scendi sotto i (30°- la soglia di isteresi... per esempio 29°) questo perchè le temperature bene o male cambiano continuamente di qualche mezzo grado...
si può inoltre nella procedura di lettura dell'lm leggere più volte l'analogica e fare una media dei valori letti...
sum =0;
for (i = 0; i < 10; i ++)
   sum = sum + analogread(pintemperatura);

valore= sum /10;

non mi hai detto che cosa regola questo arduino.

ps: l'lm35 è ottimo e molto facile da usare: non deve darti sbalzi strani di temperatura ma è bene controllare che la varia circuiteria che hai sparso (...servo) non beva tutti gli ampere dall'arduino determinandoti cadute di tensione. Se vuoi puoi "aumentare" la risoluzione del sensore con questo metodo che imposta una divera tensione di riferimento sull'analogica
http://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor

acca90

in che senso cosa regola?
Quote
si può inoltre nella procedura di lettura dell'lm leggere più volte l'analogica e fare una media dei valori letti...
sum =0;
for (i = 0; i < 10; i ++)
   sum = sum + analogread(pintemperatura);

valore= sum /10;

Mi puoi spiegare cosa significa il passaggio nella parentesi?
Nel senso mettendo questo passaggio, se ho capito, fa la media di 10 letture???
Inoltre il sensore l'ho collegato così come nel link che mi hai postato!!!!


qsecofr


in che senso cosa regola?
Quote
si può inoltre nella procedura di lettura dell'lm leggere più volte l'analogica e fare una media dei valori letti...
sum =0;
for (i = 0; i < 10; i ++)
   sum = sum + analogread(pintemperatura);

valore= sum /10;

Mi puoi spiegare cosa significa il passaggio nella parentesi?
Nel senso mettendo questo passaggio, se ho capito, fa la media di 10 letture???
Inoltre il sensore l'ho collegato così come nel link che mi hai postato!!!!




cosa regola nel senso di cosa c'è attaccato a questo arduino... una serra, un frigorifero, una centrale nucleare... è curiosità più che altro...

si è il ciclo "for" è uno dei metodi per fare un ciclo principali, l'altro metodo è il ciclo while ed il do-while

http://arduino.cc/en/Reference/HomePage

il for così scritto inizializza a zero la variabile i, poi ripete il blocco (che verrà riportato tra parentesi graffe o nel caso di una sola istruzione può essere sottointeso come ho fatto io) fintanto che è vera la condizione e ogni volta che il ciclo è terminato viene eseguita la terza parte (i++) che incrementa il contatore del ciclo... in pratica quel ciclo fa 10 volte l'istruzione sum= sum + analogread incrementado da 0 a 10 il valore di i (che in questo caso serve solo da contatore e non è usato nel ciclo)
L'istruzione sum= sum + analogread somma ogni volta il valore di analog read a sum quindi alla fine sum è uguale alla somma di 10 letture... poi c'è la divisione e quindi si fa una media.
E' fondamentale che tu ti studi i cicli di controllo for e while: è alle basi della programmazione e non c'è praticamente linguaggio che non li contempli (eventualmente  con altre sintassi).
bon allora adesso cerca di integrare il ciclo che ti ho spiegato nel tuo programma sostituendo la lettura "semplice" (analogread) con questa lettura multipla, non mettere solo il sum = sum + analogread ma ci metti le graffe e ci metti anche un'istruzione di  delay (direi un 10 millisecondi può bastare).... e vediamo se le letture diventano più affidabili.

acca90

il sistema non è collegato a niente!!!nel senso che è formato solo da arduino e board!!!

Go Up