Go Down

Topic: termocoppie k e arduino (Read 739 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy