原创 基于Arduino和proteus的直流电机驱动仿真

2010-8-4 17:28 5054 7 7 分类: MCU/ 嵌入式

按下正转按钮,电机正转,正转指示灯亮。按下反转按钮,电机反转,反转指示灯亮。按下停止按钮,电机停。


141b3a26-d8c3-47b4-9feb-2d35fa8b2807.jpg


Aduino程序如下:


int Foreward_key=2;//正转按钮
int Reverse_key=3;//反转按钮
int Stop_key=4;//停止按钮
int Foreward_led=5;//正转指示灯
int Reverse_led=6;//反转指示灯
int Stop_led=7;//停止指示灯
int pinI1=8;//定义电机正转接口
int pinI2=9;//定义电机反转接口
int speedpin=11;//定义EA(PWM调速)接口
void setup()
{
  pinMode(Foreward_key,INPUT);
  pinMode(Reverse_key,INPUT);
  pinMode(Stop_key,INPUT);
  pinMode(Foreward_led,OUTPUT);
  pinMode(Reverse_led,OUTPUT);
  pinMode(Stop_led,OUTPUT);
  pinMode(pinI1,OUTPUT);//定义该接口为输出接口
  pinMode(pinI2,OUTPUT);
  pinMode(speedpin,OUTPUT);
  digitalWrite(Foreward_led,HIGH);
  digitalWrite(Reverse_led,HIGH);
  digitalWrite(Stop_led,HIGH);
}
void loop()
{
  if(digitalRead(Foreward_key)==HIGH)
  {
    while(digitalRead(Foreward_key)==HIGH);
    digitalWrite(Foreward_led,LOW);
    digitalWrite(Reverse_led,HIGH);
    digitalWrite(Stop_led,HIGH);
    digitalWrite(pinI1,LOW);//使直流电机顺时针转
    digitalWrite(pinI2,HIGH);
    analogWrite(speedpin,100);
  }
  if(digitalRead(Reverse_key)==HIGH)
  {
    while(digitalRead(Reverse_key)==HIGH);
    digitalWrite(Foreward_led,HIGH);
    digitalWrite(Reverse_led,LOW);
    digitalWrite(Stop_led,HIGH);
    digitalWrite(pinI1,HIGH);//使直流电机逆时针转
    digitalWrite(pinI2,LOW);
    analogWrite(speedpin,100);
  }
  if(digitalRead(Stop_key)==HIGH)
  {
    while(digitalRead(Stop_key)==HIGH);
    digitalWrite(Foreward_led,HIGH);
    digitalWrite(Reverse_led,HIGH);
    digitalWrite(Stop_led,LOW);
    digitalWrite(pinI1,LOW);//使直流电机逆时针转
    digitalWrite(pinI2,LOW);
    analogWrite(speedpin,100);
  }
}


 例子RAR压缩包可下载



如果看不懂Arduino里的函数不要紧,请看


Arduino公司函数介绍页面


http://arduino.cc/en/Reference/HomePage


我的Arduino智能小车套件从淘宝买回来了,所以Arduino和proteus结合的例子就没时间写了。


我在采用Arduino编程和Proteus仿真时,发现了或者遇到了两个问题。


1、Arduino里面的serial串行通信函数,在proteus仿真不了,所以不能在纯软件环境下,做上下位机串行通信实验了。


2、Arduino里面的delay函数,在proteus延时时间比delay函数设定的时间长,但在真的Arduino控制器里的delay函数延时时间肯定是精确的。


我的Arduino智能小车套件的图片:


94032b34-ff65-4590-bae9-a6747301b791.jpg


我要根据我买来的Arduino智能小车,讲讲labview和真的Arduino控制器和其电子积木互动的例子。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条