【Proteus仿真】【Arduino单片机】PWM电机调速

news2024/11/17 3:52:15

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用Proteus8仿真Arduino单片机控制器,使用蜂鸣器、按键、直流电机、L293D等。
主要功能:
系统运行后,K3键启动运行,K1控制运行方向,K2键控制运行速度,K4键停止。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)

*/

#include "public.h"
#include "beep.h"
#include "key.h"
#include "dc_motor.h"


//初始化运行一次
void setup() 
{
    beep_init();
    key_init();
    dc_motor_init();
}

//无限循环运行
void loop() 
{
    char key=0;
    char dir=0;//方向
    char run=0;//运行状态
    char speed=20;//速度

    while(1)
    {
        key=key_scan(0);//按键扫描
        if(key!=0)beep_alarm(100,1000);//提示音

        if(key==KEY3_PRESS)//启动
            run=1;     
        else if(key==KEY4_PRESS)//停止
            run=0;
        else if(key==KEY1_PRESS)//方向
        {
            dir=!dir;
        }
        else if(key==KEY2_PRESS)//速度
        {
            speed+=20;
            if(speed>100)speed=0;
        }

        if(run==1)//启动
        {
            dc_motor_ctrl(dir);
            dc_motor_speed_set(speed);
        }
        else//停止
        {
            dc_motor_stop();
        }
    }
}




三、实验现象

B站演示视频:https://space.bilibili.com/444388619

在这里插入图片描述

联系作者

视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1139143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】Docker部署Redis数据库

Docker部署Redis数据库 1. Redis介绍2. CentOS 7 安装 & Docker 配置3. 拉取Redis 镜像、创建容器3.1 配置Docker镜像源3.2 拉取Redis 镜像3.3 容器创建 1. Redis介绍 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用…

oracle,CLOB转XML内存不足,ORA-27163: out of memory ORA-06512: at “SYS.XMLTYPE“,

通过kettle采集数据时,表输入的组件,查询报错。 ORA-27163: out of memory ORA-06512: at “SYS.XMLTYPE”, line 272 ORA-06512: at line 1 通过 ALTER SESSION SET EVENTS ‘31156 trace name context forever, level 0x400’; 修改会话配置 或直接修改…

四、安装vmtools

1.介绍 1.vmtools安装后,可以让我们在windows下更好的管理vm虚拟机 2.可以设置windows和centos的共享文件 2.安装步骤 1.进入centos 2.点击vm菜单->install vmware tools 3.centos会出现一个vm安装包,xx.tar.gz 4.拷贝到/opt 5.使用解压命令tar&…

最新FL Studio水果21.2更新下载及功能爆料

​Image-Line 推出了重要的 FL Studio 21.2 更新,​引入了强大的新功能,让音乐制作人能够专注于任务和创意流程。 此最新更新引入了 FL Cloud,这是一项专门为 FL Studio 构建的新服务。FL Cloud 与 DAW 深度集成,通过与全球最大的…

私有云:【1】ESXI的安装

私有云:【1】ESXI的安装 1、使用VMware Workstation创建虚拟机2、启动配置虚拟机3、登录ESXI管理台 1、使用VMware Workstation创建虚拟机 新建虚拟机 选择典型安装 稍后安装操作系统 选择VMware ESXI 选择虚拟机安装路径 硬盘设置300G或者更多 自定义硬件 内存和处…

keepalived+haproxy实现代理地址高可用

准备前期 一台客户机 主备服务器 主:20.0.0.10 备:20.0.0.40 两个后端服务器 web1:20.0.0.41 web2:20.0.0.42 开始配置主备服务器 安装keepalived服务 yum -y install keepalived 切换到keepalived的配置文件下 cd /etc/keepalived 修改ke…

ubuntu server 安装失败

网络问题,默认的cn那个mirrors不行,得替换国内得 安装Ubuntu server时有一个选项是 Mirror address 可以设置为 https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ 即 清华大学开源软件镜像站 的ubuntu地址

Linux多线程服务端编程:使用muduo C++网络库 学习笔记 第四章 C++多线程系统编程精要

