Pages: 1 2 3 [4]   Go Down
Author Topic: Sensor PT1000 e Sensor NTC10  (Read 4719 times)
0 Members and 3 Guests are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Penso que seja isto: mas ta a dar erro na librarie falta WProgram.h

//----------------------------------------------------------------------------
// RTD Module Example Sketch
// Last revision 30 November 2009
// Licence: GNU GPL
// By Trystan Lea
//----------------------------------------------------------------------------

//----------------------------------------------------------------------------
// Load RTD library and create new instance
//----------------------------------------------------------------------------
#include "RTDModule.h"
RTDModule rtd;

//----------------------------------------------------------------------------
// Temperature variables
//----------------------------------------------------------------------------
double CYLB,CYLT,COL;

//----------------------------------------------------------------------------
// Setup
//----------------------------------------------------------------------------
void setup()
{
  rtd.setPins(4,5,2);                                //RTD PT1000 pins 4,5 are digital pins for multiplexer, 2 is analog input
 
  //rtd.calibration( input number, scaler, offset )
  rtd.calibration(0, 0.120270927, -15.066198679);   //INPUT 0 pin 12
  rtd.calibration(1, 0.120821076, -13.824162893);   //INPUT 1 pin 14
  rtd.calibration(2, 0.120400012, -14.91327759);    //INPUT 2 pin 15
     
  analogReference(INTERNAL);                        //Set reference to 1.1V ready for RTD measurements

  Serial.begin(9600);
}

//----------------------------------------------------------------------------
// Main loop
//----------------------------------------------------------------------------
void loop()
{
  //Get temperatures and pass through digital low pass filter
  COL = digitalLowPass(COL, rtd.getTemperature(0) ,0.90);
  CYLB = digitalLowPass(CYLB, rtd.getTemperature(1) ,0.90);
  CYLT = digitalLowPass(CYLT, rtd.getTemperature(2) ,0.90);
 
  //Print temperatures out to serial
  Serial.print(COL);
  Serial.print(' ');
  Serial.print(CYLB);
  Serial.print(' ');
  Serial.println(CYLT);
 
}
//----------------------------------------------------------------------------

//Digital low pass filter
double digitalLowPass(double last_smoothed, double new_value, double filterVal)
{
  double smoothed = (new_value * (1 - filterVal)) + (last_smoothed * filterVal);
  return smoothed;
}






Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Penso que descobri o problema tinha de mudar na libraria por Arduino.h
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Faz a leitura mas n me ta a dar em graus centrigados smiley-sad
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O site dizia que tens de calibrar a leitura.... fizeste isso?
Era para isso que serve o potenciómetro...
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Não fiz isso não vou ler com mais atenção como tive problemas com a libraria e penso ter resolvido não tomei atenção a mais nada.

Está correcto o que fiz? para resolver o problema da librarie quando faltava WProgram.h substituir por Arduino.h?
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sim, se compilou, em princípio era esse o problema.

Outro problema é que a biblioteca não é feita para a a tua aplicação. Então tens de adaptar a biblioteca:

No ficheiro RTDModule.cpp
Code:
void RTDModule::setPins(int _dpinA, int _dpinB, int _analogInPin)
{
   analogInPin = _analogInPin;
//   dpinA = _dpinA; //   setChannel(channel);  //TIRA ESTA LINHA
//   dpinB = _dpinB; //   setChannel(channel);  //TIRA ESTA LINHA

//   pinMode(dpinA, OUTPUT);  //   setChannel(channel);  //TIRA ESTA LINHA
//   pinMode(dpinB, OUTPUT);  //   setChannel(channel);  //TIRA ESTA LINHA
   dval=10;                  //A delay value..
}
[...]

double RTDModule::getTemperature(int channel)
{
//   setChannel(channel);  //TIRA ESTA LINHA
   double temperature = scale[channel] * analogRead(analogInPin) + offset[channel];
   return temperature;
}

Agora tens de adaptar o código:

Code:
//----------------------------------------------------------------------------
// RTD Module Example Sketch
// Last revision 30 November 2009
// Licence: GNU GPL
// By Trystan Lea
//----------------------------------------------------------------------------

//----------------------------------------------------------------------------
// Load RTD library and create new instance
//----------------------------------------------------------------------------
#include "RTDModule.h"
RTDModule rtd;

//----------------------------------------------------------------------------
// Temperature variables
//----------------------------------------------------------------------------
double Temperatura;

//----------------------------------------------------------------------------
// Setup
//----------------------------------------------------------------------------
void setup()
{
  //rtd.calibration( input number, scaler, offset )
  rtd.calibration(0, 1.0, 1.0);   //INPUT 0 pin 12

  analogReference(INTERNAL);                        //Set reference to 1.1V ready for RTD measurements

  Serial.begin(9600);
}

//----------------------------------------------------------------------------
// Main loop
//----------------------------------------------------------------------------
void loop()
{
  //Get temperatures and pass through digital low pass filter
  Temperatura = digitalLowPass(Temperatura, rtd.getTemperature(0) ,0.90);
 
  //Print temperatures out to serial
  Serial.print ("Temperatura:");
  Serial.println(Temperatura);
 
//So para teste...
delay(1000);
}
//----------------------------------------------------------------------------

//Digital low pass filter
double digitalLowPass(double last_smoothed, double new_value, double filterVal)
{
  double smoothed = (new_value * (1 - filterVal)) + (last_smoothed * filterVal);
  return smoothed;
}
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

atencao, um sensor ptc e um sensor ntc tabalham de maneira diferente:

enquanto um aumenta a resistencia com a subida de um grau centigrado, no outro diminui.

 
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sim e o PTC não costuma ter a precisão da NTC, sendo por isso usado como fusível térmico em vez de sensor.

Neste caso é uma sonda PT... nota também que o código é feito de propósito para sondas PT, não NTC. smiley
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

boas bubulindo,

Tive ausente ver este fim de semana se volto a ver tudo e resolver tudo o que falta basicamente o que notei é que estava a dar a leitura em Fahrenheit e necessito que dê em graus centrigados.

Cumprimentos
Logged

Pages: 1 2 3 [4]   Go Up
Jump to: