如何使用Arduino构建一个便携式饮用水自动售货机

发布时间:2023-06-06  

  如今,自动售货机非常受欢迎,因为它们易于使用、多用例且无需人工干预。它可以通过插入货币硬币来分发饮料、门票、零食等产品。自动售货机出现在公共和私人区域,如商场、市场、办公室等,用于各种应用。在这个项目中,我们将使用 Arduino 构建一个便携式饮用水自动售货机,可用于任何公共场所,如旅游场所,使用货币硬币分配饮用水或任何其他饮料。该自动售货机使用单个硬币接收器模块来接收货币硬币,并使用TRIAC和光电耦合器电路来分配水。


  建造饮用水自动售货机所需的组件:


  Arduino UNO

  硬币接收器模块

  BT136 可控硅

  MOC3021 光耦

  点阵穿孔板

  连接电线

  引领

  230V交流水泵

  管道和配件

  饮用水自动售货机工作

pYYBAGLOhzaAC7JyAALybod5Gk8748.png

  如上面的框图所示,硬币接收器模块充当输入设备,当它检测到插入其中的有效硬币时,它会向 Arduino 发出信号。Arduino 接收信号并向 Opto 隔离器发出数字命令,该隔离器触发 TRIAC 在特定持续时间内打开/关闭水泵。同样,连接一个 LED 以指示分配动作。

  硬币接收器模块工作

poYBAGLOhzKAM8HQAAIW74ukFvU413.png

  硬币接收器模块接收可适用于各种自动售货机的货币硬币。硬币接收器模块有多个类别,包括 单硬币接收器、类似类型硬币接收器、多硬币接收 器等。单硬币接收器专门设计用于仅接收特定硬币。类似类型的硬币接收器用于接收与硬币接收器放置的硬币相似的硬币。多硬币接受器可以用一台机器接受不同的硬币,并向微控制器输出不同的信号。在这个项目中,使用单个硬币接受器。

  硬币接收设备有一个内置的微控制器,它从设备内部的传感器获取数据并收集不同的硬币。使用这些数据,微控制器知道该硬币是否需要被接受或退回。使用位于顶部的按钮可以轻松对该设备进行编程。硬币接收器在输出引脚上为每个插入的硬币提供一个脉冲信号,通过计算脉冲我们知道已经插入了多少硬币。它还具有三个开关,我们使用它们来选择我们想要在输出上获得的信号类型。第一个开关有三个位置来选择脉冲长度。如图所示,第二个开关用于将信号设置为+5 V(NC)或0 V(NO)。使用第三个开关,可以选择设备的精度。

poYBAGLOhy6AbGoUAAE-GpA87Bk512.png

  硬币接收器模块的培训

  要针对特定硬币训练模块,请按照以下步骤操作:

  首先,按住顶部的按钮并按住 4-5 秒,直到红色 LED 亮起,然后松开。

poYBAGLOhyqAcEn2AAHrvpPtzr8720.png

  当红色 LED 亮起时,插入我们要为其编程的硬币。例如,如果我们想为 2 卢比硬币编程,那么我们在编程时将只插入 2 卢比硬币。

pYYBAGLOhyaARMmzAAI8ytn99Ig198.png

  将同一枚硬币插入设备 30 次,以训练硬币记忆。编程结束后,LED 将熄灭,设备即可使用。

pYYBAGLOhyKAaVJ8AAHFSmJyLls003.png

  TRIAC电路工作

  TRIAC 是一种三端交流开关,可由其栅极端的低能量信号触发。在 SCR 中,它仅在一个方向上导通,但在 TRIAC 的情况下,可以在两个方向上控制功率。此处 BT136 TRIAC 用于交流泵开关的开/关目的。

poYBAGLOhx2AAmAVAAFO2NHpi48571.png

  如上图所示,通过向 TRIAC 施加一个小的栅极脉冲信号以 90 度的触发角触发 TRIAC。时间“t1”是我们必须根据我们的应用要求给出的延迟时间。例如,在这种情况下,由于触发角为 90%,因此平均功率输出将减半。如果我们想要打开设备,我们需要将其完全打开,即 t1=0。

  光耦合器

  光耦也称为光隔离器。它用于保持两个电路(如直流和交流信号)之间的隔离。基本上,它由一个发射红外光的 LED 和一个检测红外光的光电传感器组成。这里 MOC3021 光耦合器用于从我们的微控制器信号控制交流泵,这是一个直流信号。

  饮水机电路图

pYYBAGLOhxmAQTMKAAIj6bPCxPg792.png

  TRIAC和光耦连接电路图

pYYBAGLOhxWAUijyAAGOqxhy0ps082.png

为自动售货机编程 Arduino

在这里,我们将对 Arduino 进行编程以检测硬币插入和硬币类型。成功检测后,它将打开泵以分配水。完整的代码在文档末尾给出。在这里,在下面的几行中,我们将解释代码的重要部分。


首先,定义硬件中使用的引脚,如下所示。数字引脚 2 用作输入中断引脚,数字引脚 6 和 12 分别用于 TRIAC 和 LED。

常量 int 硬币 = 2;

常量 int TRIAC = 6;

常量 int LED=12;

boolean Coin_insert = false;

整数计数=0;

 


