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

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

3天内不再提示

如何使用Arduino读取卡尺

454398 来源:wv 2019-09-24 10:27 次阅读

步骤1:游标卡子

如何使用Arduino读取卡尺

我一直在使用的游标卡尺是Precision Gold的电子数字游标卡尺。我从英国的Maplin(项目代码N48AA)购买了卡尺,价格不到20英镑。

在尝试了万用表和jyetech示波器(一种非常便宜的基本示波器,可以以套件价格购买,价格低于£20)之后。 40)我发现引脚如图所示。

步骤2:电压:逻辑和电源

Arduino使用5V逻辑,但卡尺输出1.5V逻辑。这有点困难,可能并不总是有效,确实应该使用适当的逻辑电平转换电路,但是流畅的操作是一个简单的技巧,与我的Arduino配合得很好:

我的Arduino在逻辑高和逻辑低之间切换大约2.5V(这在板之间可能会有所不同)。

将卡尺的正引脚连接到3.3V电源意味着当时钟和数据引脚连接到arduino时,它们的电压似乎在3.3V和1.8之间变化V,分别是Arduino的逻辑高电平和低电平。

使用Arduino为卡尺供电

为避免在卡尺中使用电池,可以使用图示的电源电路(卸下按钮单元)。这种方法依赖于使用LED来调节卡钳的电源电压。

电阻

大约200Ohm

电容器

我使用的10uF效果很好,但是使用更大的电阻不会有任何危害。电容。额定电压为2V或更高。

LED

对于LED,请尝试找到一个压降尽可能接近1.6V的LED。我使用了一个压降为1.8V的红色LED。红色和IR LED上的电压降往往较低。

步骤3:数据协议

我的卡尺上使用的数据协议如下:

时钟脉冲,如图所示。

在时钟下降沿读取数据给出了合理的输出。

示例数据输出:

1,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(屏幕显示0.00毫米或0.000英寸)

1,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0 ,0,0,(屏幕显示10.00mm)

1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0, 0,0,0,1,0,0,(屏幕显示-1.00mm)

1,0,0,0,1,1,0,0,1,0,1,0,1,1, 1,0,0,0,0,0,0,0,0,0,(屏幕显示150.00mm)

数据解释:

?,X,X,X,X,X,X, X,X,X,X,X,X,X,X,X,?,?,?,?,?,Y,?,?

? =不确定

X是否为字符串开头的最低有效位的二进制数。二进制数是距离,以毫米为单位乘以100。Y =符号位,如果Y = 1,则负数,如果Y = 0,数字为正,

注意:确保将游标卡尺设置为mm,以英寸模式运行非常相似,除了最低有效位用于显示1/2000英寸。

第4步:Arduino代码

这是一个非常基本的Arduino代码,应该与几种卡尺数据协议兼容。

每个值之间都有逗号,以方便使用.CSV文件将数据导入电子表格。

此代码的主要要求是希望在时钟脉冲的下降沿读取数据。

希望这段代码应该意味着,当您将Arduino连接到计算机并使用115200 Baud的串行监视器时,您会很明智地查看二进制文件。

麻烦射击:

如果二进制字符串的长度变化很大,则时钟和数据引脚的方向可能不正确。

代码:

//简单的数字卡尺阅读器

//请参阅http://j44industries.blogspot.com/

//引脚声明

int dataIn = 11;

int clockIn = 12;

//变量

int clock = 1;

int lastClock = 1;

unsigned long time = 0;

unsigned long timeStart = 0;

int out = 0;

void setup(){

//引脚设置

pinMode( dataIn,INPUT);

pinMode(clockIn,INPUT);

Serial.begin(115200);

Serial.println(“ Ready:”);

}

void loop(){

lastClock =时钟;

时钟= digitalRead(clockIn);

如果(lastClock == 1 && clock == 0){

out = digitalRead(dataIn)+ digitalRead(dataIn)+ digitalRead( DATAIN);//三重采样以消除毛刺

if((micros()-time)》 800){

Serial.println(“”);

}

else if((micros()-time )》 400){

Serial.print(“”);

}

如果(out》 1){

Serial.print(“ 1”);

}

else {

Serial.print(“ 0”);

}

Serial.print(“,”);

时间= micros();

}

}

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

    关注

    0

    文章

    16

    浏览量

    8507
  • Arduino
    +关注

    关注

    188

    文章

    6472

    浏览量

    187378
