该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

接下来就是上代码的时候了(C语言)

/*

* main.c

*

* Created on: 2017年7月24日

* 说明:程序使用的事wiringPi。PWM接口为8

* Author: cheetah

*/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define _FANPIN 8

#define MAX_SIZE 32

#define TEMP_PATH "/sys/class/thermal/thermal_zone0/temp"

int initWiringPi();

float getCpuTemp();

void dieError(char *errors);

int main(void)

{

//初始化

if (initWiringPi() < 0)

{

return -1;

}

printf("[ OK ]Start geeiot smart fan controler.\n");

while (1)

{

//获取CPU温度 浮点数据

float temp = getCpuTemp();

//printf("CPU tempreture is %0.2f\n", temp);

//如果小于0,说明获取失败,设置50%电压

if (temp < 0)

{

softPwmWrite(_FANPIN, 50);

}

else if (temp < 30)

{

softPwmWrite(_FANPIN, 0);

}

else if (temp > 30 && temp < 40)

{

softPwmWrite(_FANPIN, 30);

}

else if (temp > 40 && temp < 50)

{

softPwmWrite(_FANPIN, 40);

}

else if (temp > 50 && temp < 60)

{

softPwmWrite(_FANPIN, 50);

}

else

{

softPwmWrite(_FANPIN, 80);

}

delay(1000);

}

return 0;

}

/*

* 初始化wiringPi

*/

int initWiringPi()

{

if (wiringPiSetup() != 0)

{

dieError("WiringPi setup failed!");

return -1;

}

if (softPwmCreate(_FANPIN, 0, 100) != 0)

{

dieError("GPIO soft pwm setup failed!");

return -2;

}

return 0;

}

/*

* 获取树莓派CPU温度

*/

float getCpuTemp()

{

int fd;

float temp = 0;

char buf[MAX_SIZE];

// 打开/sys/class/thermal/thermal_zone0/temp

fd = open(TEMP_PATH, O_RDONLY);

if (fd < 0)

{

dieError("Failed to open thermal_zone0/temp");

return -1;

}

// 读取内容

if (read(fd, buf, MAX_SIZE) < 0)

{

dieError("Failed to read temp\n");

return -1;

}

// 转换为浮点数打印

temp = atoi(buf) / 1000.0;

return temp;

}

/*

* 输出错误信息

*/

void dieError(char *errors)

{

if (strlen(errors) <= 0)

{

return;

}

else

{

printf("[ FAILED ]%s\n", errors);

}

}

树莓派pwm调速c语言,树莓派智能温控风扇(PWM控制风扇转速)相关推荐

  1. 51单片机-PWM调速(直流电机,智能小车的电机调速)

    文章目录 前言 一.PWM 二.产生PWM的方法 使用定时器产生一个恒定的周期 中断服务子程序里设置比较值 三.实验 使用PWM对直流电机调速 使用PWM对智能小车的电机调速 总结 前言 这次来对PW ...

  2. pwm调速c语言,PWM调速的C语言程序编写

    <PWM调速的C语言程序编写>由会员分享,可在线阅读,更多相关<PWM调速的C语言程序编写(6页珍藏版)>请在人人文库网上搜索. 1.PWM调速的C语言程序编写关于PWM的原理 ...

  3. pwm调速流程图小车_51单片机 小车 L298N pwm调速 串口控制 按键控制

    难点:1.串口定时器T1,和T0定时器优先级 2.pwm频率与占空比的设置 按键控制 按键1--前进 按键2--后退 按键3--加速 按键4--减速 (板子上只有四个按键) 串口控制 '1'--前进 ...

  4. STM32 学习笔记1-智能小车-基于PWM 调速 的电机设置

    目录 本文章主要介绍 STM32 电机相关软件的配置,PWM的相关介绍,csdn上面有很多资料 硬件: PWM(Pulse Width Modulation) 介绍: 基本定时器(TIM6/7) 通用 ...

  5. STM32循迹PWM调速及阿克曼舵机转向

    1,准备 红外循迹模块,L298N电机驱动模块,STM32C8T6最小系统,SG90舵机,KEIL5 2,涉及的理论知识和硬件参考 理论 阿克曼转向是一种现代汽车的转向方式,在汽车转弯的时候,内外轮转 ...

  6. 树莓派4b:PWM调速风扇+DIY亚克力板外壳的定制降温方案

    宿舍里的校园网只能连接两台设备,于是我就给树莓派4B装上了openwrt,加上淘宝上买的1200M无限网卡(!买的时候注意型号和宽度大小)作为路由器.但在官方外壳里,树莓派温度稳定在60~70度,所以 ...

  7. 在c语言中pwm的作用,PWM调速的C语言程序编写(非常简单);

    <PWM调速的C语言程序编写(非常简单);>由会员分享,可在线阅读,更多相关<PWM调速的C语言程序编写(非常简单);(4页珍藏版)>请在人人文库网上搜索. 1.PWM调速的C ...

  8. pwmc语言调速程序_51单片机的直流电机PWM调速系统设计,正转反转,加减速,急停等,仿真和代码...

    设计思路 直流电机PWM控制系统的主要功能包括:实现对直流电机的加速.减速以及电机的正转.反转和急停,并且可以调整电机的转速,能够方便的实现电机的智能控制. 主体电路:即直流电机PWM控制模块.这部分 ...

  9. 104、基于51单片机智能风扇pwm调速红外遥控无线遥控风扇温控风扇系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.Protues仿真 六.流程图 七.程序源码 八.资料包括 摘要 随着气温的逐渐上升, ...

最新文章

  1. LeetCode简单题之检查两个字符串数组是否相等
  2. php打印出来乱码_PHP输出中文乱码的解决方法(转载)
  3. mysql-innodb 日志机制分析----写在死锁前面
  4. asp.net控件开发基础(21)
  5. 小米造富神话虚实:平均年薪16万 470亿元期权咋分
  6. bin mysql u root_MySQL安装后续步骤(修改root密码)
  7. 逐帧动画案例(奔跑的小人)
  8. 《操作系统》信号量机制
  9. 并发框架——Distruptor
  10. ensp路由器MTU设置1200后,ping不通丢包问题
  11. Windows 无法使用内置管理员账户打开IE
  12. 电视机hdr是什么功能
  13. Java violate变量
  14. Elasticsearch集群原理、安装和基本使用
  15. cpu性能测试软件 国际象棋,CPU性能评测软件
  16. 订单BOM -销售BOM-标准BOM
  17. 关于计算机科技协会的标语,科技创新宣传口号(精选50条)
  18. vue下载excel文件的方法
  19. 关系抽取:图卷积网络的学习(二)(附代码)
  20. 电脑蓝屏该如何给电脑重装系统

热门文章

  1. R语言︱SNA-社会关系网络 R语言实现专题(基础篇)(一)
  2. Hazel引擎学习(三)
  3. 百面机器学习 之 逻辑回归
  4. 孙溟㠭先生书画艺术《贵妃》
  5. Windows 8 自带定时关机的4种实现方法
  6. 中国会计科目的中英文对照
  7. 8.3 案例实现(加载数据库sakila中的数据至数据仓库sakila_dw)
  8. 分享一组漂亮的html5后台登陆模板
  9. thinkphp5调用shell脚本_ThinkPHP 5.x远程命令执行测试工具(可getshell)
  10. CleanMyMac2023Mac下载排行最好的清理工具