卫生纸不足时如何触发报警?


47

任何有孩子的人都知道他们永远不会帮助厕纸。任何人都知道如何跟踪低声或低声并发出警报声吗?我只是不知道使用哪种传感器会有所帮助。

我想到的一些是:按重量,通过反射(纸张的颜色)或某些激光绊线-完全在卷轴上。我不介意构建它,只是我不知道哪个传感器。有人知道该使用哪个吗?


5
也许您还应该考虑在马桶座圈上安装一个传感器,这样如果有人在没有纸的情况下坐下,它将发出警报声。:)
彼得·布鲁姆菲尔德

也许只是尝试测量一卷纸的径向阻力(希望它不是太高),然后在纸张用完时就减小了。
jfpoilpret 2014年

忘记电阻:只是尝试测量它,但它超过了我的万用表的最大口径(20M欧姆)
jfpoilpret 2014年

1
嗯,接下来可能是在meta.arduino上进行了更好的讨论,但是我认为这个问题通常是骗取拥有arduino SE的要点。它并不直接与arduinos绑定,因为每个项目都不会针对某个工具设计其解决方案,而是选择最适合该解决方案的工具(如果使用RPi更好,或者使用CC2540,该怎么办?)。这确实是一个机械,电子,软件工程解决方案。我没有一个最好的SE场所问这样的问题。
zmo 2014年

@zmo然后我建议OP编辑他的问题,以增加通过Arduino驱动警报的需要;这会使Arduino.SE变得更好
jfpoilpret 2014年

Answers:


47

一次提起几卷并悬挂一卷即可使用。将其他两个放在保姆可及范围内的短垂直杆上。保姆可以在需要时再滚一次。

机械感觉杆子底部的架子上没有重量。移除最后一卷时触发警报。没有人会陷入困境。

要感应重量,请使用力敏电阻,例如FSR 400(请参见数据表)。或者,您可以使用轻巧的螺旋弹簧通过一个微动开关将卫生纸放在上面,当两个纸卷都被取出时,微动开关就会松开。另一种选择是红外光束中断检测器,在该电路中,当最后一卷纸被取走时电路就完成了。


@AnnonomusPerson他正在谈论测量几整卷卫生纸的重量,而不是单张纸或空纸卷的重量。
AJMansfield 2014年

1
这是一个好主意:不必测量剩余的纸卷数量,而是测量剩余的纸卷数量,以告诉您何时需要获得更多的纸卷。
AJMansfield 2014年

您将使用哪种传感器检测体重不足?
jfpoilpret 2014年

3
织物压力传感器是一种选择,或者如果存在卷筒,则可以在基座上盖上光传感器。
罗布·霍尔

您能否提供一个可以完成此任务的特定传感器的示例?
asheeshr 2014年

22

我相信jfpoilpret和jmathew提出的簧片传感器概念最容易实现。我已经绘制了一个示意图,说明了它的外观。

您可以通过调节下部触点的高度来调节灵敏度。

这实际上只会使您处于“低”状态,而不必处于困境。除非您想在还剩下几张纸的情况下更换纸卷,否则在我看来这不是一个令人满意的解决方案。我宁愿有一个“ out”指示器,并有一个可听见的蜂鸣器,以提示/羞耻用户更换纸卷。

可以使用独立的电子设备(无需arduino)完成此设计。但是,如果您想游戏化滚动的变化,则可以使用arduino。

还要注意基于颜色的光学传感器,尽管用于此目的的绝大多数纸板管都是棕色的,但我也看到了白色的使用。

簧片传感器图


6
漂亮的图表。您用什么来制作它们?
jmathew 2014年

1
只是一个重要的评论:在这种情况下,您甚至不需要簧片触点,而只需将两片金属用作简单的开关。簧片触点基于打开或关闭开关的磁力;在我的答案中,这两个部分之间没有真正的联系是需要的。但是,我认为在这里使用芦苇似乎毫无用处。
jfpoilpret 2014年

