基于ardurino的简单雷达设计
①实验结果
https://www.bilibili.com/video/BV1H84y1t7zo/?pop_share=1&vd_source=3ec25d5baa3abe36746d7eba1b8fa161
②实验代码,代码分上位机显示部分和ardurino部分,上位机想移植到液晶屏上,但我没弄出来。。。。
ardurino部分
#include <Servo.h>.
//
const int trigPin = 10;
const int echoPin = 11;
//
long duration;
int distance;
Servo myServo; //
void setup() {
pinMode(trigPin, OUTPUT); //
pinMode(echoPin, INPUT); //
Serial.begin(9600);
myServo.attach(12); //
}
void loop() {
// 将伺服电机从 15 度旋转到 165 度
for(int i=15;i<=165;i++){
myServo.write(i);
delay(30);
distance = calculateDistance();// Calls a function for calculating the distance measured by the Ultrasonic sensor for each degree
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print("."); //
}
// 从 165 到 15 度重复前面的行
for(int i=165;i>15;i--){
myServo.write(i);
delay(30);
distance = calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(".");
}
}
// 计算超声波传感器测量距离的函数
int calculateDistance(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // 读取 echoPin,以微秒为单位返回声波传播时间
distance= duration*0.034/2; //距离=持续时间*0.034/2;
return distance;
}
上位机processing去官网下就行,代码需要改成自己的串口,我的是COM3
import processing.serial.*; // imports library for serial communication
import java.awt.event.KeyEvent<