Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

UVM-30A - calibration?
#1

Hi all

I am just testing and calibrating my solar/UV board. My question is does the UVM-30A sensor normally require much in the way of calibration? I ask because here it is a sunny day and I have the sensor uncovered outside and with the UV_Transmission = 100 the reading is very high. At UV_Transmission = 150 still without any cover I come close to the expected reading from our National Institute of Water and Air. Does this seem usual or could my sensor be of some dubious quality?

Many thanks

41south.net.nz powered by WeatherDuino and Weewx
Reply
#2

Unless the manufacturer have changed their specs, uncovered and at horizontal position the UVM-30A output should be around 1.1V, corresponding to UV Index of 11+
What readings are you getting on the receiver?
Can you measure voltage at A1 on the TX board?

Reply
#3

i'm currently reading 11.9 for about 1.052 v at the sensor output/A1 input

41south.net.nz powered by WeatherDuino and Weewx
Reply
#4

(02-11-2018, 02:27)41south Wrote:  i'm currently reading 11.9 for about 1.052 v at the sensor output/A1 input

That is close to what should be the maximum UV reading when using UV_Transmission = 100. If you are having a sunny day without cloud on the sky, that reading may not be to far from reality (its Spring on NZ now I think).
What are the average UV readings at nearby weather stations? Use WU if needed.
Make sure the sensor is pointing to the sky in horizontal position, not facing the sun.

Reply
#5

It should only be a max of 7 today and about 6 now. I need to plot some input volts vs UV reading - or is that in the debug routine?

41south.net.nz powered by WeatherDuino and Weewx
Reply
#6

WeatherDuino UV readings for the UVM30-A sensor are implemented according to the data shown below, which you can also find on many places on the internet.
The output voltage you are getting from the sensor seems to correspond to the UV Index presented on the table, however you can fine tune it by changing the UV_Transmission value. Preferably do it after you have chosen the cover material, readings will be a lot lower then.


[Image: UV_Sensor%20index1.jpg]

[Image: UV_Sensor%20index.jpg]

Reply
#7

Thanks Werk, I did find those pictures and that data too.

Yes fine tuning via the UV_T was my thought as well, I just wanted to make sure that was the correct way as the reading looked a little high initially.

Thanks
Colin

41south.net.nz powered by WeatherDuino and Weewx
Reply
#8

Sorry more questions on this - it's not making sense to me Big Grin

Here are the debug readings with UV_Transmission set at 100 in the debug code (no cover, mounted flat) from approximately 10.00 to 10.15 today. Below is the expected solar graph which says that I should expect between 5 and 6 at this time.

I assume that the debug output avg UV is an average millivolt output of the sensor over the period? If that is the case this lines up nicely with my expected UV of 5 to 6 when you look at the output graph for the UVM30A sensor.

Unfortunately the Indice UV value does not agree - as per my original observation it is very high

Sending ID4...
ACD0 - SolarRad :428   SolarRad :585
ADC1 - avg UV   : 699  Indice UV : 8.2
 
Sending ID4...
ACD0 - SolarRad :428   SolarRad :585
ADC1 - avg UV   : 690  Indice UV : 8.1
 
Sending ID4...
ACD0 - SolarRad :427   SolarRad :584
ADC1 - avg UV   : 715  Indice UV : 8.4
 
Sending ID4...
ACD0 - SolarRad :427   SolarRad :584
ADC1 - avg UV   : 725  Indice UV : 8.5
 
Sending ID4...
ACD0 - SolarRad :427   SolarRad :584
ADC1 - avg UV   : 707  Indice UV : 8.3
 
Sending ID4...
ACD0 - SolarRad :427   SolarRad :584
ADC1 - avg UV   : 730  Indice UV : 8.6
 
Sending ID4...
ACD0 - SolarRad :437   SolarRad :598
ADC1 - avg UV   : 673  Indice UV : 7.9
 
Sending ID4...
ACD0 - SolarRad :446   SolarRad :610
ADC1 - avg UV   : 700  Indice UV : 8.2
 