@jfpoilpret我不知道该术语是一种特定的开关。我在考虑刚性可弯曲材料的更一般概念。感谢您的澄清!
jmathew 2014年

@jmathew没问题,毕竟,我们都在这里共享知识!
jfpoilpret 2014年

2
我使用的MS Visio 2007中
Arluin

14

我想我在James May的Manlab系列1第2集中看到了这一点。

与jfpoilpret相似,在弹簧上使用一块较大的材料,使其始终与纸卷接触。我说的是“宽”,这样,当纸卷排空时,簧片就会与侧面的一个纸卷支架上的一个触点接触。当它触摸时,会为您的警报建立电路。

这是描述我意思的粗略图像。

在Arluin的回应中,提到该方法不会显示出纸卷是空的。那几乎是真的。如果顶部触点的厚度与TP纸板辊的厚度相同,而底部触点位于纸板辊的内部内部,则它应足够靠近以用于实际用途。塔哥之夜过后,一英尺的TP卷还不够。

看得出我的想象力


9

使用放射线检测器检测纸卷上剩余的纸张量。在卷轴杆的中间放置一些放射性物质,并将辐射探测器放置在其他位置(如果需要,可以将其安装在卷纸支架固定表面的另一侧;辐射传感器非常灵活) ,然后测量辐射量以确定卷筒上剩余多少纸张。

或者,您可以使用一个电子控制的厕纸分配器(按一下按钮来分配预编程长度的厕纸),并让arduino跟踪已分配的数量。

或者,将旋转编码器连接到线轴杆的侧面(确保其正确安装,而不会在纸卷内部滑动),并计数纸卷的旋转以确定已使用了多少。

当然,使用这些方法中的任何一种,您都必须根据卫生纸的确切类型/品牌/材料/等进行测试并收集数据。

特别是对于第二和第三种想法,我建议定期从系统中获取数据,以跟踪卷筒的典型长度,以便您可以针对任何重大变化来调整程序。即使在一种厕纸中,我也可以想象到卷纸长度会有一些变化。

为了获得更多乐趣,您可以对检测器进行检测以收集时间序列数据,以便稍后将其上载到计算机并制作“随时间推移使用厕纸”的图形或其他内容。


2
我非常喜欢使用旋转编码器。甚至可以设计TP支架,使编码器通过辊子固定在杆上,从而不会在编码器上移动。也可以使用一个按钮来重置计数。
Steven10172 2014年

1
但是一个常见的问题是确定最大转数,因为这取决于纸张的数量及其厚度。
jfpoilpret 2014年

我会将其从“将辐射装置附加到卫生纸”上更改为将其附加到它所在的中间辊上。具有相同的效果,但每卷都不必重新安装传感器的维护较少
Robotnik

1
您可以通过将所有TP从新纸卷转移到测量纸卷中的卷轴上,然后使用编码器计算旋转数来确定转数(使用简单的DYI东西,例如几个垂直销钉,然后将它们缠绕在另一个上) 。然后,当其为空时,重复。也使整个事情变得易于使用,因为您可以继续重复使用已与编码器连接的同一个线轴,并继续将新的TP包装在其上。
杰森C

1
@AJMansfield我不知道在接收纸卷的侧面用纸板切出一些圆圈是否会得到令人满意的结果;如果将卷装在销钉上以进行传输,则只需在圆盘中心戳一个孔并将其滑动即可。从好的方面来说,如果您始终购买同一品牌的TP,则只需这样做一次(而且您可以方便地列出所发现的不同品牌/类型的旋转次数列表,您可能会世界上第一个开源TP旋转计数数据库的骄傲维护者)。
杰森C

7

我认为“ Arluin”和“ jmathew”是正确的主意。使用搁在纸卷顶部的杠杆。

我会做一点不同。不用依靠触点关闭,而是可以使用电位计。使用此系统,您可以测量剩余数量,而不必在数量不足时立即得到通知。

