OR-BWSENS

Материал из roboforum.ru Wiki

Перейти к: навигация, поиск


Датчик цвета поверхности OR-BWSENS (черное/белое)

Содержание


Краткие характеристики

Внешний вид модуля.

Габариты модуля: 10 х 15 х 4 мм (длина*ширина — по печатной плате)

Вес: не более 3г

Распространенность модуля

  • Продано 286 датчиков: SkyStorm*2, BERKOF*2, pashteet*6, galex1981*2, space*4, Dimo3000*2, kropa*4, клиенты_Семёнова_Михаила *8, vladimirkl1 *4, GlassEagle *8, anwi *4, stalker_navy *4, vl.nesterov *8, moravit *4, Dimitri *12, bkzaka *4, girafenok *4, kommail76 *4, delphi_night *4, Антонio *4, клиенты_SkyStorm *44, balu_ol *4, клиенты_Геккона *60, Линуксцентр *4, drcepera *4, УрФУ *40, leshiy33, romanko69 *8, deQUone *4, Duhas *8, Blaze63rus *4, БВЮ *4, victoruni *4
  • Кроме того в использовании 2 модуля: =DeaD=, blindman

Документация

OR-BWSENS-sch.pdf - Схема модуля для датчика 2 версии

OR-BWSENS-sch.pdf - Схема модуля для датчика 1 версии, номинал R3 - 330 Ом, номинал C2 - 0.01 мкФ

OR-BWSENS — Инструкция по эксплуатации.pdf (пока не готова)

Принцип работы датчика:

  1. Замыкаем на 500мкс (для версии 1 датчика - на 2500мкс) сигнальную линию датчика на питание, разряжая конденсатор;
  2. Делаем сигнальную линию входом для МК (т.е. перестаём её подтягивать к земле или к питанию) и ждём сколько-то времени, пока через открытый, в зависимости от отражающей способности поверхности в спектре ИК-излучения и расстояния до поверхности, оптодатчик зарядит конденсатор;
  3. Замеряем что на выходе с датчика - 0 или 1.

Контакты:

  • Сигнал - первый никак не обозначенный на плате контакт;
  • Питание - соответственно + и - обозначенные на плате;

Пример использования для WinAVR

Код для проверки датчика на WinAVR (для контроллера OR-AVR-M32-D, датчик должен быть на линии A0, будет мигать светодиодом на линии C5):

#include "defines.h"
#include <avr/interrupt.h>
#include <util/delay.h>
 
int main(void)
{
  DDRC=0x20;
  while(1==1){
    DDRA=0xFF;
   PORTA=0xFF;
   _delay_us(500); //2500 for OR-BWSENS-v1
   DDRA=0x00;
   PORTA=0x00;
   _delay_us(500); //2500 for OR-BWSENS-v1
   int x=PINA;
   if(x & 0x01 == 0x01){
      PORTC=0x20;
   }else{
      PORTC=0x00;
   };
   _delay_us(1000);
  };
}

Пример использования для BASCOM AVR

Код для проверки датчика на BASCOM AVR (для контроллера OR-AVR-M32-D, датчик должен быть на линии A0, будет мигать светодиодами на линиях C5 и B3):

$regfile = "m32def.dat"
$crystal = 7372800
 
Config Portc = Output
Config Portb = Output
 
Dim A As Byte
 
A = 1
 
While A > 0
   Config Porta = Output
   Set Porta.0
   Waitms 3
   Config Porta = Input
   Reset Porta.0
   Waitms 3
   If Pina.0 = 1 Then
      Set Portc.5
      Set Portb.3
   Else
      Reset Portc.5
      Reset Portb.3
   End If
 
Wend
 
End

Пример использования для Arduino

Исходное сообщение на форуме с примером подключения: http://roboforum.ru/viewtopic.php?p=143693#p143693

Программный код для подключения:

#include <PololuQTRSensors.h>
 
// создаем объект, датчик подключен на pin 10
PololuQTRSensorsRC qtr((unsigned char[]) {10}, 1);
 
void setup()  
{  
  // калибровка датчика
  for (int i = 0; i < 250; i++)
  {
    qtr.calibrate();
    delay(20);
  }
 
  Serial.begin(9600);
}
 
unsigned int vals[1];
 
void loop()
{
  qtr.read(vals);
  Serial.println(vals[0]);
}

Форум поддержки

[http://www.roboforum.ru/viewtopic.php?f=69&t=5878]

Источник — «http://roboforum.ru/wiki/OR-BWSENS»