💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
**【整理与体验】 一克拉** * * * * * **案例1:超声波测距程序及调试** 步骤: 1接板(如何中接?要练习) 2找代码(如何找?百度或arduino中国在线等) 3定uno板定端口(如何做?打开软件arduino在工具菜单下) 4复制代码到arduino中烧写上传 5测距:(arduino软件右上角有串口监视器,打开就可看到数据) * * * * * * * * * * //超声波测距程序及调试 const int TrigPin = 2; const int EchoPin = 3; float cm; void setup() { Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop() { //发一个10ms的高脉冲去触发TrigPin digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米 cm = (int(cm * 100.0)) / 100.0; //保留两位小数 Serial.print(cm); Serial.print("cm"); Serial.println(); delay(1000); } ### 【说 明】 1、看测试。烧载完成后-打开串口窗口-查看电路正确的接线,模块与着被测物体对着,结果可以看到上图所示的测距距离。 2、重要代码。 pulseIn(EchoPin, HIGH), 此函数是计算EchoPin的高电平时间,先将引脚拉高,开始计时,直到该引脚变为低电平为止,单位为ms,如果超出还没读取到的话,将返回0. cm = pulseIn(EchoPin, HIGH) / 58.0;可能很多人会问为什么要除以58.0呢,声速是340m/s换算一下就是函数返回的值是ms,1s=1000ms,cm=t/1000*34/2=0.017*t=t/58.8, 所以会有除以58.0. 3、声音要是在真空是什么情况?原来真空下声音是不能传播的,在不同温度和压强下的声速是不一样的。 ----------------------------------------------------------------- * * * * * #### **案例2:Arduino实验之超声测距+【LCD1602屏显示】** * * * * * 步骤: 1接板(如何中接?认识UNO板及传感器,要练习) 2找代码(如何找?百度或arduino中国在线等) 3定uno板定端口(如何做?打开软件arduino在工具菜单下) 4复制代码到arduino中 5屏显: 接-板上接LED显示屏(正、负、scl、sda角) 找-找型号找库,调库代码放在setup前,本程序加了3句,调库 setup中加上2句话,Loop中加上5句 6烧写上传 7测距:(arduino软件右上角有串口监视器,打开就可看到数据) * * * * * #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C mylcd(0x27,16,2); //头三句调库 连屏 const int TrigPin = 2; //发出信号脚 const int EchoPin = 3; //接收信号脚 float cm; //单位 void setup() { mylcd.init(); mylcd.backlight(); //共2句 定屏属性 Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop() { //发一个10ms的高脉冲去触发TrigPin digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米 cm = (int(cm * 100.0)) / 100.0; //保留两位小数 Serial.print(cm); Serial.print("cm"); Serial.println(); mylcd.setCursor(0, 0); //光标从这里开始 mylcd.print(cm); mylcd.setCursor(0, 1); //换行后显示距离 mylcd.print("cm"); mylcd.clear(); //清屏 共5句 开屏-显示-清屏 delay(1000); } * * * * * * * * * * **案例3:超声波测距程序及调试,+【用LCD1602屏显示+报警】** * * * * * 步骤: 1接板(如何中接?认识UNO板及传感器,要练习) 2找代码(如何找?百度或arduino中国在线等) 3定uno板定端口(如何做?打开软件arduino在工具菜单下) 4复制代码到arduino中 5屏显: 接-板上接LED显示屏(正、负、scl、sda角) 找-找型号找库,调库代码放在setup前,本程序加了3句,调库 setup中加上2句话,Loop中加上5句 6米斯奇:加逻辑,复制到arduino中修改 7烧写上传 8测距:(arduino软件右上角有串口监视器,打开就可看到数据) * * * * * //超声波测距程序及调试,【用LCD1602屏显示+报警】 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C mylcd(0x27,16,2); const int TrigPin = 2; const int EchoPin = 3; float cm; void setup() { pinMode(11, OUTPUT); //D11口设为报警口 mylcd.init(); mylcd.backlight(); Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop() { //发一个10ms的高脉冲去触发TrigPin digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米 cm = (int(cm * 100.0)) / 100.0; //保留两位小数 Serial.print(cm); Serial.print("cm"); Serial.println(); if (cm >= 30.00) { //大于30厘米就报警 digitalWrite(11,HIGH); } else { digitalWrite(11,LOW); } mylcd.setCursor(0, 0); mylcd.print(cm); mylcd.setCursor(0, 1); mylcd.print("cm"); delay(1000); mylcd.clear(); } * * * * * * * * * * **案例4:超声波测距程序及调试,【用LCD1602屏显示+区块报警+Mixly助手】** * * * * * 步骤: 1接板(如何中接?接泡沫板、接超声波、接LED屏、接蓝牙注意收发要反着接) 2定uno板.定端口(如何做?打开软件arduino在工具菜单下) 3找-找型号找库,调库代码放在setup前,本程序加了3句,调库 setup中加上2句话,Loop中加上5句 4复制下面代码(复制到arduinoIDE中) 5加逻辑,米斯奇中做并把代码复制到arduino中修改 6烧写上传,先用右上角端口监视器看一下 7测距:(打开就可看到数据) 8**控制手机**。手机appinventor:先查看蓝牙是否接到板,接好后,在App中编程,把组件全联起来。如何修改蓝牙名称? * * * * * #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C mylcd(0x27,16,2); const int TrigPin = 2; const int EchoPin = 3; float cm; void setup() { pinMode(11, OUTPUT); //D11口设为报警口 mylcd.init(); mylcd.backlight(); Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop() { //发一个10ms的高脉冲去触发TrigPin digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); //下面两句是关键函数 cm = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米 cm = (int(cm * 100.0)) / 100.0; //保留两位小数 if (cm> 50) { Serial.print(cm); Serial.print("安全"); //串口输出 中英文都可以 Serial.println(); mylcd.setCursor(0, 0); mylcd.print(cm); mylcd.setCursor(0, 1); mylcd.print("Security"); //LED屏显只认英文 delay(2000); mylcd.clear(); } if (cm < 50 && cm > 30) { Serial.print(cm); Serial.print("正常"); Serial.println(); mylcd.setCursor(0, 0); mylcd.print(cm); mylcd.setCursor(0, 1); mylcd.print("Normal"); delay(2000); mylcd.clear(); } if (cm < 30) { Serial.print(cm); Serial.print("危险"); Serial.println(); mylcd.setCursor(0, 0); mylcd.print(cm); mylcd.setCursor(0, 1); mylcd.print("Danger"); delay(2000); mylcd.clear(); } } * * * * * * * * * * **案例5:超声波测距程序及调试 【用LCD1602屏显示+区块报警(Mixly助手)+控制手机】** 步骤: 1接板(如何中接?接泡沫板、接超声波、接LED屏、接蓝牙注意收发要反着接) 2定uno板.定端口(如何做?打开软件arduino在工具菜单下) 3找-找型号找库,调库代码放在setup前,本程序加了3句,调库 setup中加上2句话,Loop中加上5句 4复制下面代码(复制到arduinoIDE中) 5加逻辑,米斯奇中做并把代码复制到arduino中修改 6烧写上传,先用右上角端口监视器看一下 7测距:(打开就可看到数据) 8**控制手机**。手机appinventor:先查看蓝牙是否接到板,接好后,在App中编程,把组件全联起来。 **如何修改蓝牙名称?** * * * * * #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C mylcd(0x27,16,2); const int TrigPin = 2; const int EchoPin = 3; float cm; void setup() { pinMode(11, OUTPUT); //D11口设为报警口 mylcd.init(); mylcd.backlight(); Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } void loop() { //发一个10ms的高脉冲去触发TrigPin digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); //下面两句是关键函数 cm = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米 cm = (int(cm * 100.0)) / 100.0; //保留两位小数 if (cm> 50) { Serial.print(cm); Serial.print("安全"); //串口输出 中英文都可以 Serial.println(); mylcd.setCursor(0, 0); mylcd.print(cm); mylcd.setCursor(0, 1); mylcd.print("Security"); //LED屏显只认英文 delay(2000); mylcd.clear(); } if (cm < 50 && cm > 30) { Serial.print(cm); Serial.print("正常"); Serial.println(); mylcd.setCursor(0, 0); mylcd.print(cm); mylcd.setCursor(0, 1); mylcd.print("Normal"); delay(2000); mylcd.clear(); } if (cm < 30) { Serial.print(cm); Serial.print("危险"); Serial.println(); mylcd.setCursor(0, 0); mylcd.print(cm); mylcd.setCursor(0, 1); mylcd.print("Danger"); delay(2000); mylcd.clear(); } } * * * * * ### 控制手机 1、加蓝牙。 把蓝牙接到Uno板上,注意收发反接TX/RX脚 2、手机上装千月串口(事先就装好) 先打开手机蓝牙功能,再打开千月串口软件,选择蓝牙并建立通迅。 下载地址: (1)千月蓝牙管理http://dl.pconline.com.cn/download/1026564.html (2)千月无线手机版http://a.xiazaiba.com/app/26599.html (3)千月官网-畅享无线http://www.bluesoleil.com.cn/ (4)手机应用管理:输入千月串口或蓝牙串口助手下载 作用:进行蓝牙串口通迅测试,连接单片机与电脑和手机的通迅模板。一是帮助搜索蓝牙设备,二是接收并显示数据,三是设置ASCII与HEX的输入输出模式。 3、手机上安装AI伴侣(事先就装好) 手机版AI下载:我的云盘https://pan.baidu.com/s/1nwXvrlR 作用:测试环节。当App做好后,就要对它进行测试。 ### 特别提醒: 桌面版AI伴侣,利于不带手机的教学测试(安装这类软件时都要先关闭退出卫士杀毒软件类)使用这款AI伴侣的前提条件是:电脑必须具备硬件加速功能(支持WebGL) 下载地址:http://blog.sina.com.cn/s/blog_62218b990102wu1m.html 我的云盘: win10 x64 https://pan.baidu.com/s/1pNoShWv win7 x64 https://pan.baidu.com/s/1kWx755P win7 x32 https://pan.baidu.com/s/1c31jAQs winxp https://pan.baidu.com/s/1c2TZ8QW **4、手机App。**(AppInventor 此软件必须在根目录中,且为英文名) **第一步:组件及布局** ![](https://box.kancloud.cn/1dcb72cc8bfda1b2e08b54891e97bc62_1708x1337.png) **第二步:编程部分 组件逻辑联系** ![](https://box.kancloud.cn/937e8be6bf754ebf31c04562b556b36e_2690x1335.png) **第三步:**先在开发环境中点击菜单“连接->AI伴侣”,出现二维码。 **第四步:**打开手机蓝牙-打开手机千月串口对接测试蓝牙-打开AI伴侣扫描二维码,之后:用编码进行连接,如下图, ![](https://box.kancloud.cn/68c98294436a650ec27a5e8c7004f582_363x676.png) ![](https://box.kancloud.cn/c79c4e4ad3392465c6cbb956d0ef18d1_690x495.jpg) 源文件下载(我的云盘):https://pan.baidu.com/s/1ggShRBd * * * * * * * * * * ## 学习小结: ①做手机app,版面可以设科学点美观点,虽然并不第一重要。 ②apk程序文件如何去掉风险提示?因为程序没有通过认证去不掉。 ③手机程序(屏幕程序)与手机控物程序(手机与物联)不同。 **手机程序:** 方法一:软件AppInventor,AI伴侣,蓝牙串口助手(千月串口)等 方法二:在线app **手机控物程序:** 软件 手机程序app inventor,手机安装(AI伴侣,千月串品,讯飞语音+),arduino+米斯奇,S4A,各种传感器等 ①先把实物传感器按s4a软件要求接好。如 把蓝牙和arduino板接好。(装配成功) ②调试一下,把uno板接上电脑,并在电脑上打开软件arduino,写入(烧录)相关代码调试。 代码从哪来?如何找到? 一是会编,二是会调用借用。一般不必自己编,已经有的代码和库文件要会调用。 如何证明烧写成功?用arduinoIDE自带的串口助手(在arduino右上角),选好接的串口号com,波特率?输入几个字符,发送一下,看显示。(电脑与板卡通信成功) ③千月串口app,arduino的蓝牙管理软件,在手机上安装,打开手机蓝牙功能,并打开千月串口,找蓝牙设备。 发送字符,看返回值,测试一下。(手机与板卡通信成功) ④逻辑代码,代码在米斯奇里做好,复制粘贴到arduino,反复修改调试,验证、上传,直到成功。 ⑤编手机遥控程序 软件app inventor,注意先建项目,查看连接端口,编好后,下载到本地,并传送到手机安装测试 、 * * * * * * * * * * ### 总结: 电脑控物--- 电脑与单片机 。 如各种传感器 手机控物---手机通过蓝牙或WIFI,联系控物。如 钓鱼船 单片机控手机(电脑)---单片机通过蓝牙等通迅组件,通过在手机app建立联系,控制手机。如 超声波传感器的停车安全距离提示