使用已经建议的接触器,关闭时,您可能会在接触器中卡纸,然后将无法检测到缺纸。

(您可能需要一个重量,如图中的蓝色所示,以在使用卷筒时向下推控制杆)

您需要尝试使锅尽可能地靠近纸卷,以使锅最大摆动,从而最大程度地解决剩余量。

您可能想要的另一件事是杠杆末端上的某种辊子,以便在杠杆接触纸张的地方,纸卷可以轻松移动而几乎没有阻力。

建议的设置


4

您可以打开其中一张生日贺卡,然后将开关调整到支架臂上。当您从厕所听到“生日快乐”的声音时,您就知道自己很麻烦!(而且由于它们的功率很低,这些东西永远会鸣叫;-))我在这里展示了一个LED设置,但是您明白了...

生日快乐


您能否编辑您的问题以告诉您如何将该项目连接到Arduino开发板?谢谢!
匿名企鹅2014年

3

我为Arduino建立了一个反射转速表,可能会解决您的问题。基本电路非常简单:

转速表电路

我周围有一个光敏电阻,对红光反应良好,另外一个来自Radio Shack。这对旧电视遥控器LED的IR输出非常敏感。为了您的目的,绿线将连接到Arduino的Analog Pin 0,您只需要定期采样,而无需设置Interupt驱动的草图。了解白皮书和灰辊之间反射信号差异的诀窍是,光敏晶体管的光敏度会随着w对GND电阻的增加而增加,但暗电压也会上升。通过从距离探测器几英寸远的黑暗和明亮物体上检查AtoD值,我凭经验得出了5和3兆欧的值。相同的步骤应适用于检测灰色与白色。尽管看起来有些完全不同的某些东西在IR中具有相同的反射率。这是完成的红灯转速表的图片: 在此处输入图片说明

使传感器板足够小,以适合您的出纸器背面,应该很简单。红外版本甚至更小,但埋在家用离心机中的深度太深,无法获得今天的照片。


3

我认为可以使用的另一个体面且便宜的选择是接近传感器,例如电话上的传感器或固定场红外传感器。这些传感器非常精确,可以通过将传感器安装到放置卫生纸的支架或墙壁上,轻松地“看”卫生纸的背面。我在帖子中看到的所有其他想法都不太准确,或者对厕纸有干扰,从长远来看,我觉得这可能会造成污染。接近传感器不仅价格便宜,而且易于使用,如果校准良好,它们可以提供非常高的准确性和可靠性。这种型号的自动小便器已经广泛使用。例如,在手机上:当您的手或脸靠近屏幕时,手机将准确地提供2.0英寸或无穷远的距离。


只需10美元,您就可以得到adafruit.com/products/466 1厘米至15厘米范围(TP卷非常好),并且可以轻松地与微控制器集成。
杰森C

@Jason C:第一次尝试使用VCNL4000,但是像其他报告一样,在读取数据时它会停止/停止/冻结。即使降低mA,也没有人能解决这个问题。
Jose Leon

@Aditya使用HC-SR04接近传感器没有帮助。整卷TP和空TP之间没有区别。我能猜到的最好的是,“回声”正直穿过组织并停在固定TP的金属棒上。因此,至少对于该传感器而言,它不起作用。
Jose Leon 2014年

@JoseLeon我明白了。确实很奇怪。我同意你的推理。也许那里还有另一个传感器可能会起作用,但是我认为您认为红外线应该直接穿过卫生纸的理由似乎是正确的。
Aditya Somani 2014年

2

短距离超声波距离传感器可能是一种有效的(而且相当便宜)的选择。您可以将发射器+传感器组合安装在芯片上。不同的传感器可能以不同的方式工作(请始终检查数据表)。但是,公共输出使用脉冲的长度来指示所感测的距离。您可以使用pulseIn()函数在Arduino中进行处理。

在安装方面,您可能将其安装在厕纸的正后方,并指向卷轴的中心。读数通常很不稳定,因此您需要进行多次测量并取平均值(或使用简单的移动平均值)。通过一些校准,您可以确定代表空阀芯的距离。

