第一准备材料
arduino Nano板
超声波模块
杜邦线
USB数据线
第二,硬件代码
const int TrigPin=2;
const int EchoPin=3;
float distance;
void setup() {
Serial.begin(9600);
pinMode(TrigPin,OUTPUT);
pinMode(EchoPin,INPUT);
}
void loop() {
digitalWrite(TrigPin,LOW);
delayMicroseconds(2);
digitalWrite(TrigPin,HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin,LOW);
distance=pulseIn(EchoPin,HIGH)/58.00;
Serial.print(distance);
Serial.print("cm");
Serial.println();
delay(1000);
}
第三,Qt实现串口通信
在写ui前先在Qt你自己创建好Qt文件中的.pro文件里的添加这个模块
QT += core gui serialport
然后在.h文件里添加两个头文件;如下
#include "QSerialPortInfo"
#include "QSerialPort"
1,头文件的代码
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "QSerialPortInfo"
#include "QSerialPort"
#include <QDebug>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_pushButton_clicked();
void read_data();
private:
Ui::Widget *ui;
QSerialPort serial;
};
#endif // WIDGET_H
2,cpp文件
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
connect(&serial,&QSerialPort::readyRead,this,&Widget::read_data);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()
{
serial.setPortName("COM7");
serial.setBaudRate(QSerialPort::Baud9600);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);
serial.open(QIODevice::ReadWrite);
}
void Widget::read_data()
{
QString data = serial.readAll();
qDebug()<<data;
QStringList serial_data = data.split(QRegExp("cm\r\n"));
QString str = serial_data[0];
qDebug()<<str;
ui->lcdNumber->display(str);
}
本文暂时没有评论,来添加一个吧(●'◡'●)