Arduino自动雨感雨刷

本项目设计制造一种自动检测降雨强度并调节雨刷运行频率的汽车雨刷。它是使用Arduino UNO板构建的。雨感模块用于测量降雨强度。伺服电机用于控制雨刷运动。控制器上还附加了一个LCD模块,用于显示降雨强度。控制器通过测量降雨量来调节伺服电机的速度。通过在伺服系统的信号线上产生PWM信号来控制伺服系统。

Automatic_Car_Wiper

计划的目标

  • 测量降雨量。
  • 在LCD模块中显示降雨强度。
  • 根据传感器模块的输出控制伺服电机的速度。

让我们开始建立我们的项目-雨感汽车雨刷

雨水感应雨刷
雨感雨刷电路采用Arduino和伺服电机

如图所示组装电路!下面解释了一些重要的联系。

MH-RD雨水探测器是我们这里使用的传感器模块。该模块有4个引脚:Vcc、A0、D0和Gnd。Vcc和Gnd连接Arduino电源引脚。A0和D0分别为模块的模拟和数字输出引脚。由于我们需要降雨的持续变化,我们将使用A0引脚代替D0。传感器的模拟输出连接到Arduino的一个模拟输入引脚。

如前所述,伺服电机在这里用于雨刷运动。伺服电机是一种特殊的高扭矩直流电机,通过在其信号线上产生合适的PWM信号,可以将其轴调整到理想的位置。这里我们将伺服信号线连接到Arduino的一个PWM引脚(即。接下来是LCD模块,用于显示降雨强度。Arduino与16×2 LCD的接口非常简单。这里使用的LCD模块是JHD162A。JHD162A是一款基于日立HD44780驱动的16×2 LCD模块。JHD162A有16个引脚,可以在4位模式(仅使用4条数据线)或8位模式(使用所有8条数据线)中操作。这里我们使用4位模式的LCD模块。为了方便Arduino和LCD模块之间的通信,我们使用Arduino 内置库-这是为LCD模块编写使用日立HD44780芯片组(或兼容芯片组)。 Control pin RS, RW and En are directly connected to arduino pin 13, GND and 10. And data pin D4-D7 is connected to 7,6,5 and 4 of Arduino.

当设备开机时,伺服电机将雨刷旋转到零度位置。在此之后,控制器将不断检查来自雨感模块的信号。如果模块发出的信号超过了最小值,伺服电机就开始工作。伺服操作的速度将根据信号的强度而变化。降雨强度将根据信号强度显示在LCD上。

程序/代码

下载程序

开始时,程序将不断检查雨传感器的读数。一个名为“servo .h”的库在这里用于伺服操作。通过调用内置函数“myservo.write(angle)”,我们可以将伺服轴旋转到所需的角度。另外一个库叫做“LiguidCrystal.h”,用于Arduino和LCD模块之间的通信。在接口部分,首先初始化LiquidCrystal库,然后使用命令“LiquidCrystal lcd(RS, E, D4, D5, D6, D7)”定义引脚。

伺服的位置将是在0度开始。Arduino使用内置的“analogRead(pin_number)”函数通过模拟输入引脚读取传感器输出。例如“analogRead(sensorPin);”将A0引脚的电压(在0到5V范围内)转换为0到1023范围内的整数。这样,将A0处的电压与一个固定的数字进行比较,以识别当前的降雨强度。如果从传感器获得的值超过了特定的限制,控制器将触发伺服操作。而运行速度将根据传感器的输出而变化。一个用户定义的功能称为“擦拭(速度)”是用来控制伺服速度。同时,在LCD模块上使用“LCD .print(“低/中/高”)功能显示降雨强度。

作者

评论都关门了。