当您在相当长的一段时间(例如一分钟或更长时间)内反复检测到该距离时,您会响起警报。

基于反射率的传感器可能是另一种可能性,尽管我想知道您是否会很难找到一种能够在厕纸上正常工作的传感器(取决于您所选择的品牌的柔软程度!)。


我不确定使用超声波传感器是否可以获得足够的精度;IIRC,大多数精度约为3-4毫米;通常这已经足够了,但是考虑到卫生纸卷的直径,这可能太不准确了。
jfpoilpret 2014年

是的,个人阅读通常是这样。但是,波动是相当均匀的,因此您可以平均几个连续的读数来抵消它。这可能会给您约1mm的精度。
彼得·布卢姆菲尔德

当卫生纸在离开传感器一点点旋转的同时剩余一点点纸时摆动了1毫米,会发生什么情况?
匿名企鹅2014年

1
@AnnonomusPerson移动时,您总是会得到虚假的读数。这就是为什么您要等到读数稳定一段时间后才采取行动。
彼得·布鲁姆菲尔德

@Peter R:使用HC-SR04接近传感器没有帮助。整卷TP和空TP之间没有区别。我能猜到的最好的是,“回声”正直穿过组织并停在固定TP的金属棒上。因此,至少对于该传感器而言,它不起作用。
Jose Leon

2

我想到的一个主意就是这样:

  • 在纸卷内(即纸板部分内)粘贴一个小磁铁(每次更换时都必须这样做)
  • 在装有弹簧的摇杆末端使用簧片触点(电磁开关),使其始终与纸卷接触
  • 簧片触点的一个引脚可以直接连接到输入逻辑引脚(将其设置为上拉电阻输入)
  • 簧片触点的另一个引脚将接地

因此,只要磁体和簧片触点之间的距离在某个极限以下,开关就会闭合电路。绘制纸卷时,该距离将减小。

请注意,除了簧片触点之外,您还可以使用霍尔效应传感器,原理保持不变,只是技术和特性会发生变化。

此处的困难将是找到簧片触点的正确灵敏度(或磁体的力),以便当簧片触点与磁体之间的距离足够小时,簧片触点会闭合,以避免过早触发警报)。


与超声波传感器相同,这是行不通的。它仍然会在至少 10英尺高的高度上起飞。颜色传感器是一个更好的主意。
匿名企鹅2014年

我看不到与超声波传感器的关系。您能否进一步开发它为什么行不通?有大量的簧片接触和霍尔效应传感器,更不用说各种磁铁了。
jfpoilpret 2014年

TP层太薄,可能只剩下一点点就可以激活。从理论上讲可以对其进行调整,但是取出显微镜或更换一卷卫生纸的效率真的很低。
匿名企鹅2014年

剩下一点点的激活并不算太糟糕,因为OP问题是“ ...厕纸不足 ”。低不一定表示为空。
jfpoilpret 2014年

2

最简单但最好的解决方案是使用由一个IR LED和一个光电晶体管组成的光电耦合器。您使LED朝着卷筒变亮,LED在与“手柄”相连的卷筒内。卸下纸板卷后,光电晶体管会从LED发出红外光,并在Arduino上触发换针中断,然后可以通过多种方式(光,短信,推特,警报…)向您发出警报。

该设计确实便宜,易于构建且快速。尽管您仍然需要做一件事:当没有更多的厕纸时,您实际上需要卸下纸板卷;-)

否则,对于备用卷的相同解决方案甚至是一个更好的主意:-)


光耦合器不是既包含发射器又包含接收器的单芯片吗?参见此处:en.wikipedia.org/wiki/Opto-isolator
jfpoilpret 2014年

[…]是通过使用光[…]在两个隔离的电路之间传输电信号的组件,因此基本上就是我们在IR LED(一个电路)和光电晶体管之间进行的工作。尽管您说对了,但它不是单个组件(例如MOC3020)。
zmo 2014年