Sending ID4...
ACD0 - SolarRad :454   SolarRad :621
ADC1 - avg UV   : 768  Indice UV : 9.0

Would you be kind enough to explain the mathematics behind your calculation of the UV?


Attached Files Image(s)
   

41south.net.nz powered by WeatherDuino and Weewx
Reply
#9

This is the existing calculation - I hope (used in both debug on the TX and in the RX) which appears to read high

// --- ADC1 is data from my UV sensor UVM-30A
  const byte UV_Transmission = 100;
  IndiceUV = ((avg_IndiceUV * 12.0 * (100.0 / UV_Transmission)) / 1024.0) ;

If I change the *12.0 value to *9.0 then the IndiceUV values fit almost perfectly with the UVM30A data sheet scale

// --- ADC1 is data from my UV sensor UVM-30A
  const byte UV_Transmission = 100;
  IndiceUV = ((avg_IndiceUV * 9.0 * (100.0 / UV_Transmission)) / 1024.0) ;

As an example 700*9*1/1024 = 6.1 - near perfect

Debug data with the above change - again pretty much bang on

Sending ID4...
ACD0 - SolarRad :545   SolarRad :745
ADC1 - avg UV   : 937  Indice UV : 8.2
 
Sending ID4...
ACD0 - SolarRad :547   SolarRad :748
ADC1 - avg UV   : 950  Indice UV : 8.3
 
Sending ID4...
ACD0 - SolarRad :548   SolarRad :749
ADC1 - avg UV   : 954  Indice UV : 8.4
 
Sending ID4...
ACD0 - SolarRad :549   SolarRad :751
ADC1 - avg UV   : 939  Indice UV : 8.3
 
Sending ID4...
ACD0 - SolarRad :550   SolarRad :752
ADC1 - avg UV   : 934  Indice UV : 8.2
 
Sending ID4...
ACD0 - SolarRad :553   SolarRad :756
ADC1 - avg UV   : 935  Indice UV : 8.2
 
Sending ID4...
ACD0 - SolarRad :555   SolarRad :759
ADC1 - avg UV   : 934  Indice UV : 8.2
 
Sending ID4...
ACD0 - SolarRad :557   SolarRad :762
ADC1 - avg UV   : 955  Indice UV : 8.4

41south.net.nz powered by WeatherDuino and Weewx
Reply
#10

Hi,

(14-11-2018, 22:25)41south Wrote:  I assume that the debug output avg UV is an average millivolt output of the sensor over the period? If that is the case this lines up nicely with my expected UV of 5 to 6 when you look at the output graph for the UVM30A sensor.

Unfortunately the Indice UV value does not agree - as per my original observation it is very high

Sending ID4...
ACD0 - SolarRad :428   SolarRad :585
ADC1 - avg UV   : 699  Indice UV : 8.2
 
Sending ID4...
ACD0 - SolarRad :428   SolarRad :585
ADC1 - avg UV   : 690  Indice UV : 8.1
...

In the debug output (and that is what is transmitted to the RX)  the avg UV is the raw reading of ADC0, which is from 0 to 1023, for an input voltage of 0V to 1.1V (the ADC ref voltage is set to 1.1V before each reading).

(14-11-2018, 23:25)41south Wrote:  This is the existing calculation - I hope (used in both debug on the TX and in the RX) which appears to read high

// --- ADC1 is data from my UV sensor UVM-30A
 const byte UV_Transmission = 100;
 IndiceUV = ((avg_IndiceUV * 12.0 * (100.0 / UV_Transmission)) / 1024.0) ;

With this formula we calculate the UV index directly from the raw ADC reading.
Supposing UV_Transmission = 100 and, with the maximum ADC raw reading of 1023 which should correspond to the maximum voltage output of the sensor (1.1V), we will get and UV Index of 11.98 (11+ on the data sheet)

What seems to be happening is that your sensor is outputting a higher voltage than indicated on the specs.

If you change the value of 12 to 9, what happens is that you will never get an UV index greater that 1023 * 9 /1024 = 8.99, as the raw reading of the ADC will never be great than 1023.

Reply




Users browsing this thread: 2 Guest(s)