收藏 人收藏

    评论

    相关推荐

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 739次阅读

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 1136次阅读

    指纹读取器上进行扫描什么意思

    指纹读取器是一种生物识别技术,它通过扫描和分析个人的指纹来识别身份。指纹是人体手指皮肤上的独特纹理,每个人的指纹都是独一无二的,即使是同卵双胞胎的指纹也会有所不同。这种技术已经被广泛应用于安全
    的头像 发表于 10-14 10:57 271次阅读

    PRU读取延迟

    电子发烧友网站提供《PRU读取延迟.pdf》资料免费下载
    发表于 09-19 11:10 0次下载
    PRU<b class='flag-5'>读取</b>延迟

    Arduino Nano 和 NodeMCU ESP8266 读取 DHT11 环境温湿度数据及 OLED显示

    Arduino Nano 和 NodeMCU ESP8266 读取 DHT11 环境温湿度数据及 OLED显示
    的头像 发表于 08-13 18:04 1257次阅读
    <b class='flag-5'>Arduino</b> Nano 和 NodeMCU ESP8266 <b class='flag-5'>读取</b> DHT11 环境温湿度数据及 OLED显示

    PLC如何读取伺服位置

    在工业自动化领域中,伺服电机因其高精度、高速度和高可靠性的特性而得到广泛应用。为了实现对伺服电机的精确控制,通常需要读取其当前位置信息。可编程逻辑控制器(PLC)作为工业自动化系统的核心控制设备
    的头像 发表于 06-18 10:07 2140次阅读

    欧姆龙如何合法地解除PLC的读取保护

    读取保护状态,以防止未授权的访问或修改。 本文将讨论如何合法地解除PLC的读取保护,以便在需要时进行正常的维护和升级操作。 了解PLC的读取保护机制 在尝试解除读取保护之前,首先需要了
    的头像 发表于 06-11 17:12 2691次阅读

    示波器如何读取电压值

    示波器作为电子测量领域的重要工具,其主要功能之一是读取电路中的电压值。对于电子工程师和技术人员而言,准确地读取电压值是进行电路分析、故障诊断和优化的基础。本文旨在详细介绍示波器读取电压值的方法、步骤、注意事项及实际应用,以期为相
    的头像 发表于 05-14 17:02 6076次阅读

    arduino中while循环怎么跳出

    Arduino 是一款开源的硬件平台,广泛应用于各种物联网和嵌入式系统项目。在 Arduino 上编写代码时,循环结构起到了至关重要的作用。而其中的 while 循环更是常用于需要根据特定条件重复
    的头像 发表于 02-14 16:22 2654次阅读

    如何将按钮连接到Arduino

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

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

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

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

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

    ESP32与Arduino板之间的区别差异

    Arduino板包括一个ATmega328P8位微控制器,具有0至13个数字引脚。这些引脚用于数字输入和数字输出,其中数字输入用于从设备读取数据,数字输出用于将数据从Arduino发送到设备。
    的头像 发表于 02-02 14:36 7698次阅读
    ESP32与<b class='flag-5'>Arduino</b>板之间的区别差异

    2023年Arduino开放原码报告:持续茁壮的Arduino生态系!

    所谓出钱就是买一片Arduino开发板或是付费订阅Arduino Cloud云端服务,或单纯资金赞助;出力就是撰写Arduino相关的程序并无私的分享程序代码或回报错误或投入翻译等,笔者即有若干翻译新版
    的头像 发表于 01-25 16:45 1509次阅读
    2023年<b class='flag-5'>Arduino</b>开放原码报告:持续茁壮的<b class='flag-5'>Arduino</b>生态系!

    游标卡尺的使用方法及注意事项

    游标卡尺是一种常用的测量工具,可以对物体的长度、宽度和深度进行精确测量。它的主要部件包括刻度板、定位爪和可动爪。游标卡尺的使用方法相对简单,但是在具体操作过程中需要注意一些事项,以确保测量的准确性
    的头像 发表于 01-19 10:01 6914次阅读