FLProg
Категории раздела
Проекты пользователей [36]
Помощь начинающим [15]
Железо [1]
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика

Онлайн всего: 3
Гостей: 3
Пользователей: 0


Яндекс.Метрика
Пятница, 09.12.2016, 06:45
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Каталог статей
Главная » Статьи » Публикации » Проекты пользователей

Оптический датчик измерения степени запыленности GP2Y1010AU0F

Оптический датчик GP2Y1010AU0F предназначен для измерения степени запыленности или задымленности воздуха. Очень удобный датчик для автоматизации управления системой вентиляции и кондиционирования воздуха. Принцип работы датчика основан на измерении фотодатчиком степени рассеивания инфракрасного излучения светодиода в измеряемой среде. Измерение производится в импульсном режиме, что резко снижает потребляемый от источника питания ток.

Характеристики:

  • Принцип работы: измерение рассеивания потока инфракрасного излучения
  • Тип датчика: аналоговый
  • Размеры: 46.0 × 30.0 × 17.6 мм
  • Потребляемый ток: 20mA импульсный на время измерения
  • Различает дым от пыли различным выходным напряжением
  • Время измерения: 32 мс
  • Время установления параметров измерения: 28 мс
  • Выполнен в соответствии с требованиями RoHS (2002/95/EC)

Подключение:

  • VCC ↔ 2.5V ~ 5.0V
  • GND ↔ GND
  • AOUT ↔ MCU.IO (analog output)
  • ILED ↔ MCU.IO (module driving pin)





 
http://www.waveshare.com/w/upload/0/0a/Dust-Sensor-User-Manual-EN.pdf
http://www.waveshare.com/wiki/File:Dust-Sensor-code.7z
 


Источник: http://www.waveshare.com/w/upload/0/0a/Dust-Sensor-User-Manual-EN.pdf
Категория: Проекты пользователей | Добавил: Prantiols (16.05.2016) | Автор: Prantiols E W
Просмотров: 732 | Комментарии: 2 | Рейтинг: 0.0/0
Всего комментариев: 2
avatar
0
1
Помогите кто может, сделал блок пользователя, пишет: "Блок не корректен". Не могу понять причины?

Мой блок: https://drive.google.com/file....sharing

Исходный код:

/********************************************************************************* ************************
*
* File                : DustSensor
* Hardware Environment: 
* Build Environment   : Arduino
* Version             : V1.0.5-r2
* By                  : WaveShare
*
*                                  © Copyright 2005-2011, WaveShare
*                                       http://www.waveshare.net
*                                       http://www.waveshare.com   
*                                          All Rights Reserved
*
********************************************************************************* ************************/
#define        COV_RATIO                       0.2            //ug/mmm / mv
#define        NO_DUST_VOLTAGE                 400            //mv
#define        SYS_VOLTAGE                     5000           

/*
I/O define
*/
const int iled = 7;                                            //drive the led of sensor
const int vout = 0;                                            //analog input

/*
variable
*/
float density, voltage;
int   adcvalue;

/*
private function
*/
int Filter(int m)
{
  static int flag_first = 0, _buff[10], sum;
  const int _buff_max = 10;
  int i;
  
  if(flag_first == 0)
  {
    flag_first = 1;

    for(i = 0, sum = 0; i < _buff_max; i++)
    {
      _buff = m;
      sum += _buff;
    }
    return m;
  }
  else
  {
    sum -= _buff[0];
    for(i = 0; i < (_buff_max - 1); i++)
    {
      _buff
= _buff[i + 1];
    }
    _buff[9] = m;
    sum += _buff[9];
    
    i = sum / 10.0;
    return i;
  }
}

void setup(void)
{
  pinMode(iled, OUTPUT);
  digitalWrite(iled, LOW);                                     //iled default closed
  
  Serial.begin(9600);                                         //send and receive at 9600 baud
  Serial.print("*********************************** WaveShare ***********************************\n");
}

void loop(void)
{
  /*
  get adcvalue
  */
  digitalWrite(iled, HIGH);
  delayMicroseconds(280);
  adcvalue = analogRead(vout);
  digitalWrite(iled, LOW);
  
  adcvalue = Filter(adcvalue);
  
  /*
  covert voltage (mv)
  */
  voltage = (SYS_VOLTAGE / 1024.0) * adcvalue * 11;
  
  /*
  voltage to density
  */
  if(voltage >= NO_DUST_VOLTAGE)
  {
    voltage -= NO_DUST_VOLTAGE;
    
    density = voltage * COV_RATIO;
  }
  else
    density = 0;
    
  /*
  display the result
  */
  Serial.print("The current dust concentration is: ");
  Serial.print(density);
  Serial.print(" ug/m3\n");  
  
  delay(1000);
}
avatar
FLProg © 2016
Яндекс.Метрика