“光电门传感器”的版本间的差异

来自Labplus盛思维基百科
跳转至: 导航搜索
使用教程
 
(未显示同一用户的1个中间版本)
第44行: 第44行:
 
|}
 
|}
  
* 可调电位器:调节触发信号的触发电平
+
* CH1引脚可接入任意数字输入传感器,模块输出连续2次触发接入的传感器时间差
  
 
== 使用教程 ==
 
== 使用教程 ==
第50行: 第50行:
 
* 在程序编程中需要注意拨动开关地址和程序中的地址一致!
 
* 在程序编程中需要注意拨动开关地址和程序中的地址一致!
 
* 计算信号的正脉宽时间,当输入信号由低变高为触发开始点,由高变低位触发触发结束点,计算之间的时间差。
 
* 计算信号的正脉宽时间,当输入信号由低变高为触发开始点,由高变低位触发触发结束点,计算之间的时间差。
 +
=== <font size=3px>掌控板</font> ===
 +
==== 图形化编程 ====
 +
{|
 +
|-
 +
| [[文件:光电门.png |900px|居中|无框]]
 +
|}
 +
==== 代码编程 ====
 +
 +
* GitHub:[https://github.com/labplus-cn/mPython_bluebit bluebit for mPython library]
 +
* bluebit for mPython library API: https://mpython-lib.readthedocs.io/zh/master/bluebit/index.html
 +
 +
<syntaxhighlight lang="Python" line='line'>
 +
 +
from mpython import *
 +
import bluebit
 +
 +
a = bluebit.DelveBit(0x50)
 +
 +
while True:
 +
    print(a.photo_gate())
 +
 +
 +
</syntaxhighlight>
  
 
=== <font size=3px>Arduino</font>  ===
 
=== <font size=3px>Arduino</font>  ===
第101行: 第124行:
 
   Get_Photogate_value(0x51);
 
   Get_Photogate_value(0x51);
 
}
 
}
 
</syntaxhighlight>
 
 
=== <font size=3px>掌控板</font> ===
 
 
* GitHub:[https://github.com/labplus-cn/mPython_bluebit bluebit for mPython library]
 
* bluebit for mPython library API: https://mpython-lib.readthedocs.io/zh/master/bluebit/index.html
 
 
<syntaxhighlight lang="Python" line='line'>
 
 
from mpython import *
 
import bluebit
 
 
a = bluebit.DelveBit(0x50)
 
 
while True:
 
    print(a.photo_gate())
 
 
  
 
</syntaxhighlight>
 
</syntaxhighlight>

2020年6月30日 (二) 15:54的最新版本

blue:bit-光电门传感器

概述

Photogate Time是测量触发时刻和触发结束时刻的时间模块。

技术参数

  • 工作电压:VCC 3.3-5V
  • I2C数字信号输出
  • 时间范围 : 0~
  • 解析度: 10微秒
  • 精度: 2%
  • 模块尺寸:24x46x7.5mm

引脚定义/接口说明

VCC 电源
SDA I2C数据
SCL I2C时钟
GND
  • 拨动开关,可选择模块的I2C地址,用于避免与其他I2C设备地址冲突。注意,重新选择I2C地址后,需要重新上电才能生效!
  • 触发信号的输入接口
VCC 电源
CH0 NA(未用)
CH1 触发信号输入
GND
  • CH1引脚可接入任意数字输入传感器,模块输出连续2次触发接入的传感器时间差

使用教程

  • 在程序编程中需要注意拨动开关地址和程序中的地址一致!
  • 计算信号的正脉宽时间,当输入信号由低变高为触发开始点,由高变低位触发触发结束点,计算之间的时间差。

掌控板

图形化编程

光电门.png

代码编程

from mpython import *
import bluebit

a = bluebit.DelveBit(0x50)

while True:
    print(a.photo_gate())

Arduino

include <Wire.h>
int reading = 0;
int reading0 = 0;
int reading1 = 0;
int reading2 = 0;
int reading3 = 0;
int reading4 = 0;
long trigger_begin;
long trigger_end; 
float  trigger_time;
void Get_Photogate_value(char address)  
{
  Wire.requestFrom(0x51, 5); 
  if (5 <= Wire.available())
  {
       reading0 = Wire.read();
       reading1 = Wire.read();
       reading2 = Wire.read();
       reading3 = Wire.read();
       reading4 = Wire.read();
       if(reading0==1)
       {
         trigger_begin = reading1*16777216  + reading2*65536 + reading3*256 + reading4;
         //Serial.println(1);
         //Serial.println(trigger_begin);
       } 
       if(reading0==0)
       {
         trigger_end = reading1*16777216  + reading2*65536 + reading3*256 + reading4;
         //Serial.println(0);
         //Serial.println(trigger_end);
         trigger_time = (float)(trigger_end - trigger_begin)/2041667;     //250000    2041667
         Serial.println(trigger_time);         
       }
  
}
void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
}

void loop()
{
  Get_Photogate_value(0x51);
}

microbit

应用案例

FAQ

版本历史记录

Version Date 新增/删除/修复