Arduino洗碗机

news/2024/11/17 5:33:10/

一、Arduino

Arduino是一个开放源码电子原型平台,拥有灵活、易用的硬件和软件。Arduino专为设计师,工艺美术人员,业余爱好者,以及对开发互动装置或互动式开发环境感兴趣的人而设的。

Arduino可以接收来自各种传感器的输入信号从而检测出运行环境,并通过控制光源,电机以及其他驱动器来影响其周围环境。板上的微控制器编程使用Arduino编程语言(基于Wiring)和Arduino开发环境(以Processing为基础)。Arduino可以独立运行,也可以与计算机上运行的软件(例如,Flash,Processing,MaxMSP)进行通信。Arduino开发 IDE 接口基于开放源代码,可以让您免费下载使用开发出更多令人惊艳的互动作品。
accc

二、超声波模块——HC-SR04

超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

1、超声波测距原理:时间差测距法

声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s,即:s=340m/s× t / 2

2、工作原理:

    1)通过某个引脚(IO)给至少10us的高电平信号触发测距;2)触发测距以后模块自动发送8个40khz的方波,自动检测是否有信号返回;3)如果有信号返回,通过IO输出一高电平,高电平持续时间就是超声波从发射到返回的时间4)测试距离=(高电平时间*声速(340M/S))/2;

VCC 是超声波距离传感器的电源,连接Arduino上的5V引脚。
Trig (Trigger) 引脚用于触发超声波脉冲——A0
Echo 回声当接收到反射信号时,引脚产生一个脉冲。脉冲的长度与检测发射信号所需的时间成正比——A1
GND 应该连接到Arduino的GND

代码示例:

int TrgPin = A0;
int EcoPin = A1;
float dist;
void setup()
{   
Serial.begin(9600);//设置TrgPin为输出状态
pinMode(TrgPin, OUTPUT);// 设置EcoPin为输入状态
pinMode(EcoPin, INPUT);
}
void loop()
{
digitalWrite(TrgPin, LOW);
delayMicroseconds(8);
digitalWrite(TrgPin, HIGH);
delayMicroseconds(10);// 维持10毫秒高电平用来产生一个脉冲
digitalWrite(TrgPin, LOW);
dist = pulseIn(EcoPin, HIGH) / 58.00;// 读取脉冲的宽度并换算成距离
Serial.print("Distance:");
Serial.print(dist);
Serial.println("cm");
delay(300);
}

三、舵机——SG90舵机

舵机是一种位置(角度)伺服的驱动器。舵机只是一种通俗的叫法,其实质是一个伺服马达。
其中SG90为模拟舵机,其需要不断的发送相应角度的PWM信号,才能旋转到指定位置。例如:我现在让它旋转90度,我就需要在一个时间内不断的发送90度的PWM信号,舵机转动到指定位置就会停止。
舵机的转动角度大多为0~180°,其内部结构包括电机,控制电路和机械结构三部分。电机有三根线引出,分别接VCC、GNG和信号线。

主要有两种引出线的格式:
棕、红、橙(棕色连接GND、红色连接VCC、橙色连接信号);
红、黑、黄(红色连接VCC、黑色连接GND、黄色连接信号)。

工作原理

舵机的控制信号为周期是20ms 的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0—180度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。舵机内部有一个基准电路,产生周期20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。

控制电路板接受来自信号线相应的PWM控制信号,进而控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。
舵机的控制需要MCU产生一个周期为20ms的脉冲信号,以0.5ms到2.5ms的高电平来控制舵机转动的角度。
在这里插入图片描述

代码示例:

#include <Servo.h>  //加入含有舵机控制库的头文件#define PIN_SERVO 9  //舵机信号控制引脚
Servo myservo;  
int pos=0;void setup()  
{  myservo.attach(PIN_SERVO);  //舵机初始化
}  void loop()  //0到180,再从180到0 
{  for (pos=0;pos<=180;pos+=1){myservo.write(pos);delay(10);}for (pos=180;pos<=0;pos-=1){myservo.write(pos);delay(10);}//myservo.write(90);  //PWM输出
} 

四、水泵&继电器

说白了就是一个继电器控制的电机,电路导通则开始工作

继电器原理:弱电控制强电

accc

NC:常闭端 NO:常开端 COM:公共端
VCC:电源正极 GND:电源负极 IN:信号输入端

