Arduino UNO+L298驱动直流电机正反转+Proteus仿真

438 篇文章 1674 订阅 ¥19.90 ¥99.00
本文介绍了如何使用Arduino UNO和L298电机驱动模块来实现直流电机的正反转,并提供了详细的Proteus仿真步骤,包括接线图和代码实例,同时提供了两种将hex文件加载到Proteus进行仿真的方法。
摘要由CSDN通过智能技术生成

Arduino UNO + L298驱动直流电机正反转+Proteus仿真


  • Proteus仿真
    在这里插入图片描述
  • Proteus接线图
    在这里插入图片描述

实例代码

//任务:通过按钮控制电机启停和正反转,通过电位计调节电机转速。
int K1=5;  //把K1(正转)按钮连在数字端口5
int K2=6;  //把K2(反转)按钮连在数字端口6
int K3=7;  //把K3(停止)按钮连在数字端口7
int potpin = A3; // 把电位计连在模拟端口A3
int A=2;  //数字端口2、3控制电机启停和转向
int B=3;  
int PWMpin = 9; // 数字端口9输出PWM信号,控制电机转速
//初始化 
void setup() 
{
  pinMode(K1,INPUT);//把数字端口5、6、7设置输入模式
  pinMode(K2,INPUT);
  pinMode(K2,INPUT);
  pinMode(A,OUTPUT);//把数字端口2、3设置输入模式
  pinMode(B,OUTPUT);
}
//主程序 
void loop() 
{
  //如果按下K1(正转)按钮
 if(digitalRead(K1)==LOW)
 {
  //电机正转
  digitalWrite(A,HIGH);
  digitalWrite(B,LOW);
 }
 //如果按下K2(反转)按钮
 if(digitalRead(K2)==LOW)
 {
  //电机反转
  digitalWrite(A,LOW);
  digitalWrite(B,HIGH);
 }
 //如果按下K3(停止)按钮
 if(digitalRead(K3)==LOW)
 {
  //电机停止
  digitalWrite(A,LOW);
  digitalWrite(B,LOW);
 }
 int sensorValue = analogRead(potpin); //读取电位计采样值   
 sensorValue = sensorValue/4; // 采样值 0-1024 转换为 0-255
 analogWrite(PWMpin, sensorValue);//把处理后的转换值以PWM信号形式输出
 delay(20);//延时
}

添加hex文件保存路径或者选择导出二进制文件

  • 方式一:添加hex文件保存路径
    在这里插入图片描述
  • 方式二:选择导出二进制文件
    在这里插入图片描述
  • 选择带驱动的hex文件加载到Proteus里面
    在这里插入图片描述
  • Proteus加载带BootLoader的Hex文件。
    在这里插入图片描述

实例代码和仿真资源

链接:https://pan.baidu.com/s/1Omq8WtfyibIYoeiEGlQCDQ 
提取码:rem4
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值