Подключение датчика GUVA-S12SD к Ардуино

Модуль датчика ультрафиолета GUVA-S12SD используется для определения интенсивности ультрафиолетового излучения. Сенсор имеет аналоговый выход, сигнал которого изменяется пропорционально в зависимости от интенсивности УФ-излучения. Рассмотрим подключение датчика SGM8521 GUVA-S12SD к Ардуино и вывод ультрафиолетового индекса на монитор порта Arduino IDE и дисплей OLED 128×64.

Датчик GUVA-S12SD характеристики, распиновка

Ультрафиолетовое излучение — это форма электромагнитного излучения с длиной волны от 200 до 370 нм, короче, чем у видимого света, но длиннее, чем у рентгеновских лучей. Датчик собран на фотодиоде Шоттки на основе нитрида галлия, который обнаруживает большую часть УФ-излучения. GUVA-S12SD выдает откалиброванное аналоговое напряжение, которое можно прочитать через АЦП Ардуино.

GUVA-S12SD Arduino распиновка, характеристики
Датчик GUVA-S12SD Arduino распиновка, характеристики

Характеристики GUVA-S12SD

  • Напряжение: 2,5 — 5,5 В постоянного тока
  • Диапазон измерений: от 240 до 370 нм
  • Выход: Vo = 4,3 * ток диода (мкА)
  • УФ-индекс: Vo/0,1 В

Солнце — это естественный источник УФ-излучения. Для получения информации об уровне радиации составляют УФ-индекс, выражаемый в виде числового значения. Цель индекса ультрафиолетового излучения — эффективная защита от ультрафиолета, которое приносит пользу в умеренных количествах, но в избытке вызывает преждевременное старение кожи, повреждение глаз и солнечные ожоги.

1…2 — низкий уровень УФ-излучения,
3…5 — средний уровень УФ-излучения, рекомендуются солцезащитные очки,
6…7 — высокий уровень, рекомендуется использовать защитные кремы,
8…10 — очень высокий уровень, рекомендуется находиться в тени,
11 — крайне высокий уровень УФ-излучения, нахождение на улице следует ограничить.

Как подключить УФ датчик GUVA-S12SD к Ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • сенсор GUVA-S12SD;
  • 128×64 OLED экран;
  • провода «папа-мама».
Подключение датчика GUVA-S12SD к Ардуино
Подключение датчика УФ GUVA-S12SD к Ардуино

Данные с датчика GUVA-S-12-SD, как и с любого другого аналогового сенсора, считывают с помощью команды analogRead. Затем в соответствии с технической документацией датчика, мы вычисляем УФ-индекс, разделив поступающее напряжение с датчика на 0,1. В итоге мы отображаем УФ-индекс и УФ-излучение. Подключите датчик CJMCU-GUVA-S12SD к Arduino и загрузите следующий код в микроконтроллер.

Скетч для сенсора ультрафиолета GUVA-S12SD

float sensorVoltage;
float sensorValue;

void setup() {
  Serial.begin(9600);
  pinMode(A1, INPUT);
}

void loop() {
  sensorValue = analogRead(A1);
  sensorVoltage = sensorValue / 1024 * 5.0;
  Serial.print("sensor reading = ");
  Serial.print(sensorValue);
  Serial.print(" sensor voltage = ");
  Serial.print(sensorVoltage);
  Serial.println(" V");
  delay(1000);
}

Пояснения к коду:

  1. сенсор подключается к любому аналоговому входу микроконтроллера.



Ток создаваемый фотодиодом S12SD, преобразуется усилителем SGM8521 в пропорциональный уровень напряжения. Дополнительное усиление выходного напряжения, пропорционально падающему на фотодиод модуля ультрафиолетового излучения, обеспечивает усилитель LM358. В следующем примере добавим к схеме OLED дисплей с I2C протоколом связи для подключения к плате Ардуино.

Подключение сенсора GUVA-S12SD к Ардуино
Подключение сенсора GUVA-S12SD и дисплея к Ардуино
OLED i2c 0,96 Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VDD 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Скетч для датчика GUVA-S12SD и OLED дисплея

#include "Wire.h"
#include "OLED_I2C.h" // библиотека для экрана
OLED myOLED(SDA, SCL, 8); // создаем объект myOLED
 
extern uint8_t BigNumbers[];
extern uint8_t SmallFont[];

float sensorVoltage;
float sensorValue;

void setup() {
  Serial.begin(9600);
  myOLED.begin();
  pinMode(A1, INPUT);
}

void loop() {
  sensorValue = analogRead(A1);
  sensorVoltage = sensorValue / 1024 * 5.0;
  Serial.print("sensor reading = ");
  Serial.print(sensorValue);
  Serial.print(" sensor voltage = ");
  Serial.print(sensorVoltage);
  Serial.println(" V");

  myOLED.setFont(BigNumbers);
  myOLED.print(String(sensorValue), CENTER, 20);
  myOLED.setFont(SmallFont);
  myOLED.print("UV INDEX", CENTER, 50);
  myOLED.update();

  delay(1000);
}

Пояснения к коду:

  1. после преобразования измерения, значение отображается на OLED-дисплее.

Заключение. Выход модуля аналоговый, благодаря чему работа с этим датчиком максимально проста. Модуль можно использовать в автономных устройствах при создании термометров на Ардуино или метеостанций. GUVA S12SD имеет широкий диапазон измерений от 240 до 370 нм и широкий угол обзора — около 130 градусов.



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.