五、语音播报——SYN6288

在这里插入图片描述
核心板接口为:BUSY GND TXD RXD VCC BIN0 NP0,其中 VCC GND 是用来供电,电压支持 3-5V,推荐使用5V;BUSY 为忙标志,高电平为忙(处于播放中),低电平为空闲;TXD RXD 为串口通信,其中 TXD 为发送端,接外设接收端;BIN0 BP0为喇叭接口,可以直接与 8R 0.5W 喇叭连接。记住喇叭必须是8R 0.5W。
官方给的示例:(播报内容被我改了)

/*
1.项目名称:Arduino综合测试板SYN6288语音合成模块测试程序
2.配套APP:无
3.主要原理:具体参考SYN6288数据手册,通过串口发送语音对应的数据
4.配套上位机:无
5.项目组成:SYN6288语音合成模块、Arduino综合测试板
6.项目功能:将文字转换为语音朗读出来。具体操作请看演示视频*///此处发送内容为:[m4][v16][t5]欢迎使用SYN6288语音合成模块
//v[0~16]:0背景音乐为静音,16背景音乐音量最大
//m[0~16]:0朗读音量为静音,16朗读音量最大
//t[0~5]:0朗读语速最慢,5朗读语速最快
//其他不常用功能请参考数据手册
void xiwan(){      //语音播报unsigned char i = 0;unsigned char head[20];head[0] = 0xFD;  //FD 00 22 01 01 0D 0Ahead[1] = 0x00;head[2] = 0x0B;head[3] = 0x01;head[4] = 0x01;head[5] = 0xBF;head[6] = 0xAA; // C4 E3 BA C3 20 CE D2 CA C7 C8 AB head[7] = 0xCA;head[8] = 0xBC;head[9] = 0xCF;head[10] = 0xB4;head[11] = 0xCD;head[12] = 0xEB;head[13] = 0xC8;for(i=0; i<43; i++){Serial.write(head[i]);}
}void setup() {Serial.begin(9600);
}void loop() {xiwan();delay(2000);
}

全部代码如下:

#include <Servo.h>
//水泵+————继电器常开  -————地
//继电器公共端————正极
//各模块与arduino共地int relayPin = 13;  //继电器引脚负也接到单片机上
int TrgPin = A0;    //超声波引脚
int EcoPin = A1;    //超声波引脚Servo myservo;  //定义Servo对象来控制舵机
int pos = 0;    //角度存储变量
float dist;     //距离void xiwan() {  //语音播报--开始洗碗unsigned char i = 0;unsigned char head[20];head[0] = 0xFD;head[1] = 0x00;head[2] = 0x0B;head[3] = 0x01;head[4] = 0x01;head[5] = 0xBF;head[6] = 0xAA;head[7] = 0xCA;head[8] = 0xBC;head[9] = 0xCF;head[10] = 0xB4;head[11] = 0xCD;head[12] = 0xEB;head[13] = 0xC8;for (i = 0; i < 43; i++) {Serial.write(head[i]);}
}void end() {  //语音播报--洗碗完成unsigned char s = 0;unsigned char head1[20];head1[0] = 0xFD;head1[1] = 0x00;head1[2] = 0x0B;head1[3] = 0x01;head1[4] = 0x01;head1[5] = 0xCF;head1[6] = 0xB4;head1[7] = 0xCD;head1[8] = 0xEB;head1[9] = 0xCD;head1[10] = 0xEA;head1[11] = 0xB3;head1[12] = 0xC9;head1[13] = 0xF6;for (s = 0; s < 53; s++) {Serial.write(head1[s]);}
}void setup() {myservo.attach(9, 500, 2500);  //修正脉冲宽度pinMode(TrgPin, OUTPUT);       //设置TrgPin为输出状态pinMode(EcoPin, INPUT);        // 设置EcoPin为输入状态pinMode(relayPin, OUTPUT);     //设置引脚13为输出接口Serial.begin(9600);            //设置波特率为9600,这里要跟软件设置相一致。当接入特定设备时,我们也要跟其他设备的波特率达到一致。digitalWrite(relayPin, HIGH);  //防止一上电继电器就工作
}void loop() {digitalWrite(TrgPin, LOW);delayMicroseconds(8);digitalWrite(TrgPin, HIGH);delayMicroseconds(10);  // 维持10毫秒高电平用来产生一个脉冲digitalWrite(TrgPin, LOW);dist = pulseIn(EcoPin, HIGH) / 58.00;  // 读取脉冲的宽度并换算成距离if (dist <= 6 && dist > 1)  // 距离小等于6cm{digitalWrite(relayPin, LOW);  //水泵开始工作xiwan();                      //语音播报delay(2000);                  //等待语音播报完成for (pos = 0; pos <= 180; pos++) {  // 0°到180°myservo.write(pos);               // 舵机角度写入delay(5);                         // 等待转动到指定角度}for (pos = 180; pos >= 0; pos--) {  // 从180°到0°myservo.write(pos);               // 舵机角度写入delay(5);                         // 等待转动到指定角度}}else {digitalWrite(relayPin, HIGH);  //水泵停止工作end();                         //语音播报delay(2000);                   // 等待播报}
}

