今日图片
今日的任务是uno板编程,我们的任务是超声波测距系统以及蜂鸣器报警系统编程。
const int ECHOPIN = 7;
const int TRIGPIN = 8;
void setup() {
pinMode(TRIGPIN, OUTPUT); // 初始化两个口分别为OUTPUT口,和INPUT口
pinMode(ECHOPIN, INPUT);
}
void loop() {
digitalWrite(TRIGPIN, LOW);
for(int i = 0; i < 180; i ++) {
delay(20);
}
delayMicroseconds(5);
digitalWrite(TRIGPIN, HIGH); // 给 Trig 高电平,持续10微秒
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
pinMode(ECHOPIN, INPUT); // 读取 Echo 的电平
float duration = pulseIn(ECHOPIN, HIGH); // 收到高电平的时间
float cm = (duration/2) / 29.1; // 将时间换算成厘米或者英尺
float inches = (duration/2) / 74;
Serial.print(cm); // 向串口输出厘米长度
}
以上代码负责超声波探测
const int BEEPPIN = 1;
void setup() {
pinMode(BEEPPIN, OUTPUT);
}
void loop() {
// 启动蜂鸣器,将蜂鸣器的IO口置为高电平
delay(1000);
digitalWrite(BEEPPIN, HIGH);
delay(1000);
digitalWrite(BEEPPIN, LOW);
}
以上负责蜂鸣器(自主完成版)
// ...
if (cm < 10) {
// 如果距离小于10cm时,这段代码将会执行
// 启动打人机器人
// ... 代码略
// 启动报警蜂鸣器
digitalWrite(BEEPPIN, HIGH);
delay(500); //至少鸣叫500毫秒
} else {
// 距离大于10cm时,将蜂鸣器关闭
digitalWrite(BEEPPIN, LOW);
}
以上负责综合探测以及蜂鸣器
今天的工作比较认真,编了一节半课的代码,硬件准备。
PS:代码拷贝后需要改变分号以及逗号(切为英文)