学习多线程编程面临的最大思维方式的转变有两点: 1.当前线程可能随时会被切换出去,或者说被抢占(preempt)了。 2.多线程程序中事件的发生顺序不再有全局统一的先后关系了。 当线程被切换回来继续执行下一条语句(指令…

Android APK瘦身实践:二次瘦身如何再减少大小?(4M—2.9M)

瘦身前 因为平时就考虑到大小的限制,所以很多工作已经做过了,如下列举现在的状态: 7.3M(Debug版本)和6.5M(Release版本) 开启minifyEnabled 开启shrinkResources 已经去除不相关的大型库 图片和…

python操作MySQL、SQL注入问题、视图、触发器、事务、存储过程、函数、流程控制、索引(重点)

python操作MySQL(重要) SQL的由来: MySQL本身就是一款C/S架构,有服务端、有客户端,自身带了有客户端:mysql.exe python这门语言成为了MySQL的客户端(对于一个服务端来说,客户端可以有很多) 操作步骤: …

搜维尔科技:Geomagic Touch X力反馈设备【开箱图真机测试】

将力反馈性能提升到一个新的水平,可提供更精确的定位输入和高保真力反馈输出。对于3D建模和设计、手术培训、虚拟装配等要求精确度较高的多种操作,TouchX是一个易于使用、经济实惠的选择。 Touch X 的功能 屡获殊荣的 Touch X 力反馈设备提供了经济实惠…

成集云 | 成集云-经销商返利系统集成金蝶云星辰 | 解决方案

方案介绍 成集云经销商返利系统通过线上平台来管理经销商返利活动,实现商品的销售、推广和返利的全过程管理。为企业解决了返利计算复杂、返利决策不清晰、返利发放不及时、无法跟踪经销商等多个难题。 金蝶云星辰是金蝶旗下的一款企业级SaaS管理云,其…

推荐一款适合科技行业的CRM系统

推荐您一款科技行业好用的CRM系统——Zoho CRM客户管理系统,旨在帮助企业管理客户数据、销售过程、营销活动以及服务支持,助力业务增长及数字化转型,实现“以客户为中心”的企业管理和运营模式。 近些年,随着政府鼓励政策的出台、…

Python字典-dict “ “ ---记一次查缺补漏“ “

文章目录 0x0 前言0x1 字典 (Dictionary)0x01 访问字典里的值0x02 修改字典0x03 删除字典元素0x04 判断字典是否包含指定key,用in或not in 运算符 0x2 字典键的特性0x010x2 0x3 字典内置函数&方法0x4 使用格式化字符串 0x0 前言 python没…

jmeter界面压测过程卡死解决思路

1、排查压测机的资源是否充足; 2、检查jmeter压测脚本,除聚合报告的所有组件关闭; 我在压测过程中出现频繁卡死,就是查看结果数和断言结果信息量过多导致: 3、直接用非gui界面形式,也就是脚本形式压测。

postgis ST_CoverageInvalidEdges使用说明

官方文档 函数说明 概要 geometry ST_CoverageInvalidEdges(geometry winset geom, float8 tolerance 0); 描述 一个窗口函数,用于检查窗口分区中的多边形是否形成有效的多边形覆盖范围。 它返回线性指示器,显示每个多边形中无效边(如果…

判断对象a的值是否小于对象boperator.lt()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断对象a的值 是否小于对象b operator.lt() 选择题 下列代码执行输出的结果是? import operator print("【执行】print(operator.lt(3, 5))") print(operator.lt(3, 5)) print(&qu…

傅里叶级数系数的完整详细算法

傅里叶级数系数的完整详细算法 一、三角函数相关公式和定积分 在分析傅里叶级数之前,一定要先熟悉三角函数的相关公式,以及三角函数的积分。 1、两角和公式: sin(αβ) sin(α) * cos(β) cos(α) * sin(β) sin(α-β) sin(α) * co…

域名系统 DNS

DNS 概述 域名系统 DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为 IP 地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”&#x…

【数字IC验证半科班历程:芯片概括_2023.10.20】

前言 选择行业需深入了解:行业的前景,是否适合……在知乎浏览n多帖子,千人千面,褒贬不一,只能黑人问号脸。且帖子虽说明学习路线,但甚至面对缩写名词,百度后仍是一知半解,不知确切内…