模块初探:Arduino+LM35温度传感器

LM35

LM35是美国国家半导体公司生产的线性温度传感器,具有比较高的工作精度和较广的适应范围。随着外界温度的变化,LM35输出的电压随之改变(+10mV/℃),再通过analog接口读取数据,经过公式计算便可得到环境温度。
LM35

参数:
工作电压:直流4~30V
工作电流:小于133μA
输出电压:+6V~-1.0V
输出阻抗:1mA负载时0.1Ω
精度:0.5℃精度(在+25℃时)
漏泄电流:小于60μA
比例因数:线性+10.0mV/℃
非线性值:±1/4℃
校准方式:直接用摄氏温度校准
额定使用温度范围:-55~+150℃
引脚说明:①电源正VCC;②信号输出S;③电源负GND;

材料

  1. Arduino
  2. LM35温度传感器
  3. 面包线
  4. 面包板

接线

面向有文字平面
左 => 5V
中 => A0
右 => GND

源码

void setup() {
   Serial.begin(9600);//初始化串口
}

void loop() {
  int val;
  double temp;
  val = analogRead(0);  //读取模拟量
  temp = (double)val*(5/10.24); //转化为温度
  delay(500);//串口输出频率
  Serial.print("Temperature:");
  Serial.print(temp);
  Serial.println("C");
}

接下来在串口监视器中就可以看到相应的温度输出

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用STM32驱动LM35温度传感器,可以按照以下步骤进行: 1. 连接电路:将LM35的VCC引脚连接到STM32的3.3V电源,将LM35的GND引脚连接到STM32的GND,将LM35的OUT引脚连接到STM32的一个模拟输入引脚(比如PA0)。 2. 编写代码:在STM32的开发环境中,编写代码来读取模拟输入引脚的电压值,并将其转换为温度值。以下是一个简单的示例代码: ``` #include "stm32f10x.h" #define LM35_PIN GPIO_Pin_0 #define LM35_PORT GPIOA int main(void) { // 初始化GPIO GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = LM35_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(LM35_PORT, &GPIO_InitStructure); // 初始化ADC ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE); // 读取温度值 uint16_t adc_value; float voltage, temperature; while (1) { ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5); ADC_SoftwareStartConvCmd(ADC1, ENABLE); while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); adc_value = ADC_GetConversionValue(ADC1); voltage = (float)adc_value / 4096 * 3.3; temperature = voltage * 100; } } ``` 在以上代码中,首先初始化了LM35引脚为模拟输入模式,然后初始化了ADC,并使用ADC读取了模拟输入引脚的电压值,最后将电压值转换为温度值(假设LM35输出的电压值直接对应温度值,单位为摄氏度)。 3. 测试:将LM35置于不同的温度下,观察读取到的温度值是否正确。如果正确,说明驱动成功。 需要注意的是,LM35输出的电压值与温度值的转换关系为10mV/℃,因此需要将读取到的电压值乘以100才能得到温度值。另外,ADC的采样时间也需要根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值