Arduino紫外线传感器UV(GYML8511)

Arduino紫外线传感器UV(GYML8511)

硬件准备

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

硬件接线图

GYML8511 Arduino
3.3V 3.3V
GND GND
OUT A0

代码部分

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;
    }

最终效果图

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

猜你喜欢

转载自blog.csdn.net/weixin_50679163/article/details/119578269
今日推荐