littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于Arduino的ATtiny85与DS18B20恒温控制系统

项目简介

本项目基于Arduino平台,借助ATtiny85微控制器和DS18B20温度传感器构建恒温控制系统。该系统可监测环境温度,依据预设温度阈值控制输出设备,实现恒温调节,具备稳定性与可靠性,还能通过LED灯闪烁显示温度值。

项目的主要特性和功能

  1. 启用2s看门狗定时器保障系统稳定运行。
  2. 平均计算温度读数以减少误差。
  3. 温度显示不影响温度读取操作。
  4. 传感器通讯失败时尝试重新建立连接。
  5. 可配置温度阈值,根据温度高低激活或关闭输出。
  6. 输出激活时有交替警告输出用于连接蜂鸣器。
  7. 通讯失败5次后自动激活输出。
  8. 输出更新时间取决于平均读数数量和读取精度。
  9. 通过LED灯闪烁显示温度值,不同数值闪烁模式有别。

安装使用步骤

  1. 确保已安装以下依赖:从Arduino官网下载并安装Arduino IDE(本项目使用1.8.13版本编译)。
  2. 打开Arduino IDE,导入下载的项目源码。
  3. 进行烧录引导程序操作:在Arduino IDE中选择“工具” - “烧录引导程序”,选择合适的ISP编程器(如Arduino as ISP或USBasp),参考项目中提供的烧录引导程序设置图进行设置。
  4. 编译并上传代码到ATtiny85微控制器,参考项目中的IDE设置图和上传程序图进行配置。
  5. 连接硬件:将DS18B20温度传感器、LED灯、蜂鸣器等按项目提供的电路图进行连接。
  6. 根据硬件连接情况,在代码中配置相关参数,如温度阈值、端口号、传感器精度等。
  7. 运行项目并测试,根据实际情况调整参数。

注意事项

  1. 更改时钟源、BOD设置或是否保存EEPROM后,需用ISP编程器进行“烧录引导程序”操作。芯片空白或已预装引导程序时也需如此。
  2. 若使用USBasp编程器遇到权限问题,可按以下步骤解决:
    • 以root权限编辑/etc/udev/rules.d/99-USBasp.rules文件,添加SUBSYSTEM=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="dialout"
    • 将当前用户添加到dialout用户组:sudo usermod -aG dialout $USER
    • 注销并重新登录系统,拔掉USBasp设备,然后重启udev服务:sudo /etc/init.d/udev restart

许可协议

  • 软件部分遵循GNU Lesser General Public License 2.1及以后版本。
  • 硬件部分遵循CERN OHL 1.2许可协议。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】