程序员开发实例大全宝库

网站首页 > 编程文章 正文

Qt写了一个通过Arduino发来的串口超声波模块的数据到UI上

zazugpt 2024-09-01 07:58:06 编程文章 22 ℃ 0 评论

第一准备材料

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);
}

3,ui的布局


第四,验证


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表