“循迹”的版本间的差异
来自Labplus盛思维基百科
Tangliufeng(讨论 | 贡献) |
Jiangzhaohui(讨论 | 贡献) (→使用教程) |
||
第24行: | 第24行: | ||
== 使用教程 == | == 使用教程 == | ||
在安装循迹模块时约距离循迹线1CM左右 | 在安装循迹模块时约距离循迹线1CM左右 | ||
+ | === Arduino示例 === | ||
+ | <pre style="color:blue"> | ||
+ | int find1Pin =2; | ||
+ | int find2Pin =3; | ||
+ | int motor1Pin =7; | ||
+ | int motor2Pin =8; | ||
+ | int a,b; | ||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | pinMode(find1Pin, INPUT); | ||
+ | pinMode(find2Pin, INPUT); | ||
+ | pinMode(motor1Pin, OUTPUT); | ||
+ | pinMode(motor2Pin, OUTPUT); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // put your main code here, to run repeatedly: | ||
+ | a=digitalRead(find1Pin); | ||
+ | b=digitalRead(find2Pin); | ||
+ | Serial.println(a); | ||
+ | Serial.println(b); | ||
+ | if((a==1)&&(b==1)) | ||
+ | { | ||
+ | digitalWrite(motor1Pin,LOW); | ||
+ | digitalWrite(motor2Pin,LOW); | ||
+ | } | ||
+ | if((a==1)&&(b==0)) | ||
+ | { | ||
+ | digitalWrite(motor1Pin,LOW); | ||
+ | digitalWrite(motor2Pin,HIGH); | ||
+ | } | ||
+ | if((a==0)&&(b==1)) | ||
+ | { | ||
+ | digitalWrite(motor1Pin,HIGH); | ||
+ | digitalWrite(motor2Pin,LOW); | ||
+ | } | ||
+ | if((a==0)&&(b==0)) | ||
+ | { | ||
+ | digitalWrite(motor1Pin,HIGH); | ||
+ | digitalWrite(motor2Pin,HIGH); | ||
+ | } | ||
+ | } | ||
+ | </pre> |
2018年1月7日 (日) 14:25的版本
概述
可用于循迹线检测,当检测到黑色时,输出高电平,检测白色时,输出低电平。
基于红外反射原理,红外发射二极管不断发射红外线,红外光电三极管接收反射回来的红外光。由于白色对红外反射强,黑色对红外反射弱,故此可检测黑、白线。
技术参数
- 工作电压:VCC 3.3-5V
- 模块尺寸:24x46x7.5mm
引脚定义
VCC | 电源 |
D1 | 对应D1红外接收触发值 |
D2 | 对应D2红外接收触发值 |
GND | 地 |
使用教程
在安装循迹模块时约距离循迹线1CM左右
Arduino示例
int find1Pin =2; int find2Pin =3; int motor1Pin =7; int motor2Pin =8; int a,b; void setup() { Serial.begin(9600); pinMode(find1Pin, INPUT); pinMode(find2Pin, INPUT); pinMode(motor1Pin, OUTPUT); pinMode(motor2Pin, OUTPUT); } void loop() { // put your main code here, to run repeatedly: a=digitalRead(find1Pin); b=digitalRead(find2Pin); Serial.println(a); Serial.println(b); if((a==1)&&(b==1)) { digitalWrite(motor1Pin,LOW); digitalWrite(motor2Pin,LOW); } if((a==1)&&(b==0)) { digitalWrite(motor1Pin,LOW); digitalWrite(motor2Pin,HIGH); } if((a==0)&&(b==1)) { digitalWrite(motor1Pin,HIGH); digitalWrite(motor2Pin,LOW); } if((a==0)&&(b==0)) { digitalWrite(motor1Pin,HIGH); digitalWrite(motor2Pin,HIGH); } }