解析|电子学会机器人考级四级实操真题(2023年5月)
- 2026-09-15 09:06:37
解析|电子学会机器人考级四级实操真题(2023年5月)
关注我了解更多少儿编程内容
------------------------------------------- 难点分析: 难点1:超声波的使用,这道题中涉及到了超声波的使用,在Arduino C中通常是定义函数来执行,所以这里需要写明超声波的函数。 函数分为有返回值的函数和无返回值的函数。超声波都可以使用。这里我使用的是有返回值的函数。如果对函数不是很清楚的话,可以看下自定义函数的使用方式。 超声波分为发射和接收两个端口,分别是t和e,这里要进行分别定义。t是输出,e是输入。在函数中首先是t发射信号,然后e再接收回来,进行计算,即可得到超声波的返回值。 难点2:任务2中的舵机需要停止在当前位置。很多同学在做的时候都不知道这个地方应该怎么去操作,其实这里我们只需要注意到的就是当条件满足时,马上从当前循环进入即可。所以这里直接使用while语句即可。当超声波检测到距离小于等于15时,直接进入到while循环中,让led闪烁,此时舵机就会停留在原来位置。 难点3:舵机来回摆动和呼吸灯。这个就是在于循环的使用。直接套用两个for循环即可。 参考程序如下: 程序演示: -----end-----
关注我了解更多少儿编程内容
主题:预警雷达:
器件:Atmega328P主控板1块,舵机1个,超声波传感器1个,LED灯1个及相应辅件。以上模块也可使用分立器件结合面包板搭建。
任务要求:
预警雷达主要由往复转动的舵机以及与舵机连接在一起的超声波传感器组成。装置工作时,舵机在30度至150度之间往复转动。在转动过程中,超声波传感器不断检测不同角度时前方障碍物的距离,LED灯用于信息指示。主要任务要求如下:
(1)当超声波传感器检测的障碍物距离大于15厘米时,装置不做反应,舵机在30度至150度之间往复转动,LED灯处于呼吸灯状态;
(2)当超声波传感器检测的障碍物距离不大于15厘米时,舵机在该角度停止,LED灯闪烁,用于警示障碍物靠近,容易发生事故;
(3)当障碍物远离,且距离大于15厘米时,舵机继续开始往复摆动,LED灯恢复呼吸灯状态;
(4)控制程序采用Arduino C/C++代码编写;
(5)未作规定处可自行处理,无明显与事实违背即可。
#include<Servo.h>Servo servo;int t=2,e=3;int dist;intjuli(){digitalWrite(t,LOW);delayMicroseconds(2);digitalWrite(t,HIGH);delayMicroseconds(10);digitalWrite(t,LOW);dist = pulseIn(e,HIGH)/58;delay(10);return dist;}voidsetup() {Serial.begin(9600);pinMode(t,OUTPUT);pinMode(e,INPUT);pinMode(6,OUTPUT);servo.attach(A0);}voidloop() {Serial.println(dist);for(int i=30;i<=150;i+=3){servo.write(i);delay(50);analogWrite(6,i);while(juli()<=15){digitalWrite(6,HIGH);delay(100);digitalWrite(6,LOW);delay(100);}}for(int i=150;i>=30;i-=3){servo.write(i);delay(50);analogWrite(6,i);while(juli()<=15){digitalWrite(6,HIGH);delay(100);digitalWrite(6,LOW);delay(100);}}}
已关注
关注
重播 分享 赞
如果你觉得陈老师写的对你有帮助,可以点赞关注额。感谢大家的支持。

也可以添加陈老师的微信(rtc_100)。陈老师会为你解答疑惑。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。