研究方法与思路:

我们小组一开始找的是一个别人做好的项目,按键控制风扇挡位,不同挡位对应不同LED灯。但是实现过程中存在bug。而且仅仅通过按键控制风扇着实有局限性,因此我觉定用串口控制风扇开关的模式,输入1,风扇变为光敏自动调节,输入2,变为按钮人工控制调节。
我们的思路首先是拆开,把每个功能单独列出来实现,最后再进行合并

按键控制风扇开关:

我在这里遇到了问题,就是按钮按一下它关闭一会又自动开始转。最后找到了徐大佬,才解决了问题。
猛地关闭风扇,电流会回流,然后把相应的下限变高(我也没听太明白)这个大概就是(buttonValue = analogRead(buttonpin)) > 15而不是大于0的原因。
一开始我用的数字信号,最后用了模拟信号才调出来。。

const int IB = 6;
const int IA = 5;
int buttonpin = A1;
boolean state = false;void setup() {Serial.begin(9600);pinMode(IA, OUTPUT);pinMode(IB, OUTPUT);pinMode(buttonpin, INPUT_PULLUP);
}void loop()
{int buttonValue = 0;while ((buttonValue = analogRead(buttonpin)) > 15){Serial.println(buttonValue);}Serial.print("a");if (state == true){analogWrite(IA, 0);analogWrite(IB, 0);}else{analogWrite(IA, 105);analogWrite(IB, 0);}state = !state;delay(600);
}

串口控制风扇挡位:

