瞬停高速直流电机


Warning: DOMDocument::saveHTML() expects exactly 0 parameters, 1 given in /data/home/qxu1146440274/htdocs/wp-content/plugins/easy-custom-auto-excerpt/regex.php on line 100

视频图片: 视频介绍:

瞬停高速直流电机

哈~~我下午时突然想到如果给高速直流电机加上反向电压,不就可以加速它的停止了嘛~~于是乎就有了这个实验~~

嗯,左边电机的程序是正常的:

int motor1=9;      

int motor2=11;

int led=2;

read more

控制电机速度由大到小

视频图片:
视频介绍:
控制电机速度由大到小

 

int motor=3;      //定义motor引脚为1

int i=0;

 

void setup()

{

Serial.begin(9600);          //打开串口并设置通信波特率为9600

pinMode(motor,OUTPUT);  //设定motorspeed引脚为输出状态

}

 

void loop()

{

for(i=0;i<=255;i++)

{

analogWrite(motor,i);      //将i赋给motorspeed

delay(10);

}

}


 

嗯,在视频中我是把板子上的5v火线接在电机的正极上,输出的针脚接在电机负极上~~唔,还是先上张图比较好吧·~

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

(这是后来的接法~~详见下文~~)

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

这样接是因为考虑到电机的转速其实是由其正负极的电压差而决定的,我改变负极电压从而达到控制其转速的目的~~

对了,一开始我是把发出信号的针脚接在板子右下方的0-5针脚上,可总是不行,后来再一看,发现右下角那几个上面写着“ANALOG IN”,好吧,原来是输入端~~我的板子上方那一排虽然的确是数字端口,但3、5、6、9、10、11端口后面写着“PWM”,即脉冲宽度调制,是利用微处理器的数字输出来对模拟电路进行控制的一种技术,可就是说这几个数字端口同时也可以进行模拟信号的收发~~

 

嗯,再后来,我把信号端接电机正极,负极接地~~发现也成功了~~嗯~~

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

我的第一个arduino程序~~


Warning: DOMDocument::saveHTML() expects exactly 0 parameters, 1 given in /data/home/qxu1146440274/htdocs/wp-content/plugins/easy-custom-auto-excerpt/regex.php on line 100

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

这是一开始的零件状态~~

 

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

这是把程序烧录上去之后运行的样子~~只不过那个三极管有点接触不良,所以必须要用手一直扶着,否则电机就不转了~~

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

这两个分别是布线图和原理图~它的电阻图标画成电感了,三极管的样子也很奇怪~我猜测那个二极管的作用是用来稳压的~~至于三极管嘛,字面对我们时三个针脚左起分别是e发射极、b基极和c集电极,根据电路图,基极高电压集电极低电压为功率放大~~不过这部分内容模电课还没讲,故表示不是太了解~~

 

那么接下来就把我改过的程序放上来吧~~

int switchPin1=7;      //定义switchPin1引脚为7
                       //连接加速按键
int switchPin2 =8;     //定义switchPin2引脚为8
                       //连接减速按键
int motorspeed=9;      //定义motorspeed引脚为9
int ledpin=11;      //定义led引脚为9
int a=0;               //变量a用来存储速值
void setup() 
{
  Serial.begin(9600);          //打开串口并设置通信波特率为9600
  pinMode(switchPin1, INPUT);  //设定switchPin1引脚为输入状态
  pinMode(switchPin2, INPUT);  //设定switchPin2引脚为输入状态
  pinMode(motorspeed,OUTPUT);  //设定motorspeed引脚为输出状态
  pinMode(ledpin,OUTPUT);  //设定ledpin引脚为输出状态
}
                                                                                                                                              
void loop() 
{
  if (LOW== digitalRead(switchPin1))//如果switchPin1为低电平则执行下面的语句
  {
    a=255;
    analogWrite(motorspeed,a);      //将a的值赋给motorspeed
    digitalWrite(ledpin,HIGH);
  }
  if (LOW== digitalRead(switchPin2))//如果switchPin2为低电平则执行下面的语句
   {
    a=0;
    analogWrite(motorspeed,a);      //将a的值赋给motorspeed
    digitalWrite(ledpin,LOW);
   }
}


 

 

然后我想,若是我把二极管和三极管都给去了,把电机直接接在电路板上可以吗?~~嗯,明天试试看~~

 

第二天早上的实验:

控制电机速度由大到小

你知道下面的程序会输出几么?把这个问题弄清楚,对你理解基本的概念和原理是很有帮助的。【转】


Warning: DOMDocument::saveHTML() expects exactly 0 parameters, 1 given in /data/home/qxu1146440274/htdocs/wp-content/plugins/easy-custom-auto-excerpt/regex.php on line 100

C++语言: 好友在提问之前,最好先自己百度一下,学会独立寻找答案(在调试的排错时尤其如此),这是一种良好的学习方法,是一种端正地学习态度。以后步入社会,就不会再有谁会“热心”地帮您,在大学时要养成这种习惯,炼就这种能力。 1小时前

你知道下面的程序会输出几么?把这个问题弄清楚,对你理解基本的概念和原理是很有帮助的。

      你知道下面的程序会输出几么?想想为什么会这样。把这个问题弄清楚,对你理解基本的概念和原理是很有帮助的。

      先不要直接复制,然后粘贴运行,那样是没有意思的。

      =========================================

read more

光电英雄2011 RPGmaker

V1.13

1.增加对话

2.提高主角速度

3.修改标题

4.图书馆二楼新增新生报到处

5.新增图书馆背景音乐

 

V1.12

增加了中毒的伤害值~~

加入了轮滑社~~

增加了有关军训的说明~~

 

V1.1

此次更新内容近扩充一倍~~

几乎每个地图上都增加了对话~~

新增足球赛模式~~

修改了每个传送门~~

 

V1.0

这是我收到《北大英雄》的启发,编的一款给新生们指点疑惑,让他们更快的熟悉学校的游戏~~-

现在想请大家来测试下,顺便提提意见~~一些改进或添加的希望~~-

 

39672989470FF308709DC4B8C9B02729_B500_900_500_407

2BABF57ED52D5BEAEAF9FAA135AB9D25_B500_900_500_117

6AFF1684BF7681C927374529F08C52EB_B500_900_417_108

9CFAEE0D27859B370F0D574527ABA14F_B500_900_500_380

 

QQ空间日志地址:

http://user.qzone.qq.com/435878393/blog/1313034922