当温度传感器也连接到

时间:2017-08-22 07:14:12

标签: arduino arduino-uno arduino-ide electronics

我有一个Arduino Uno R3板。我正在尝试连接一个“拉伸传感器”,这是DIY与导电纤维,我得到它的阻力读取它。当我呼吸时,读数很好,是线性的,等等。但是,当我从SparkFun连接LilyPad温度传感器时,它很乱。即使我不移动或呼吸(屏住呼吸),阻力也会上下跳动超过10k欧姆。这只发生在我连接我的温度传感器时。

让我告诉你,我不是任何电子方面的专家。第一次使用Arduino板。

我的Arduino已连接到我的笔记本电脑。这也是他获得电力供应的方式。

简单的电气原理图如何连接元素:

Electric scheme

我的代码看起来像这样:

//  Temperature analog pin
const int tempPin = A0;
int num_samples = 10; // Number of samples before measure temperature!

//  Stretch pins
const int stretchPin = A5;
const long int R1_resistor = 593000; // Resistor 600k ohm (593k ohm measured with Ohm-meter)

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

void loop() {
  temperature();
  delay(200);
  stretch();
  delay(500);
}

/*
LEGENDs :
S = stretch
T = temperature
*/

void sendData(char symbol, float number) {
  Serial.print(symbol);
  Serial.println(number);
}

//Stretch sensor
void stretch () {
  int raw = 0;
  int V_in = 5;
  float V_out = 0;
  float R2_resistor = 0;
  float buffer = 0;
  raw = analogRead(stretchPin);
  if(raw) {
    buffer = raw * V_in;
    V_out = (buffer) / 1023.0;
    buffer = (V_in / V_out) -1;
    R2_resistor = R1_resistor * buffer;
    sendData('S', R2_resistor);
  }
}

// Temperature measure!
void temperature () {
  int total = 0;
  float temp;
  for(int i = 0; i < num_samples; i++) {
    total += analogRead(tempPin);
    delay(5);
  }
  float v = total * 4.9 / 1024.0; // 4.93 volt measure
  temp = ((v - 0-5) * 100) / num_samples
 sendData('T', temp);
} //  End of Temperature

你能帮助我完成我的项目吗?我已经坚持了一段时间了。谢谢。

编辑: 我会提供一些图表,以便您看得更清楚。

这就是没有温度传感器连接到Arduino的“图形”的样子。它显示出呼吸。

WITHout

此图显示连接温度传感器的“图表”。它很乱,在某些时候你可以说我正在呼吸,即使我不是。当我做的时候用红色标记。

WITH

问候。

马尔科

1 个答案:

答案 0 :(得分:2)

在250K时,担架传感器的输出阻抗过高,您会在通道之间遇到“泄漏”。 ATMega只有一个ADC,有8个通道,并且拉伸传感器阻抗非常高,它不能使ADC的输入足够快地恢复,以获得良好的读数。

建议的ATMega ADC信号阻抗最大为10k。您必须使用单电源,轨到轨,高输入阻抗运算放大器(如OPA341)来缓冲拉伸传感器的输入。

以防万一,这是缓冲器或电压跟随器的连线方式:

http://buildasynth.josephfosco.com/wp-content/uploads/2012/06/follower.gif

使用此原理图作为基础,将拉伸传感器的输出连接到vIn,并直接或通过1K到4.7K电阻连接到A5。您应该在运算放大器电源引脚之间添加一个小的0.1nF电容,并尽可能靠近它们。