2

这里的许多选项似乎过于复杂和干扰。

色彩感应器

实施的另一种方法是稍微便宜一点(但很有趣),但又不打扰且易于安装,它是制造一种便宜的颜色传感器并将其安装在卷筒后面的墙上。当您检测到纸卷的颜色(或没有TP的颜色)时,它的颜色很低。

您也可以花8美元购买一个

您可以通过利用TP的薄度和仅剩几张纸时看起来有点暗的事实来调整阈值。

如有必要,可以在安装了新卷筒且浴室灯亮起后按按钮进行校准。

您将不得不根据浴室的具体情况进行一些调整。如果增加了一些额外的复杂性,并通过与浴室照明灯开关相连的交流电源插座为它供电,则只有在浴室照明灯打开时才能打开它的电源,这会过滤掉许多不可靠的数据。

这非常容易安装,并且无需修改卷筒本身。您可以使用双面胶带将传感器粘贴到墙上,也可以将其放在卷筒下方朝上(或顶部朝下)的小架子上。

红外光束中断

在分配器的一侧,线轴上方安装一个小的IR LED。将红外光电传感器安装在分配器的另一侧。当传感器看到LED指示灯时,滚动声低。也可以用便宜的激光来完成(例如,一侧的现成激光指示器,另一侧的是光电传感器;但不要伤到眼睛!)

这也很容易安装(例如,将热胶粘到点胶机上),并且无需修改卷筒,尽管传感器的位置可能使它们在更换卷筒时容易损坏。


我也非常喜欢这里的干簧传感器和距离传感器(顺便说一句:10美元可为您提供出色的短距离距离传感器)选项。


1
红外光束是我的第一个想法。简单,易于实现,并且可能比其他一些解决方案更可靠,尽管可能不太有趣:)
凯文(Kevin)

呵呵,我同意。我认为至少从软件方面来说,颜色传感器会很有趣。收集数据并尝试提出一种不受自然光变化或其他错误触发影响的算法将是一个很好的挑战。
杰森C

1

您有几种选择:

注意:给出的链接只是第一个出现的链接。与其他网站相比,大多数网站价格昂贵。eBay立即购买对于这些商品中的大多数而言可能是相当便宜的。也检查其他地方,包括Sparkfun

  • 超声波Ping传感器。无论如何,这都不是理想的选择,但是它们易于使用。只需添加一个带有外壳的设备即可。这不是理想的,因为它不够准确,无法分辨出什么时候它是空的。可能有些过分/不足。重量会变硬,即使它发生变化。
  • 颜色传感器(首选,但价格更高)。您提到了这一点,这可能是最好的主意。它会为您提供红色,绿色和蓝色的模拟值(以Arduino读取)。[假设该颜色的含量越高,电压就越高。]白色应该是所有100%的颜色,而棕色应该是大多数颜色的30-40%。(更多内容稍后,如果您对此不了解,请跳过此部分)

我将更详细地介绍颜色传感器:

颜色在此处使用三个值读取:红色,绿色和蓝色。板上有三个传感器。一个过滤掉除红色,另一个蓝色和另一个绿色以外的所有内容。板上的传感器检测入射光量,然后将其转换为电压:介于5V(“ 100%红/绿/蓝”)或0V(“ 0%红/绿/蓝”)之间。然后可以将其转换为Arduino的数字(模拟引脚上为0-1024)。

照明问题:据 我所知,该传感器的LED一直亮着。您需要将其拆焊或遮盖,除非您需要发光的厕纸架。现在等等...您的传感器会认为在黑暗中它是棕色。没问题...这是您需要考虑的事情。

使用我正在使用的颜色选择器,然后选择一个棕色。在此图标的左侧,您可以控制“模拟亮度”。除此之外,还有RGB的十六进制形式。您将需要使用此计算器将其转换为标准