接下来,在设置函数内部,将配置一个外部中断引脚来检测设备中的硬币插入。这里使用了一个名为attachInterrupt的函数,它将 Arduino 的数字引脚 2 配置为外部中断,当它在其引脚上检测到任何中断时,它将调用名为coinInterrupt的函数。


 


无效设置(){

  序列号.开始(9600);

  attachInterrupt(digitalPinToInterrupt(COIN), coinInterrupt, RISING);

  pinMode(TRIAC,输出);

  pinMode(LED,输出);

}

 


在Loop()内部,检查投币状态,如果检测到投币成功,则触发 TRIAC 特定持续时间以打开泵以分配水,完成后触发关闭。


 


无效循环(){

  如果(硬币插入){

     数字写入(LED,高);

     延迟(1000);

     数字写入(TRIAC,高);

     延迟(12000);

     数字写入(TRIAC,低);

     延迟(2000);

     硬币插入 = 假;

  }

  别的 {

     数字写入(LED,低);

     数字写入(TRIAC,低);

  }

}


当检测到硬件中断时调用函数coinInterrupt,即当硬币接收器检测到有效硬币时。


无效硬币中断(){

    硬币插入=真;

}


  组件组装和测试


  现在,在按照电路图连接组件并对 Arduino 进行编程之后,让我们构建一个类似于自动售货机的外壳,如下图所示。

pYYBAGLOhw6AGF1wAAHisARKEdI186.png

  将所有单元组装在一个外壳中后,设置如下所示:

pYYBAGLOhwmAYbnmAAJQ_Dc-pCk559.png

  产品的背面图如下所示。

poYBAGLOhwWAcrapAAVrPX753Ac717.png

  要测试Arduino 自动售货机,请打开电源并将玻璃放在水龙头内以收集水。现在将 2 卢比硬币放入接受器中。一旦它检测到硬币,绿色 LED 应该会发光并且应该开始出水。玻璃装满后,LED 和泵应关闭。

  这就是您如何构建饮用水自动售货机Arduino 和投币器模块的方法。如果您有任何问题或建议,您可以将它们放在评论部分或使用我们的论坛。

  代码

 常量 int 硬币 = 2;

常量 int TRIAC = 6;

常量 int LED=12;

boolean Coin_insert = false;

整数计数=0;

无效设置()

{

  序列号.开始(9600);

  attachInterrupt(digitalPinToInterrupt(COIN), coinInterrupt, RISING);

  pinMode(TRIAC,输出);

  pinMode(LED,输出);

}

 

无效循环()

{

  如果(硬币插入)

  {

     数字写入(LED,高);

     延迟(1000);

     数字写入(TRIAC,高);

     延迟(12000);

     数字写入(TRIAC,低);

     延迟(2000);

     硬币插入 = 假;

  }

  别的

  {

  数字写入(LED,低);

  数字写入(TRIAC,低);

  }

  }

 

无效硬币中断()

{

 硬币插入=真;

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    拿不准自己是否已经理解了”的人。本文引用地址: 第一个应该了解的要数“晶体管”了。“晶体管”在电子制作领域是非常常用的易用器件,尤其是在使用Arduino等微控制器控制LED和电机时,晶体......
    拿不准自己是否已经理解了”的人。本文引用地址: 第一个应该了解的要数“”了。“”在电子制作领域是非常常用的易用器件,尤其是在使用Arduino等微控制器控制LED和电机时,是不......
    Arduino IDE+STM32制作LED闪烁灯;  Arduino广为电子爱好者和工程师熟悉,但8位CPU和慢几拍的时钟并不适合深度开发。如果与STM32F103C8T6结合,一个......
    嵌入式开发了解到单片机,因为相对比较容易上手,学习的东西少。 也是从那个时候开始,解开了我对智能硬件到底是怎么做的这个疑问。 大概学了3个多月,把51开发板上的每个硬件都控制了一遍,并且基于开发板做了一个电子时钟的小项目......
    学习难度比较大,开发周期也长。 同样一个产品,实现相同功能,arduino做可能只需要几个小时,而用单片机则需要几天。 二、Arduino好还是单片机好? 很多人可能会说,Arduino这么爽,为什......
    调试正常进行而不耽误太多时间 焊接好排针,并在供电端加上0.1uF的滤波电容,降低高频供电干扰 这样我们的模块就制作完成了 arduino快速搭建工程 电路原理图 引脚对应关系: arduino uno 引脚4......
    )。 电路图和连接 16*2点阵LCD与STM32F103C8T6 STM32蓝色药丸板接口的电路图如下所示。它是使用弗里辛软件制作的。 如您所见,完整的连接是通过面包板进行的。我们需要一个FTDI板来......
    Gerber 的完整设计文件可以从下面的链接下载。   手工PCB:   为方便起见,我制作了我手工制作的 PCB 版本,如下所示。 用于交流相角控制的 Arduino 代码 一个简单的 PWM 生成......
    51学习笔记之关键词data、bdata、idata、pdata、xdata、code的含义;最近用51单片机做个小项目,编写程序时,出现如下错误 MAIN.C(284): error C249......
    STM32替换Arduino直通车;前言 众所周知,Arduino进行开发简单快捷,一个项目能很快的做好,而Arduino相比STM32,贵且性价比也很低,Arduino Uno可用......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>