0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将数字千分尺连接到Arduino和VGA监视器

454398 来源:wv 2019-10-26 09:58 次阅读

步骤1:

如何将数字千分尺连接到Arduino和VGA监视器

这是一个示意图,显示了三丰电缆的接线方式。在此应用程序中未使用的电缆的千分尺末端有一个红色的“数据”按钮,因此我们决定将其用作“菜单”按钮。

步骤2 :将电缆连接到Arduino

Arduino连接带有一些组件的三丰电缆。一个2x5带罩的插头,与电缆的母插头配对,带有一个PN2222A晶体管和两个10k Ohm电阻器。一个电阻与PN2222A一起使用以保护千分尺(或卡尺)免受过大的电压,另一个电阻将“菜单”按钮偏置到+ 5vdc

我已经提供了PN2222A的数据表和驱动器我们现在使用的基于CH340的Arduino Nano。

步骤3:读取Mitutoyo输出

代码(感谢Mark Burmistrak对我的原始内容所做的修改),它读取数据流,以正确的顺序重新组合并打印测量结果,如下所示:

int req = 5;//mic REQ线通过q1到达引脚5(arduino高电平将请求线拉低)

int dat = 2;//mic数据线连接到引脚2

int clk = 3;//mic时钟线转到引脚3

int i = 0;

int j = 0;

int k = 0;

int signCh = 8;

int符号= 0;

int十进制;

float dpp;

int单位;

字节mydata [14];

字符串value_str;

long value_int;//是一个int,不能测量超过32mm的浮点值;

void setup(){

Serial.begin(9600);

pinMode(req,OUTPUT);

pinMode(clk,INPUT_PULLUP);

pinMode(dat,INPUT_PULLUP);

digitalWrite(REQ,LOW);//将请求设置为高

}

void loop(){

digitalWrite(req,HIGH);//生成设置请求

for(i = 0; i 《13; i ++){ 0;

for(j = 0; j 《4; j ++){

while(digitalRead(clk)== LOW){

}//保持到时钟高电平

while(digitalRead(clk) == HIGH){

}//保持到时钟为低电平

bitWrite(k,j,(digitalRead(dat)&0x1));

}

mydata [i] = k;

}

sign = mydata [4];

value_str =字符串(mydata [5])+字符串(mydata [6])+字符串(mydata [7])+字符串(mydata [8] +字符串(mydata [9] +字符串(mydata [10]) ));

decimal = mydata [11];

units = mydata [12];

value_int = value_str.toInt();

如果(十进制== 0)dpp = 1.0;

如果(十进制== 1)dpp = 10.0;

如果(小数== 2)dpp = 100.0;

如果(十进制== 3)dpp = 1000.0;

如果(十进制== 4)dpp = 10000.0;

if(decimal == 5)dpp = 100000.0;

value = value_int/dpp;

if(sign == 0){

Serial.println(value,decimal);

}

if(sign == 8){

Serial.print(“-”); Serial.println(值,十进制);

}

digitalWrite(req,LOW);结果,延迟(100);

}

第4步:更多辅助示意图

还有其他几个我们添加的外部连接。首先,一对“采样”按钮(脚和手指)用于在平均之前使用齿轮的3个点进行采样测量,并使用最终的平均值(如果采样相距太远则拒绝)。第二,是uVGA卡的复位电路。

步骤5:输出到VGA

使用4D的uVGA-II(SGC)模块获取Arduino的串行输出,并将其显示在典型的vga监视器上。在此说明的最后一步中可以看到执行此操作的代码。特别感谢Rei Vilo在本节中提供的帮助-https://github.com/rei-vilo和http://reivilohobbies.weebly.com/

已由uVGA-代替。 III。

在Arduino草图中,当您要将数据发送到uvga模块时,请使用如下语句:

uvga(“ N”,value);

其中N是uvga上变量的名称,value是包含要传递的值的变量。

在草图的末尾(在void循环的右括号之后)您具有以下功能:

int uvga(char * x,int y){

delay(50);

Serial3.print(“ $”);

Serial3.print(x);

Serial3.println(y,DEC);

}

我在Mega 2560上使用Serial3,但是您可以使用softserial和UNO。

在uvga上运行的代码接受该串行“数据包”,并将传递的值放入传递的变量中,然后可以在屏幕上显示该值。随附了uvga的示例代码。这是一个纯文本文件。您将需要4D的Workshop软件和USB到TTL电缆才能将代码上传到uvga。

步骤6:具有测量采样和Vga输出的完整代码

如果您想了解我们如何应用此特定解决方案,我们将使用它根据测量结果为齿轮组生成箱号。随附的是我们完整的代码,该代码是在Arduino,4D和Arduinohome论坛的许多其他人的帮助下开发的。

较小的文件只是执行以下操作所需的代码显示千分尺的原始读数。将变量“ num”除以1000得到以毫米为单位的输出。

步骤7:现在处于GFX模式(4DGL)

