在这个我会做一个小工具的项目中。
我将使用我需要的 3D 打印机打印所需的零件。你也可以使用其他材料,但准确度是组件中的关键因素。
49E霍尔传感器*2——49E 是一款多功能智能显示器。
Arduino NANO 进行计算。AtMega328p 只有一个 10 位 DAC,计算使用 Sine,所以会有限制。
使用1602显示器来显示结果——1602显示器是每行2行16个字符的显示器。
UV胶水
需要3D立体模型来打印二维器的长度。
点击图标可以下载分割臂的 STL 文件。
传感器臂.stl
臂臂.stl
第1步:49E线性霍尔传感器
霍尔传感器的制造商有很多我附在我的数据表上,从霍尼韦尔发现。
我已经可以找到最便宜的了。
我制作了适合 49E 的塑料部件。
49E 只有 3 个连接。
+6 1 = 电源(+2.7.5伏)
密钥 2 = 接地点。
(输入通常在输入3 = 输入模拟之间 - 1 )
输出是线性的,mV/Gauss。
[NS]显示了它的磁强强度表的方向。
如果我们将要输出的传感器将与显示的距离很近。
第2步:今天
我正在使用两个用户来改变传感器周围的磁场强度。
的意义为: 宽度 = 5 毫米,深度 = 5 毫米,高度 = 2 毫米。
北/南方向是从下到上。(在2毫米方向)
让我们看看会产生的样子。
集中在焦点的中心。
在向北移动的中心,从南,几乎是平行的。
当返回磁体的时候,返回磁体的时候,会返回。
如果假设在一个磁极的位置,我们会选择它到我们的位置,如果你会选择移动返回,因为会跟着你返回。
传感器非常敏感,任何雷达传感器都没有。
我们需要减少可能产生的错误。
如果我们能把手机当成只是简单的一件事情就再理想了。
我降低风险的方法是使用两个今天。
如果使用两个同类的函数,我们应该会产生一个如果内部的区域。
如果我们把今天当当当当当当当当当当当当当当当当当相对户户用,那么每天的时间,将与父母的两个区域,并且该是的
第3步:计算角度
我们将带着手机。
未来智能手机上将启动与未来将产生不同的输出。
输出将给出其旋转角度的正弦值。
我已经做了一个尝试来尝试解释输出。
关键的焦点是围绕着这个话题。
蓝代表智能手机视角/旋转时间的位置。
黄线传感器从南到北看到的线性强度。
绿线显示正弦计算。
红色是准确的区域。
因为是的,所以你会认为准确的值对于我们来说可以将模拟结果转换成小数据。
Arduino NANO DAC 是 10 位的。
Arduino NO 与 float 相同,float 数据类型只有 6-7 个复数的双精度 NA。
因为正在旋转是远离传感器,所以我们输出的是输出而不是输出的正弦计算。
我们将拥有仅 10 个阳光灿烂的海滩 (DAC) 无法很好计算的区域
可以用正确的植物的蓝色线条表示可以计算的尺寸。
象牙蓝的蓝线表示无法精确计算的角度。
可以看到,在旋转时,磁力的分布有更多的度数。
我已经关注了它的全部领域,以。
我正在使用最简单的哈尔传感器。
为了获得第一个传感器,因此可以使用另一个传感器。建立另一个传感器,与达到 90 度,每个传感器仅使用精度良好的区域。
是基本的,当我们集中思想的时候,我会证明一点。
第4步:让我们做长线
我已经提到传感器非常敏感的组件,就是它
的设置是准确的。它不应该移动。
可以在代码中补偿一些错位。
第5步:安装传感器
传感器需要在隔板的传感器臂上粘上。印刷部件有一个异形孔,定位传感器的安装方式。、
第6步:走路方向
为了帮助我在手机上找到一个磁体方向应用程序。
手机需要包含磁力计,通常它有 GPS,它会显示一个磁力计。
有磁力计的应用程序,我发现最好的应用程序是 3D 应用程序。
该图有一个典型的 3d 应用程序程序。箭头指向北方的中心。
我使用的是:3D罗盘和磁力计。
手机中的磁力计始终不在。
它用最方便的手机做一些可以在实验
中找到的位置,就可以更方便地找到磁力计的位置。
我通常将手机定位在工作台上的磁力计工作台上。
第7步:将和第二臂安装
安装和第二个有点麻烦。
在将两个臂膀牵涉到之前,请让两个移动臂在第一个臂膀的牵动下。
需要积极参与中。
你必须将一个真正的终点正确地,同时将第二个磁场极点确定在一个端点上。
这个必须在今天,第一个第二个展开。
两个两个组合,唯一的动作应该是:将一群人转移到一起并拉近彼此。
不会有横向移动或扭曲,否则会产生错误。
第8步:将电缆添加到分频器
下一个是在传感器上添加,电缆以便将其连接到Arduino NANO。
我的 Arduino NANO 分线,所以我在安装一个杜邦母线连接器。
检查步骤获取正确的连接。
第9步:显示屏(LCD)
为了从传感器获得反馈,我使用了每行 2 行 16 字符的 LCD。
我需要使用 PC28575 连接到 PCF。
我有电缆连接杜邦母连接器的4线,用于将它连接到我的Arduino NANO。
第10步:连接到Arduino NANO
点击下载数据库。
TIms电气分离器.fzz下载
TIms电气分离器_bb.pdf下载TIms电气分离器
_schem.pdf
第11步:代码
我如果你有一个 Arduino NANO,你已经对它进行了实验,并且已经到Arduino.cc网站了解了有关它的信息。
如果这是您第一次使用 Arduino 架构的设备,请先访问此处: Arduino IDE 2 教程
在这里,您可以下载 Arduino IDE,并且有来自创建 Arduino 的人的教程。
本教程展示了如何将草图上传到设备。
下面是代码。
下面是代码。
/* TIms_Electronic_Deviders.ino 由 Tim Jackson.1960 学分:阿杜诺 。 LiquidCrystal_I2C 基于 DFRobot 的工作。 这是以下代码:Tim 的电子分离器。 我正在使用带有 49E 线性霍尔效应传感器和两个磁铁的 3D 打印分离器。 我正在使用 Arduino NANO 根据从 49E 线性霍尔效应传感器接收到的值来计算分频器的位置。 传感器是线性的:3 mV/GS,但要获得角度,需要计算值的正弦值。 S=O/HC=A/HT=O/A 度到弧度 = 度 * (PI / 180) 弧度到度 = 弧度 * 180.0 / pi */ #include #include #define Hall_49R_Pin A1 // 定义霍尔效应引脚 #define CAL_0 377 // 0 角霍尔效应传感器的 值 #define CAL_180 690 // 180 角霍尔效应传感器的值 #define CAL_RANGE (CAL_180 - CAL_0) // 最高 CAL - 最低 CAL #define CAL_RAD ((double)CAL_RANGE / 2) // 用于正弦 H 值以获得角度。 #define LEG_LENGTH 99 // 分隔线的长度。 #define MAG_BIOS -3.11 // 设置为零,然后更改为将测量值校正约 60 度的值。 双角 = 0; // 保存角度值的变量。 双长度 = 0; // 保存长度值的变量。 int SensorValue = CAL_0 + 1;// 保存传感器值的变量。 LiquidCrystal_I2C lcd(0x27, 16, 2); //20 到 27 // 将 LCD 地址设置为 0x27 以实现 16 个字符和 2 行显示 无效设置() { Serial.begin(115200);// 启动串行。 pinMode(Hall_49R_Pin,输入);// 定义为输入。 液晶显示器();// 启动液晶显示器。 液晶背光();// 打开背光。 lcd.setCursor(0, 0); // 将光标设置在第 0 行(顶行)的开头。 lcd.print("角度:"); // 在顶行显示角度标签。 lcd.setCursor(0, 1); // 在第 1 行(底线)的开头设置光标。 lcd.print("长度:"); // 在底线显示长度标签。 } 无效循环() { SensorValue = 模拟读取(Hall_49R_Pin);// 从传感器读取值。 Serial.println(SensorValue); // 发送值到串口。 计算角度();// 为角度做子路由。 计算长度();// 为长度做子路由。 序列号.println(); // 向串行发送一个新行以分隔值。 延迟(200);// 稍等片刻,等事情发生。 } /* 使用来自传感器的值计算角度。 S=O/H 弧度到度数 = 弧度 * 180.0 / pi O = SensorValue - CAL_0 - CAL_RAD H = CAL_RAD 弧度角 = asin(O / H) 度角 = 弧度角 * 180.0 / pi; */ void CalcAngle() { double O = (double)SensorValue - CAL_0 - CAL_RAD; 双 H = (双)O / CAL_RAD; 角度 = 90.0 + (asin(H) * 180.0 / PI); Serial.print("角度"); Serial.println(Angle + MAG_BIOS, 4); lcd.setCursor(7, 0); lcd.print(""); lcd.setCursor(Xpos(Angle + MAG_BIOS), 0); lcd.print(角度 + MAG_BIOS, 3); lcd.print(""); } /* 使用从传感器计算的度数计算长度。 C=A/H A=C*H 度数为弧度 = 度数 * (PI / 180) C = (180 - 角度) / 2 H = LEG_LENGTH A = C * H 长度 = A * 2 */ void CalcLength() { 双 _angle = (180.0 - 角度) / 2; 双 _rad = _angle * (PI / 180); 双 C = cos(_rad); 双 H = LEG_LENGTH; 长度 = C * H * 2; Serial.print("长度"); Serial.println(长度 + MAG_BIOS, 4); lcd.setCursor(7, 1); lcd.print(""); lcd.setCursor(Xpos(Length + MAG_BIOS), 1); lcd.print(长度 + MAG_BIOS, 3); lcd.print(""); } /* 这是一个计算 LCD 上显示值位置的函数。 检查值是数百、数十还是单个。 保持数字一致。 */ byte Xpos(byte number) { byte val = 8; 如果(数字 < 100){ val = 9; } if (number < 10) { val = 10; } 返回值; } |
我已经附上代码“Tims_Electronic_Deviders.ino”,您可以点击这里下载它。
当你下载 Sketch 的时候,你需要把它放在一个没有“.ino”的同名文件夹中。
12步:第一次替换
在零设置之前,MAG_BIOS 值需要设置为 0()。
#define MAG_BIOS -3.11 // 设置为零,然后更改为将测量值校正约 60 度的值。 |
卸妆器,需要流动。
关闭拆分线并下一个数字,即之前记录/下一个数字。
打开一张图,即早/早/的一个数字的数字显示。
分频器打开时记录的数字应大于分频器关闭时的记录。
如果数字是错误的,那么看似是错误的。
根据标注的值更改 CAL_0 和 CAL_180 的 #defined 值。
#define CAL_0 377 // 0 角霍尔效应传感器的值 #define CAL_180 690 // 霍尔效应传感器的值 |
使用量角器将分频器设置为60度,记下显示的角度。
以前可用的时间,有60度并记录下。
角度(度)和距离(毫米)的精度相似。
更改 MAG_BIOS 的#defined 以补偿错误。
#define MAG_BIOS 0 // 设置为零,然后更改为将测量值校正约 60 度的值。 |
以后不同的情况。
0到15度。
165到180度。
这是因为这些区域是正弦曲线的地方,变化不大。
第13步:如何获得更好的选择
这是为了展示如何制作简单的工具并展示霍尔传感器的基础知识。49E 只是一个线性模拟传感器。
还有其他可以使用的传感器,例如:
AS502是一个旋转位置传感器,有1个或PWM模拟接口。
MLX90393 传感器与沿 X、Y 和 Z 轴感应的磁密度成比例输出的 1 位。
传感器会带来更多的使用价值。