本次为课程设计中一个分支的记录,很多同学在课程设计中购买现成的课程设计答案,他们的理由不同,但都主要集中在找不到资料,或者学不会,或者写不出来,刚好我也为毕业设计做准备可以记录一些在学习过程中遇到的有趣的内容。

目录

  • 一、软件版本
  • 二、选用硬件
  • 三、具体步骤
  • 四、遇到的问题并解决
  • 五、最终成果

一、软件版本

很多人认为软件版本不是最重要的内容会跳过,但是有时候可能正是软件版本的差异会引起很多问题。
本文所用到的软件和软件版本将会在这里记录:

软件名 版本
Proteus Proteus 8 Professional
Arduino IDE 这个没啥版本,去arduino.cc官网上下载就好了
Matlab Matlab 2019

二、选用硬件

本文没有制作实际硬件,但是在仿真中需要一些硬件的支持,再次也列一个表格,若有找不到的硬件,可以参考下文或者凭经验更换。

硬件 名称
arduino arduino mega2560 (其实用不到那么好的)
舵机 普通PWM数字舵机就行

三、具体步骤

第一步往往没有思路,按照我的喜欢会优先打开proteus画出需要的仿真图。很简单的先新建文件。
选择适合的模板。

不选择创建PCB

选择固件项目。

点击完成。

会有一个这样的界面。

关闭Source Code,毕竟用不到。

这里有一个快捷键,很简单,按住Shift,框选需要的内容,可以直接显示需要的部分~这里很重要,可以节约很多时间。

拿一个PWM舵机出来。

这个DEFAULT类似网络标号,拿出来用就好了。

电路图就是这样的。

记得给网络标号取个名字!!!
打开Arduino IDE,在工具里调整板子为mega2560,并编写程序。

