电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>单像素温度计开源分享

单像素温度计开源分享

2022-11-10 | zip | 0.29 MB | 次下载 | 免费

资料介绍

描述

一像素温度计

欢迎大家,今天我们正在创建一个单像素温度计。

零件清单

我们将需要以下内容:

  • 1 x 共阳极 RGB LED
  • 1 x NTK100 热敏电阻
  • 一些跳线
  • 一个阿杜诺
  • 和一个面包板

 

 
pYYBAGNsVDqAAsymAAEtxWeYN7s359.png
 

编码

在我们构建电路之前,让我们快速浏览一下代码。

我的 LED 将从 0 摄氏度变为蓝色,42 摄氏度变为红色,在舒适的 21 摄氏度变为绿色。

 

 
poYBAGNsVEaAPZRxAABwRtH0DkI250.png
 

代码中的“定义”允许程序具有一定的灵活性,我将最高温度设置为 42 摄氏度,将最低温度设置为 0。我将使用 3 个 PWM 引脚 3、5 和 6 来控制“一个像素”。

#define minTemp 0   
#define maxTemp 42 
#define pinR 4     // Red PWM Pin       use 0 on ATTINY85 (pin 5) 
#define pinG 0     // Green PWM Pin     use 1 on ATTINY85 (pin 6) 
#define pinB 1     // Blue PWM Pin      use 4 on ATTINY85 (pin 3) 
#define pinT A1    // Thermistor Pin    use A1 on ATTINY85 (pin 7) 

声明一些将在主循环中使用的全局变量。

// Variables to calculate Centigrade from the Thermistor Pin input value 
int Vo; 
float R1 = 10000, logR2, R2, T, c1 = 1.009249522e-03,  
c2 = 2.378405444e-04, c3 = 2.019202697e-07; // <<<---- Magic numbers apparently 

在 Setup 函数中,我设置了每个 in 将做什么。三个 PWM 引脚是 OUTPUT 引脚。热敏电阻引脚为INPUT。

void setup() { 
// Init Serial 
//  Serial.begin(115200); 
// Init Pins 
 pinMode(pinR, OUTPUT); 
 pinMode(pinG, OUTPUT); 
 pinMode(pinB, OUTPUT); 
//Dont really need to do this for the UNO but I'm doing it anyway 
 pinMode(pinT, INPUT); 
} 

在我程序的主循环中,我根据热敏电阻值计算摄氏度,然后将该数字转换为 0 到 512 的范围。然后我使用一些数学来获得我的 LED 的红色、绿色和蓝色值。LED 的颜色每 100 毫秒更新一次。如果您希望它以较慢的速度更新,请将值更改得更高。

void loop() { 
// Calculate Centigrade : Got function from http://www.circuitbasics.com/arduino-thermistor-temperature-sensor-tutorial/ 
 Vo = analogRead(pinT); 
 R2 = R1 * (1023.0 / (float)Vo - 1.0); 
 logR2 = log(R2); 
 T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); 
 T = T - 273.15; 
// Map to the range outlined in minTemp and maxTemp 
 int temp = map(T,minTemp,maxTemp,0,512); 
// Assign a RGB value to the range 0 to 512 found in temp 
 int r = constrain(temp-256,0,255);             
 int g = constrain(256-abs(temp-256),0,255);    
 int b = constrain(256-temp,0,255);             
// PWM Write to get "faded colours" 
// Remove "255 -" if LED's are common Cathode 
 analogWrite(pinR,255 - r); 
 analogWrite(pinG,255 - g); 
 analogWrite(pinB,255 - b); 
// Print Temperature to Serial 
//  Serial.println(T); 
 delay(100); 
} 

将此草图上传到 Arduino,拔下它并从电路开始。

一个像素

我从 RGB LED 或 Pixel 开始

在最常见的阳极 RGB LED 上,长引脚是阳极。以阳极为 2nd pin 看 LED 时,第一个 Pin 为红色;第三个是绿色,最后一个是蓝色。

 
pYYBAGNsVE2AJfdyAAF03tLWJOM424.png
 
  • 我把 LED 放在面包板上
  • 连接红色、绿色和蓝色引脚和 3 个其他端子排上的三个 220 欧姆限流电阻。
  • 将一根引线连接到 LED 的阳极和 220 欧姆电阻器的 3 根引线。

我用红色、绿色和蓝色引线来表示,嗯,红色绿色和蓝色。我用白色做阳极

 
pYYBAGNsVFCAAPsIAAFO8zC0nf8227.png
 

温度感应器

移动到温度传感器部分

  • 将热敏电阻放在 2 个端子条之间
  • 然后是热敏电阻一端和另一个接线板的 100k 电阻。
  • 连接热敏电阻未连接端的引线和正轨。

当我在做正极引线时,我也会将阳极连接到正极轨,并准备 2 根正极和接地引线连接到 Arduino。我用白色表示正极,黑色表示接地

  • 将接地轨的引线连接到 100K 电阻器的另一端
  • 然后在两部分相遇的地方连接一根引线,我用黄色表示输入。
 
poYBAGNsVFOAJ2HvAAFEHqe0rWI994.png
 

Arduino联播

现在可以快速轻松地将所有松散的引线连接到 Arduino

  • 白到5v
  • 黑去地
  • 黄色到 A0
  • 红到 3
  • 绿色到 5 和
  • 蓝色到 6
 
poYBAGNsVFeAf6AHAAEwFi5qb-c906.png
 

插入 Arduino

我们有一个 1 像素的温度计

我用一个由热胶和一管银纸制成的扩散器覆盖了 LED。

如果我在热敏电阻上点燃火焰,您将看到 LED 变为红色,表示温度为 42 或更高。

 
pYYBAGNsVF2AB9ZWAAFOAGDj6XQ777.png
 

如果我在热敏电阻上放一个冷罐,LED 会变蓝

 
poYBAGNsVGCAOrr5AAFnK7Vlhv0648.png
 

该程序还将温度输出到串行。

使用串行绘图仪,当触摸传感器时,我可以看到火焰的闪烁和“冷罐”。

 
pYYBAGNsVGOAE1sHAACpvU6u2Vk678.png
 

这就是今天的内容。

 


评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费