在棕色中,几乎不存在蓝色。我们应该忽略该颜色,除非您想要一种方法来仔细检查它是否为棕色。我会说,几乎任何褐色阴影都应始终低于40%。

从我可以看到的褐色示例阴影中,红色几乎是绿色的2倍。这个比例可能会有所不同,但你应该确认它是有些存在。对于白色/灰色/黑色,所有颜色均按1:1:1比例。您可以使用它来检测它是否黑暗或棕色。

int rPin = A0;      //Red Pin
int gPin = A1;      //Green Pin
int bPin = A2;      //Blue Pin
int ledPin = 13;    //I made this code with a LED, not a speaker
boolean testTwice = false;

void setup() {
  pinMode(ledPin, OUTPUT);  
}

void loop() {
  int rValue = analogRead(rPin);
  int gValue = analogRead(gPin);
  int bValue = analogRead(bPin);

  if (bPin < 256) { //If this is false, either something is in the way or it's white. Going to verify that something's not in the way...
    int minRed = rPin * 0.4; //A little under a half for padding... this values may need to be adjusted. Adjust this one and the one below farther apart for less sensitive.
    int maxRed = rPin * 0.6; //A little over a half for padding... this values may need to be adjusted.
    if (gPin < maxRed && gPin > minRed) { //Verifys that red between minRed and maxRed
      digitalWrite(ledPin, HIGH);
      delay(5000);
      digitalWrite(ledPin, LOW);
    }
  }
  delay(5000); // No need to waste power... you might want to add an actutal sleep function if on battery power
}

首先,它验证蓝色是否小于25%。然后,它验证红色和绿色相等...付出或接受20%。(例如,红色= 100绿色= 80,红色= 110绿色= 90,依此类推)。如果是这样,您几乎可以确定它是棕色的。然后,LED点亮五秒钟。

您可以根据需要将LED修改为蜂鸣器。如果蓝色在很多光线下或暗处工作,则可能需要调整if语句,以验证蓝色小于256/1024(1024 =模拟引脚的分辨率)。由于代码稍后会验证红色大约是绿色的2倍,因此任何白色阴影都不应通过if语句。您可能还需要调整minRed和并maxRed使其更远(如果未检测到棕色)或接近(如果在白色时检测到棕色)。没有颜色传感器,我真的无法测试此代码。


注意:这些可能有些烦躁。我建议改用LED,这样一来,由于卫生纸不足,整个房子不会在半夜醒来。另外,如果您完全阻碍了传感器...如果它不在浴室,我会推荐一台相机,并在每次拍得很低时用@jfpolipret的答案这样的簧片开关拍照。但是...(无双关语):)


如果您更改厕纸的颜色,颜色传感器的工作原理是否相同(即不必调整草图):-)?
jfpoilpret 2014年

@jfpoilpret我不知道您是否重复使用卫生纸,但是... :)我正在添加带有机制的代码,因此它会“相似”但不精确。
匿名企鹅

我认为厕纸足够柔软,可以吸收超声传感器
发出

@TheDoctor正如我指出的那样,这确实不是一个好主意。这是不准确的方法。
匿名企鹅2014年

1
@jfpoilpret如果添加了“校准”按钮,并在安装新卷材后在浴室灯点亮的情况下按下该按钮,则可以测量正确的颜色。
杰森C

1

听起来像一个很酷的项目,这是我的2克拉:

对准相机从侧面拍摄纸卷照片,这可能是真正找出剩余纸张的唯一方法。(编辑:您可以将树莓派与csi相机配合使用,并创建与张数相对应的输出信号,并将该信号馈送到arduino吗?!)

为了进行估算,计算滚动的旋转数可能也足够,但是您需要更好地固定滚动,以免滑动。或者,您可以像在自行车上一样使用磁铁,但随后需要将它们直接附着到卷筒上。

(编辑:另一个想法,通过测量盖子的角度来确保卷的厚度)