http://www.ppmy.cn/news/164280.html

相关文章

洗碗机浑度检测

洗碗机浑浊度检测传感器 一.浑浊度含义 浑浊度是水体物理性状指标之一。它表征水中悬浮物质等阻碍光线透过的程度。一般来说,水中的不溶解物质越多,浑浊度也越高。浑浊度是由于水中存在颗粒物质如黏土、污泥、胶体颗粒、浮游生物及其他微生物而形成,用以表示水的清澈或浑浊…

基于单片机的洗碗机控制器

设计简介&#xff1a; 本设计是基于单片机的洗碗机控制器&#xff0c;主要实现以下功能&#xff1a; LCD1602显示温度、温度最大值以及状态按键设置温度最大值洗碗过程&#xff1a;进水-->加热-->排水-->冲洗-->烘干-->结束在洗碗过程中可以通过按键暂停、开始…

基于plc的自动洗碗机的设计(西门子)

目 录 摘 要 I Abstract II 1绪论 1 1.1全自动洗碗机的发展 1 1.2全自动洗碗机概述 2 1.2.1 全自动洗碗机的分类 2 1.2.2 全自动洗碗机的基本结构 3 1.2.3 全自动洗碗机的工作原理 4 1.3研究主要内容 4 2 全自动洗碗机机械设计 6 2.1 整体方案设计 6 2.2 各重要部件设计 6 2.2.…

智能语音信息处理团队14篇论文被语音技术顶会Interspeech 2023接收

近日&#xff0c;Interspeech 2023会议发出了审稿结果通知&#xff0c;语音及语言信息处理国家工程研究中心智能语音信息处理团队共14篇论文被会议接收&#xff0c;论文方向涵盖语音识别、语音合成、话者识别、语音增强、情感识别、声音事件检测等&#xff0c;各接收论文简介见…

表格软件有哪些?热门表格软件推荐

作为报表开发人员&#xff0c;我们经常需要使用各种表格软件来处理数据并生成清晰、易读的报表。在市面上&#xff0c;有许多不同类型的表格软件可供选择。下面我将列举7款热门的表格软件&#xff0c;并详细介绍其中一款优秀的软件—VeryReport。 编辑搜图 请点击输入图片描述…

主题包网址(Theme)

idea主题网址&#xff1a; http://www.riaway.com/ http://color-themes.com/?viewindex http://color-themes.com/?viewindex

壁纸 - 精选海量高清图片与桌面背景

特色功能介绍&#xff1a; 1、海量的高清精美壁纸 2、每日更新&#xff0c;让您紧跟潮流壁纸的步伐 3、提供数十个类别和数百个主题专辑以供筛选 4、左右划屏快速切换预览&#xff0c;享受全屏无死角视觉盛宴 5、独家提供壁纸缩放浏览功能&#xff0c;让您全面掌控壁纸的每一处…

壁纸 - 多达数万张高清壁纸,几百个主题专辑,每日更新

特色功能介绍&#xff1a; 1、海量的高清精美壁纸 2、每日更新&#xff0c;让您紧跟潮流壁纸的步伐 3、提供数十个类别和数百个主题专辑以供筛选 4、左右划屏快速切换预览&#xff0c;享受全屏无死角视觉盛宴 5、独家提供壁纸缩放功能&#xff0c;让您全面掌控壁纸的每一处细节…