Pages: [1]   Go Down
Author Topic: termocoppie k e arduino  (Read 530 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Se Il Lavoro Vi Innervosisce, Abbandonatelo
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#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
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12563
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 17
Se Il Lavoro Vi Innervosisce, Abbandonatelo
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e per togliere la media come devo fare...
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12563
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 17
Se Il Lavoro Vi Innervosisce, Abbandonatelo
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: January 09, 2013, 03:11:30 pm by silvia1216 » Logged

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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.
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 17
Se Il Lavoro Vi Innervosisce, Abbandonatelo
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 569
Posts: 12563
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley
Logged

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

Pages: [1]   Go Up
Jump to: