光敏和温控
内容纲要
基础环境和驱动编写完成后(详见:前端机器人开发基础),接下来开始使用元器件,需要:
- USB数据线
- 4.7kv普通电阻和10kv普通电阻
- 普通按钮型开关/或其他可切断型开关
- 电线,电线根据主板不同,一般有红色、绿色和黑色电线(或国际通用电线颜色。。。)
- 任何可用主板
- 光敏电阻
- 温度传感器


串联电路
在串联电路中,电流是相同的,假如电流是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
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。