您好,欢迎来到Arduino Stack Exchange!您能说一下如何将其连接到Arduino吗?谢谢!另外,我不知道将相机放在浴室有什么好主意。:)
匿名企鹅

我喜欢你最后编辑的想法;仅需使用盖子上的一个开关就可以进一步简化该开关,当盖子达到一定角度时,该开关将关闭电路;这似乎比测量角度本身容易。
jfpoilpret 2014年

1

最好的选择是将旋转编码器连接到卷筒的侧面,并计算卷筒的旋转以确定已使用了多少。知道每卷的转数后,就可以设置触发通知的位置。将其附加到各种日志系统中,您将获得纸张使用以及厕所使用的历史数据。


我同意。人们似乎使这一问题变得过于复杂。您也可以通过在重新填充纸张时将TP从新的纸卷转移到传感器纸卷上来继续使用附有编码器的同一个纸卷(例如,将纸卷放在几个便宜的销钉上并包裹起来);还可以让您计算出该卷的旋转次数(重新填充时)。
杰森C

1

我说有一个重量传感器,并为卷筒的重量编程。当它跌落到一定重量以下时,开始闪烁LED或发出蜂鸣声。


0

这样做的另一种方式是,如果您只是想找乐子,那就是将金属棒放在卷筒内,将金属板放在外侧,然后测量电容,该电容应随剩余TP的变化而变化。纸的介电常数。

但这肯定会走“风景路线”。仍然,Arduino可以很容易地测量电容,甚至可能足够灵敏,并且不会妨碍使用,因为它只是卷筒后面的金属板和卷筒中的金属杆。您甚至可以改造现有的支架,而不会引起注意。

一种更简单的方法是将一根棍子连接到电位计的杆上,该杆由卷筒顶部支撑。TP少了,轴降低了,转动了底池。可能需要较长的杆才能获得杠杆作用,因为在不妨碍抽拉厕纸的功能的情况下,您不能用力按压。

正如AJMansfield所建议的,放射性实际上是用于测量工业环境中物体的厚度。如果您真的想发疯,也许您可​​以使用一种能量极低的放射源,例如一罐怪异的品尝盐替代品,该替代品比本底水平高一点点,并且在很长一段时间内平均水平(厕纸从一小时起就不会有太大变化)到一小时),因此这实际上可能是一种合理且昂贵的处理方式。

红外光束中断传感器也不错,如果将其正确放置,则可以阻挡更多的光线,从而使卷筒更加饱满,而不仅仅是发出信号或打开或关闭信号。

编辑:电容性方法的概念工作证明。只需要一根arduino和2条硬线。精确到八分之一英寸,并带有很多噪音。非常确定您可以可靠地获得至少1英寸的精度。测量时间约为一分钟。它对周围的环境非常敏感。您必须确保脚内的任何金属都停留在原处或使用屏蔽。

float difference;
unsigned long i;
unsigned long j;
unsigned int temp;
volatile unsigned char blah;

void setup()
{
  pinMode(5,OUTPUT);
  Serial.begin(9600);
}

void loop()
{
 difference =0;
 Serial.print("Measuring: ");

 for(i=0;i<100;i++)
   {
     for(j=0;j<5000;j++)
     {
       digitalWrite(5,LOW);

       temp=analogRead(A0);

       digitalWrite(5,HIGH);

       temp = analogRead(A0)-temp;
       if(temp<1024)
       {
         difference += temp;
       }

     }
     //Random delay every 5000 samples helps avoid problems with interference by staggering the samples to cancel aliasing.
     delay(random(1,50));
     Serial.print("|");

   }
   Serial.print("\n");
   Serial.print("Value: ");
   Serial.print(difference/500000);
   Serial.print("\nMeasurement Complete. Press Enter to begin another test.\n");

   while(!Serial.available())
   {
     blah = 20;
   }
   Serial.read();


}

http://pastebin.com/2W5y81AB


最好在答案中包含代码,而不是外部链接。如果以后链接断开,您的答案将仍然有用。
sachleen 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.