06/21/2019
开关
开关是一个可以使电路开路、使电流中断或使其流到其他电路的电子元件。根据触发方式的不同,开关可以分类为微动开关、按钮开关、接近开关等。
微动开关
image
特点是触发距离短,能响应较小的力,并且金属片自带缓冲机制
按钮开关
image
最廉价的开关
接近开关
image
能够探测含铁钴镍的物体。当金属检测体接近开关的感应区域,开关就能触发。特点是无需物体与开关自身的接触,因而不易损坏。
电路连接
image
开关模块有三条引出线,分别为供电正极(VCC),供电负极(GND)和信号线(SIG)。
因为开关模块只能输出连通/不连通两种状态,所以是数字设备,连接到 RoboRIO 的 DIO 端口上,三根线分别对应三个针脚。
程序
几种种类的开关在程序上是一样的,都属于数字输入 (DigitalInput) 设备。
import edu.wpi.first.wpilibj.DigitalInput;
...
public class Robot extends TimedRobot {
private DigitalInput sw; // 声明 DigitalInput 类型的 sw 变量
...
@Override
public void robotInit() {
sw = new DigitalInput(0); // 创建 DigitalInput 对象,
// constructor 括号中的参数是 RoboRIO 上开关连接的 DIO 端口号
...
}
...
@Override
public void robotPeriodic() {
boolean state = sw.get(); // 开关的值通过 .get() 方法获得,返回布尔类型的变量
SmartDashboard.putBoolean("switch State", state); // 将开关的值传递到 SmartDashboard 上
if (state) {
// 当开关闭合之后被运行
}
...
}
...
}