光敏和温控

内容纲要

基础环境和驱动编写完成后(详见:前端机器人开发基础),接下来开始使用元器件,需要:

  1. USB数据线
  2. 4.7kv普通电阻和10kv普通电阻
  3. 普通按钮型开关/或其他可切断型开关
  4. 电线,电线根据主板不同,一般有红色、绿色和黑色电线(或国际通用电线颜色。。。)
  5. 任何可用主板
  6. 光敏电阻
  7. 温度传感器

光敏和温控
光敏和温控

串联电路

在串联电路中,电流是相同的,假如电流是15MA:

光敏和温控

但由于各个组件的消耗,元器件的电压是不一样的:

光敏和温控

###电压计算

那么就需要计算元器件的电压,比如R1的电压:

let R1: number =100;
const total: number = 200;
let R1: number  = 100 / 200;// = 1/2
R1  = (1/2) * 3;// = 1.5 V

根据基尔霍夫(Kirchoff电压定律),在任何一个闭合回路中,各元件上的电压降的代数和等于电动势的代数和,即从一点出发绕回路一周回到该点时,各段电压的代数和恒等于零,即∑U=0。也就是说,电路中的所有电压在电线里跑一圈就跑没了(通俗一点点😄)。

光敏和温控

如图,串联电路中不同元器件的电压由其他元器件的消耗导致的电压降低,元器件间的电压也就有所不同。

光敏和温控

分压器

因此,这里需要使用分压器,这里不再详细描述,计算公式如下:

V(out) = V(in) * (R2 / (R1 + R2))

将所有元器件链接好后,开始编写代码,首先初始化:

使用光敏传感器

编写Photoresistor类:

const Io: unknow = require('yourself deivce');//根据主板不同而不同,请参考主板文档
const board: Io.Board = new Io.Board();

board.on('ready', (): void => {
  const sensor: Io.Sensor = new Io.Sensor({
    pin: 'DH-11'                      1
  });
});

记录传感器变化值

当传感器初始化完成后需要记录其变化值:

board.on('ready', (): void => {
  const sensor: Io.Sensor = new Io.Sensor({
    pin: 'DH-11' 
  });
  console.log(sensor.value);
  //sensor.threshold = 5;
  sensor.on('data', (): void => {
      console.log(sensor.value);//正常输出值,如果没有输出值,请查看主板文档或尝试下面解决方案
    });
});

这里为了确保代码的正常运行,建议编写好后测试一下,防止任何可能的错误。

接着在pin后加入freq参数,调整频率、比率和阀值,需要注意,部分主板文档可能需要使用:

sensor.on('data', function () {
  console.log(this.value);//......
});

如果碰到没有返回值的问题,可以尝试。

使用温度传感器

注意温度传感器的接线位置。

编写Temperature类:

const Io: unknow = require('yourself deivce');
const board: Io.Board = new Io.Board();

board.on('ready', (): void => {
  const tmp: Io.Thermometer = new Io.Thermometer({
    controller: 'TMP', 
    pin: 'DH-11'
  });
  tmp.on('data', (): void => {
    console.log(tmp.celsius);
  });
});

如果报错:

ReferenceError: temp is not defined

需要注入依赖,在ready事件中注入即可:

board.repl.inject({
  tmp: tmp,
  foo: 'bar'
});

开关控制

接着,是Button类,用来控制开关:

const Io: unknow = require('yourself deivce');
const board:Io.Board = new Io.Board();

board.on('ready', (): void => {
  const pushButton: Io.Button = new Io.Button(2);
  pushButton.on('down', (): void => {
    console.log('开关...');
  });
});

也可以接个led屏幕,把值都输出到屏幕上去。。。

如果正常,就可以看到光敏电阻和温度传感器的值了。

code enjoy! 🤪🤪

作者:indeex

链接:https://indeex.cc

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


发表评论

您的电子邮箱地址不会被公开。