ARDUINO 入门套件 项目03 爱情感应灯

使用TMP36温度传感器测量你的皮肤温度,来点亮LED,该温度传感器的输出电压直接按照摄氏度温度的一定比例变化。
接线图如下
ARDUINO 入门套件 项目03 爱情感应灯_第1张图片
程序如下

const int sensorPin = A0;//设模拟量输入管脚为A0(Arduino UNO 的模拟管脚为A0-A5,其可报告一个在0-1023范围内的值,即映射到一个0-5v的范围)。
const float baselineTemp = 32.0//设基准温度为32摄氏度,且常量类型为浮点型。

void setup()
{
  Serial.begin(9600);//打开一个串口,其波特率为9600
  for(int pinNumber = 2; pinNumber<5; pinNumber++)
  {
    pinMode(pinNumber,OUTPUT);
    digitalWrite(pinNumber,LOW);
  }
  //利用for()循环按顺序将管脚2到管脚4初始化
}

void loop() 
{
  int sensorVal = analogRead(sensorPin);//采集A0管脚上的电压  
  Serial.print("Sensor Value: ");
  Serial.print(sensorVal);//在串口监视器打印出该数值

  //把模拟输入的读数转化为电压
  float voltage = (sensorVal/1024.0) * 5.0;
  Serial.print(", Volts: ");
  Serial.print(voltage);
  Serial.print(", degrees C: ");

  //把电压转化为以度为单位的温度值
  float temperature = (voltage - .5) * 100;
  Serial.println(temperature);//该命令将在它发送变量值后在串口监视器中创建一个新行

  if(temperature < baselineTemp)//当体温低于基准温度时
  {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }
  else if(temperature >= baselineTemp+2 && temperature < baselineTemp+4)//当2<=体温-基准温度<=4时
  {
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }
  else if(temperature >= baselineTemp+4 && temperature < baselineTemp+6)//当4<=体温-基准温度<=6时
  {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
  }
  else if(temperature >= baselineTemp+6)//当体温-基准温度>6时
  {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
  }  
  delay(1000);//串口输出延时
}

总结
使用的函数:

  • Serial.begin( )//初始化串口通信
  • pinMode( )//设置管脚状态(输入\输出)
  • digitalWrite( )//设置引脚的输出电压为高\低电平
  • analogRead( )//采集模拟值
  • Serial.print( )//串口输出数据函数
  • Serial.println( )//该命令将在它发送变量值后在串口监视器中创建一个新行
  • for( )
  • if( ) else if( ) -

你可能感兴趣的:(ARDUINO,入门套件)