我们刚刚对该项目进行了重大升级。屏幕输出看起来相同,但是所有图形处理已移至uVGA-II。我们从4D系统购买了编程电缆,并上传了新的PmmC文件,该文件将卡从SGC模式(哑模式)切换到GFX(协处理器模式)。这大大加快了程序的运行。我们还集成了“数据包”串行传输功能,该功能以串行数据包的形式将数据发送到uVGA-II,并带有起始符号,数据包ID(指定数据在接收端指向的变量)和数据包的结尾符号)。这使得多个目标数据的传递非常可靠。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 监视器
    +关注

    关注

    1

    文章

    780

    浏览量

    33088
  • VGA
    VGA
    +关注

    关注

    5

    文章

    530

    浏览量

    62794
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186570
收藏 人收藏

    评论

    相关推荐

    焊接sma头的内芯直径多少

    德索工程师说道焊接sma头的内芯直径是指其内导体的直径。内芯直径的大小对连接器的电气性能和机械性能有重要影响。内芯直径是指其内导体的直径,通常使用毫米作为单位。内芯直径的测量可以使用各种测量工具,如千分尺、游标卡尺等。
    的头像 发表于 10-31 15:42 100次阅读
    焊接sma头的内芯直径多少

    如何将LVDS/OLDI桥接到HDMI/DVI

    电子发烧友网站提供《如何将LVDS/OLDI桥接到HDMI/DVI.pdf》资料免费下载
    发表于 09-27 09:35 1次下载
    <b class='flag-5'>如何将</b>LVDS/OLDI桥<b class='flag-5'>接到</b>HDMI/DVI

    LM94硬件监视器数据表

    电子发烧友网站提供《LM94硬件监视器数据表.pdf》资料免费下载
    发表于 08-14 10:42 0次下载
    LM94硬件<b class='flag-5'>监视器</b>数据表

    使用ESP8266arduino连接到thinkspeak云,无法将其连接到任何网页,为什么?

    我正在尝试使用 ESP8266 arduino 连接到 thinkspeak 云。所以我能够 esp 模块连接到我的家庭 wifi,但
    发表于 07-16 07:43

    ESP8266为什么不响应Arduino

    arduino,其中从串行监视器接收的任何命令都会转发到连接到 esp8266 的串行(mega 有 4 个硬件串行端口)。然而,即使是一个简单的“AT”命令也不会从 wifi
    发表于 07-16 06:39

    workbench的监视器如何通过串口连接到开发板?

    我用的是NUCLEO-F303RE+X-NUCLEO-IHM08M1的开发板套件。workbench的监视器如何通过串口连接到开发板。是连接UART2吗?连接不成功是怎么回事?
    发表于 03-29 06:01

    MCSDK5.4.8生成代码烧录之后串口无法连接到监视器如何解决?

    or the baudrate (set to 115200 bps). 我的串口是RS232的信号,已经安装了RS232驱动,可以正常通过串口收发数据,但是无法连接MCSDK的监视器,怎么办呢,而且按Stop/Start也无法启动电机,如何解决
    发表于 03-15 07:01

    如何将KY-008连接到Arduino

     KY-008 是一种激光发射模块,可产生点状激光束,可用作激光指示或创建迷你激光表演。它与 Arduino、Raspberry PI、ESP32和其他流行的微控制兼容。
    的头像 发表于 02-11 11:02 1394次阅读
    <b class='flag-5'>如何将</b>KY-008<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b>

    如何将LED连接到Arduino板并使其闪烁

     在本快速入门指南中,您将学习如何将 LED 连接到 Arduino 板并使其闪烁。
    的头像 发表于 02-11 10:53 2026次阅读
    <b class='flag-5'>如何将</b>LED<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b>板并使其闪烁

    如何将按钮连接到Arduino

    在本快速入门指南中,您将学习如何将按钮连接到Arduino板,并根据按钮是否被按下来读取HIGH或LOW。您将使用电路板上随附的发光二极管 (LED)通过按钮打开和关闭,以便验证按钮按下代码是否正常工作。
    的头像 发表于 02-11 10:52 3362次阅读
    <b class='flag-5'>如何将</b>按钮<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b>板

    如何将光敏电阻连接到Arduino板并读取电压

    在本快速入门指南中,您将学习如何将光敏电阻连接到Arduino板并读取电压。您将首先使用串行监视器来了解光传感的行为方式,然后构建一个电路
    的头像 发表于 02-11 10:45 3494次阅读
    <b class='flag-5'>如何将</b>光敏电阻<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b>板并读取电压

    如何将HC-SR04连接到Arduino并编写一个简单的程序来测量距离

    一种流行的Arduino超声波传感是HC-SR04。它广泛用于非接触式距离测量,通常用于机器人和自动化项目。本指南向您展示如何将HC-SR04
    的头像 发表于 02-11 10:17 2165次阅读
    <b class='flag-5'>如何将</b>HC-SR04<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b>并编写一个简单的程序来测量距离

    如何将增量旋转编码Arduino连接

    在本教程中,您将学习如何将增量旋转编码Arduino连接,以读取旋钮的运动。这对于在机器人和其他应用程序中创建用户界面或读取机械位置非常有用。
    的头像 发表于 02-11 10:00 1311次阅读
    <b class='flag-5'>如何将</b>增量旋转编码<b class='flag-5'>器</b>与<b class='flag-5'>Arduino</b><b class='flag-5'>连接</b>

    测量电机机座中心高方法

    测量工具、测量步骤和注意事项等方面。 游标卡尺:游标卡尺是一种精度较高的测量工具,可以用于测量电机机座中心高的尺寸。游标卡尺具有读数准确、操作方便等优点,是测量电机机座中心高的常用工具之一。 千分尺千分尺
    的头像 发表于 12-14 14:51 2329次阅读

    AD5422无法满足千分之一的精度要求怎么解决?

    我研发的项目用到AD5422芯片做模拟量输出4-20mA,碰到如下问题: 通过配置控制寄存,让AD5422工作在4-20mA输出模式,外置的Rset选用的千分之一的15K电阻。但是实测的时候发现
    发表于 11-23 06:35