Go Down

Topic: termocoppie k e arduino (Read 710 times) previous topic - next topic

silvia1216

ciao a tutti!

sto costruendo un data-logger di temperature per un esperimento che stiamo facendo a chimica.

ho provato con l' LM35 ma visto che non è molto preciso (devo realizzare dei grafici delle curve di temperatura) mi sono orientato per delle termocoppie K,  ho visto almeno tre topic sul forum (molto figo) e sul playground una libreria per il max6675 ma ho alcuni dubbi:

Code: [Select]
#include <MAX6675.h>

int CS0 = 11;         // CS pin on MAX6675
int SO = 12;          // SO pin of MAX6675
int SCK = 13;         // SCK pin of MAX6675
int units = 0;        // Units to readout temp (0 = ÀöF, 1 = ÀöC)
float error = 0.0;    // Temperature compensation error
float temp_out = 0.0; // Temperature output varible

MAX6675 temp0(CS0,SO,SCK,units,error);

void setup() {
  Serial.begin(9600);
}

void loop() {
  temp_out = temp0.read_temp(5);  // Read the temp 5 times and return the average value to the var

  Serial.println( temp_out );         // Print the temperature to Serial
  delay(1000);                    // Wait one second
}


ma come posso fare per acquisire la temperatura ogni 20 secondi e spedirla sulla seriale, se devo indicare quante volte leggerla?

grazie

Michele Menniti

attualmente il programma fa 5 letture istantanee e ne calcola la media, al ritmo di un secondo, se vuoi che ciò avvenga ogni 20 secondi devi portare il valore del delay da 1000 a 20000
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

silvia1216

e per togliere la media come devo fare...

Michele Menniti

temp_out = temp0.read_temp(5);  // Read the temp 5 times and return the average value to the var

metti 1 al posto di 5, ma non è una buona manovra, le 5 letture impiegano un istante e la media di esse ti garantisce l'immunità da qualche lettura "disturbata". Vedrai che anche mettendo 1 non avrai alcuna riduzione del tempo, che dipende praticamente solo dal delay.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

silvia1216

#4
Jan 09, 2013, 09:02 pm Last Edit: Jan 09, 2013, 09:11 pm by silvia1216 Reason: 1
scusami se ti secco ancora ma secondo te sul mega 2560 i pin sono gli stessi, se no su quali devo mettere i rispettivi contatti?

e, se volessi fare il modo che quando schiaccio un bottone parte e quando lo rischiaccio si spegne (credo si chiami ingresso monostabile ma non ne sono troppo sicuro) ?



scusami ancora

silvi

Code: [Select]

int CS0 = 11;         // CS pin on MAX6675
int SO = 12;          // SO pin of MAX6675
int SCK = 13;         // SCK pin of MAX6675


La libreria può lavorare con qualunque pin digitale, per scegliere i pin in modo arbitrario devi modificare il codice precedente.

Per l'altra domanda dai uno sguardo agli esempi prensenti nell'ide di Arduino.

Brevemente:
Ti serve un pin impostato come imputo con pull-up interna (oppure devi usare un a Resistenza esterna), poi ti serve di usare l'elempio debounce, il quale ha la funzione di discriminare la pressione del pulsante dal rimbalzo tipico di tutti i contatti meccanici. Poi ti serve una if else per eseguire codice in base alla condizione del pulsante.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

silvia1216

grazie a tutti anche se non mi è chiara una cosa: sono online e mi segna come offline? come mai

Michele Menniti


grazie a tutti anche se non mi è chiara una cosa: sono online e mi segna come offline? come mai

vai nel tuo profilo e attiva la relativa casella e sarai "online" anche tu :)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up