#include<Servo.h>
Servo s1;
float ang;
void setup() {s1.attach(9);
}void loop() {s1.write(50);delay(100);

然后编译,编译就是点

这个图标。编译成功之后呢,要通过:项目-导出已编译的二进制文件,来导出hex。
最后到proteus里面吧hex文件写给你的arduino。
经过这一系列的操作发现,舵机可以转了,但是却不是需要的位置。

四、遇到的问题并解决

之前刚好用到过这个舵机,所以我在多次实验之下得出一个舵机在0-180度的经验公式。

简单说就是如果吧程序里的角度叫做虚拟角,把仿真里的设为实际角,那么虚拟角=3.715*实际角+16.37。
如果不想知道怎么来那就用就好啦,如果想知道怎么算的那么就往下看。
首先我在多次实验之后发现,发现实际角和虚拟角有一个比例关系,于是便取实际角0-180度中给个整数虚拟角来做统计,一共取了45个样本,大概方法就是让虚拟角等于0-45,然后记录输出的实际角,并把这45组一一对应的角度输入matlab,在应用cftool工具拟合一条曲线,具体怎么使用cftool的方法不要着急,以为你在matlab输入框里输入cftool之后,基本上就看得懂啦。

实际上呢我做了四种方法,有高斯、最小二乘、平滑曲线、多项式,反正上面那张图是多项式,具体原因也很功利,简单好写。
最后就能得到那个经验公式,但是我没有去尝试-90度~90度,所以有兴趣的朋友可以自己试一下。

五、最终成果

本来的目的是做一个stewart平台,所以直接将角度联系到长度,这样看起来很好看,反正都是仿真~

这是stewart平台平移的一张截屏,如果有人有兴趣的话也可以自己试试。也欢迎向我提问呀!

proteus仿真arduino控制舵机相关推荐

  1. proteus仿真arduino控制两位数码管

    前面我们用arduino控制一位数码管,知道了控制数码管的原理.这里我们增加了一位,其显示的原理基本一样.只不过本质上不是两位同时点亮,而是轮换点亮.下面是原理图: 我们来看看代码的实现: int P ...

  2. 西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写

    西电A测 | 基于Arduino uno的电子密码锁仿真系统 | 使用Proteus仿真 | Arduino IDE编写 | ATMEGA328P 电子密码锁系统 Arduino UNO Arduin ...

  3. Arduino 控制舵机

    Arduino 控制舵机 #include <Servo.h> Arduino自带的Servo函数及其语句,先来介绍一下舵机函数的几个常用语句吧. 1.attach(接口)--设定舵机的接 ...

  4. Proteus仿真arduino uno + OLED图片显示

    Proteus仿真arduino uno + OLED显示

  5. 用Proteus仿真Arduino UNO ADC模数转换

    用Proteus仿真Arduino UNO ADC模数转换 官方示例代码地址:https://docs.arduino.cc/built-in-examples/basics/AnalogReadSe ...

  6. proteus中仿真arduino控制L298实现电机正反转

    前面几篇博文,我们基本了解了几种在proteus中实现arduino仿真的方法(<proteus从开发板新建arduino仿真项目实例><Proteus Visual Designe ...

  7. arduino利用电位器仿真编码器控制舵机转动

    在没有编码表盘的情况下,我们可以利用电位器分压作用来得到的电压数值来控制舵机的偏转角度,电路连接图如下. 如果用block表示出来则如下图: 代码如下: #include <Servo.h> ...

  8. Arduino控制舵机详解(含代码)

    目        录 1. 舵机简介 2 硬件电路连线 3 项目:舵机来回转动 3.1  控制代码 3.2 仿真结果 4  项目2:光控舵机 4.1 硬件电路连线 4.2 控制代码 4.3 仿真结果 ...

  9. proteus仿真arduino中调用DHT11/22温湿度传感器

    一.驱动库的获取和测试 1.获取驱动库 首先,我们利用arduino的IDE获取温湿度传感器的驱动库,库管理器中搜索dht11即可. 如果发现有其他依赖的库需要安装,也一起安装吧! 2.测试驱动库 安 ...

最新文章

  1. PowerDesigner打开设计文件后提示failed to read the fileXXX的解决办法
  2. java 之 解释器模式(大话设计模式)
  3. 阿里再开源!基于JAVA的模块化开发框架JarsLink
  4. python生成日历_使用Python实现简易月历生成(2)
  5. 为什么说ES6的class是语法糖?
  6. 优秀的代码都是如何架构和分层的?
  7. Tor源码分析十 -- 连接和链路
  8. 基于SpringBoot实现在线抽奖系统
  9. Arcgis小技巧【3】——计算图斑的投影面积和椭球面积
  10. HttpServletRequest对象,请求行、请求头、请求体
  11. 小红书商品详情API接口(商品详情页面数据接口)
  12. 单应性矩阵H和相机姿态参数R和T关系
  13. 为什么D类音频功放可以免输出滤波器
  14. 初探 MVP(Model View Presenter) 设计模式
  15. STM32G070CBTx使用LL库原生I2C读取FM24C04D
  16. android 拼音搜索联系人分析与实现(支持多音字,支持T9搜索,支持Qwerty搜索)
  17. OCM exam guide - OCM认证指南
  18. mac os 卸载java_三种方法教你在苹果Mac OS X系统中卸载软件
  19. 记一次MySQL崩溃修复案例,再也不用删库跑路了
  20. 广东工业大学 Anyviewce C语言 习题九

热门文章

  1. odoo12:上传图片,默认显示图标
  2. redis集群出现No reachable node in cluster
  3. 神助攻or猪队友:靠AI“僚机”脱单到底有多难?
  4. TAC配置错误导致无法切换
  5. Nginx的proxy_pass及upstream的小型负载均衡
  6. 替换空格 ——《剑指offer》
  7. colsure php_PHP_PHP中Closure类的使用方法及详解,Closure,匿名函数,又称为Anonym - phpStudy...
  8. mlir toy 教程(1)
  9. 微信小程序IOS手机能正常访问但是安卓手机出现REQUEST FAILED无法访问服务器问题
  10. adb工具(通用的调试工具、debug工具)操作命令详解