Arduino紫外线传感器UV(GYML8511)

该博客介绍了如何使用Arduino Uno与紫外线传感器GYML8511进行硬件连接,通过读取传感器数据并进行处理,获取紫外线强度。在代码部分展示了如何编写Arduino程序来获取和转换模拟读数,最终在串口监视器中显示紫外线指数。通过平均读数和电压映射,实现了紫外线强度的精确测量。
摘要由CSDN通过智能技术生成

Arduino紫外线传感器UV(GYML8511)

硬件准备

主控板:Arduino Uno
在这里插入图片描述
紫外线传感器:GYML8511
在这里插入图片描述

硬件接线图

GYML8511Arduino
3.3V3.3V
GNDGND
OUTA0

代码部分

int ReadUVintensityPin = A0; //Output引脚

    void setup()
    {
      pinMode(ReadUVintensityPin, INPUT);  	//输出模式
      Serial.begin(9600); 
      Serial.println("Starting up...");
    }

    void loop()
    {
      int uvLevel = averageAnalogRead(ReadUVintensityPin);

      float outputVoltage = 5.0 * uvLevel/1024;
      float uvIntensity = mapfloat(outputVoltage, 0.99, 2.9, 0.0, 15.0);
	/*UV*/
      Serial.print("UVAnalogOutput: ");
      Serial.print(uvLevel);
	/*传感器电压*/
      Serial.print(" OutputVoltage: ");
      Serial.print(outputVoltage);
	/*紫外线*/
      Serial.print(" UV Intensity: ");
      Serial.print(uvIntensity);
      Serial.print(" mW/cm^2");
      delay(600);
    }
    int averageAnalogRead(int pinToRead)
    {
      byte numberOfReadings = 8;
      unsigned int runningValue = 0;
      for(int x = 0 ; x < numberOfReadings ; x++)
      runningValue += analogRead(pinToRead);
      runningValue /= numberOfReadings;
      return(runningValue);

    }
    float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
    {
      return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
    }

最终效果图

在串口监视器可以看到测试的紫外线数据
在这里插入图片描述

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BIGBOSSyifi

Thanks & Salute

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值