const int IB=6;
const int IA=5;
void setup(){Serial.begin(9600);pinMode(IA,OUTPUT);pinMode(IB,OUTPUT);}void loop(){if(Serial.available()>0){char ch=Serial.read();Serial.println(ch);if(ch == 'l'){analogWrite(6,0); analogWrite(5,0); //Serial.println("l");}else if(ch == 'm'){analogWrite(6,0); analogWrite(5,150);// Serial.println("m");}
else if(ch =='h'){analogWrite(6,0); analogWrite(5,250);//  Serial.println("h");
}
}}

光敏电阻控制风扇挡位:

const int IB=6;
const int IA=5;
void setup(){Serial.begin(9600);pinMode(IA,OUTPUT);pinMode(IB,OUTPUT);}void loop(){int sv=analogRead(A0);Serial.println(sv);//光越大sv越小analogWrite(IB,0);analogWrite(IA,(600-sv)*0.425 );}

串口控制风扇模式:

主要是用了一些条件语句把上面的模块拼到一块,应该能看明白,我就不多说了


const int IB = 6;
const int IA = 5;
int buttonpin = A1;
boolean state = false;void setup() {Serial.begin(9600);pinMode(IA, OUTPUT);pinMode(IB, OUTPUT);pinMode(buttonpin, INPUT_PULLUP);
}void loop() {if (Serial.available() > 0) {char ch = Serial.read();if (ch == '4'){Serial.println("你想要智能风扇的哪个功能");Serial.println("1.按键控制风扇") ;Serial.println("3.光敏传感器控制风扇");Serial.println("4.从新选择");}else{while (1) {if (ch == '1'){int buttonValue = 0;if (Serial.available() > 0){char bb = Serial.read();if (bb == '4'){analogWrite(IA, 0);analogWrite(IB, 0);break;}}else {while ((buttonValue = analogRead(buttonpin)) > 15){// Serial.println(buttonValue);}//  Serial.print("a");if (state == true){analogWrite(IA, 0);analogWrite(IB, 0);}else{analogWrite(IA, 105);analogWrite(IB, 0);}state = !state;delay(600);}}else if (ch == '3'){int sv = analogRead(A0);//   Serial.println(sv);//光越大sv越小analogWrite(IB, 0);analogWrite(IA, (600 - sv) * 0.425 );if (Serial.available() > 0){char ch = Serial.read();if (ch == '4'){analogWrite(IA, 0);analogWrite(IB, 0);break;}else {Serial.println("如果想要切换功能请输入4");}}}}}}
}

arduino智能风扇系统相关推荐

  1. 基于STM32的智能风扇系统

    目录 1.概述 2.硬件组成 3.PWM调速原理 4.L298N电机驱动控制原理 5.红外线遥控编码原理 6.软件设计 7.实物测试 1.概述 该智能风扇以STM32单片机为核心,结合红外遥控.人体感 ...

  2. 基于stm32f407的智能风扇系统

    内容及过程 的主要内容是设计并制作一个基于stm32f407的智能风扇系统,这个智能风扇系统能够实现测量是否有人出现,是否温度过高,是否有火灾险情出现,这个系统完美解决了电力资源浪费以及在危险环境下处 ...

  3. arduino智能风扇

    Arduino 智能风扇 文件 ArduinoIDE下载 https://www.arduino.cc 所需工具 ● Arduino Uno开发板 https://detail.tmall.com/i ...

  4. ESP32+arduino智能浇水系统

    一.ESP32+arduino智能浇水系统 随着人类居住条件的改善及对生态生活环境的关注,花卉养殖得到社会和人类个体的重视.这些具有生命特征的植物需 要科学合理的人工照顾.本研究提出了利用ESP WR ...

  5. 毕业设计 Arduino智能灌溉系统 - 嵌入式 单片机 物联网

    文章目录 1 简介 1 硬件要求 2 项目背景 3 实现功能 4 OLDE显示屏 5 IO扩展器 6 系统构建 7 完整代码 8 最后 1 简介 Hi,大家好,学长今天向大家介绍一个 单片机项目,大家 ...

  6. 基于STM32F103单片机的智能婴儿床智能风扇系统

    系统功能设计 (末尾附文件) 本系统由STM32F103C8T6单片机核心板.LCD1602液晶显示.DHT11温湿度传感器+风扇控制.声音检测.音乐片驱动.继电器控制电机.拨动开关.蓝牙模块组成. ...

  7. Arduino智能浇灌系统

    电子元件 土壤湿度传感器.泵,ardunio uno,面包板,三极管,水位传感器,电阻 源代码 手机上下载Blinker软件 源代码 源代码 烧录到esp8266 /** esp8266*/#defi ...

  8. Arduino智能灯系统(一)

    最近跟了一个项目是基于arduino开发的居家智能灯,其主要目的是让居家老人半夜如厕时自动开灯,形成引导如厕路线,当目标再次回到房间,再次触发压力开关使得指引灯熄灭完成任务.该系统设置了一个蓝牙模块与 ...

  9. 基于stm32f103的智能风扇系统

    系统设计目标 本系统可以分为两个模式来进行运行,分别为手动模式和自动模式,同时,在上电进入系统后,还会有一个模式选择的界面产生. 模式选择:在此界面中,可以通过按键K1来控制模式选择,两个模式分别为手 ...

最新文章

  1. django learn 多对多的两种映射关系
  2. 我用hbuilder怎么用不了jquery_【权益资讯】机房电脑用不了怎么办
  3. php自动配置ip,使用PHP自动PING IP
  4. Flask开发微电影网站(二)
  5. python多个异常处理_python中处理多个异常
  6. pfSense book之静态路由
  7. 开天辟地 —— Go scheduler 初始化(二)
  8. keil5用jlink不到芯片_洛达芯片检测
  9. 计算机用于数据管理经历了,管理系统中计算机应用--期中测验答案
  10. python关于字符串的内置函数_Python 字符串内置函数(二)
  11. java代码复数包括虚部和实部,Java中编写Applet程序验证复数类(在问题补充中)实现接收用户输入的复数的实部和虚部,计算复数与复数,复数与实数的加减,乘除操作...
  12. c语言迷宫问题输出坐标,C语言数据结构之迷宫求解问题
  13. 图论算法——有向图的可达性与寻路
  14. 【面向对象设计原则】之依赖倒置原则(DIP)
  15. 专用5G网络的7种部署方案
  16. 【opencv 450 Image Processing】Image Moments 图像矩
  17. React二级路由的实现
  18. Git修改用户名和邮箱
  19. “杏”运有你!共赏这乡美景
  20. 【持续更新】1999-2023年英伟达历代桌面GeForce显卡列表,GeForce显卡发布日期

热门文章

  1. debug和release的区别
  2. python回测量化交易策略收益率
  3. Kafka集群部署搭建完美标准版
  4. 微信开发1之PHP成功获取微信支付的Token
  5. OpenGL 入门第一课 视窗以及三角形
  6. ssh远程执行命令 linux,【Linux】SSH 远程执行命令
  7. python61到08使用说明书_python 08 文件操作
  8. python深入和扩展_加速方案 — Python扩展模块
  9. java webservice 身份验证_java-Http基本身份验证不适用于Spring WS和WebS...
  10. win7电脑文件夹属性没有安全选项的解决方法