极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9429|回复: 3

if语句后的程序不执行了怎么办

[复制链接]
发表于 2013-7-13 21:58:02 | 显示全部楼层 |阅读模式
设计一程序,让电机驱动板(可以控制两个电机)控制一个运动,一个根据按键正反转,但是通电后发现没按键控制的电机不动了,就是if语句后的程序不执行了,是什么原因,程序如下:
  1. #include <Servo.h>
  2. int pinI1=8;//定义I1接口
  3. int pinI2=9;//定义I2接口
  4. int speedpin=10;//定义EA(PWM调速)接口

  5. int pinI3=1;//定义I1接口
  6. int pinI4=2;//定义I2接口
  7. int speedpin0=11;//定义EA(PWM调速)接口

  8. int button_1 =3;//按钮1连在数字端口1
  9. int button_2 =4;//按钮2连在数字端口2

  10. void setup()
  11. {
  12.   pinMode(button_1, INPUT); //设置按钮1为输入
  13.   pinMode(button_2, INPUT); //设置按钮2为输入
  14.   
  15.   
  16.   pinMode(pinI1,OUTPUT);//定义该接口为输出接口
  17.   pinMode(pinI2,OUTPUT);
  18.   pinMode(speedpin,OUTPUT);
  19.   
  20.   pinMode(pinI3,OUTPUT);//定义该接口为输出接口
  21.   pinMode(pinI4,OUTPUT);
  22.   pinMode(speedpin0,OUTPUT);
  23.   
  24.    Serial.begin(9600);
  25. }

  26. void loop()
  27. {
  28.   if( digitalRead(button_1)==LOW&&digitalRead(button_2)==HIGH)
  29.   {
  30.     analogWrite(speedpin,550);//输入模拟值进行设定速度
  31.   delay(2000);
  32.   digitalWrite(pinI1,LOW);//使直流电机顺时针转
  33.   digitalWrite(pinI2,HIGH);
  34.    
  35.   }
  36.   
  37.    if( digitalRead(button_2)==LOW&&digitalRead(button_1)==HIGH)
  38.   {
  39.     analogWrite(speedpin,550);//输入模拟值进行设定速度
  40.   delay(2000);
  41.   digitalWrite(pinI2,LOW);//使直流电机顺时针转
  42.   digitalWrite(pinI1,HIGH);
  43.    
  44.   }
  45.   
  46.   analogWrite(speedpin0,550);//输入模拟值进行设定速度
  47.   delay(2000);
  48.   digitalWrite(pinI3,LOW);//使直流电机顺时针转
  49.   digitalWrite(pinI4,HIGH);

  50. }
复制代码
回复

使用道具 举报

发表于 2013-7-14 07:42:22 | 显示全部楼层
用个多线程来控制吧。!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-14 11:20:21 | 显示全部楼层
多线程??怎么搞
回复 支持 反对

使用道具 举报

发表于 2013-7-18 22:43:21 | 显示全部楼层
l两个 IF  那一个不执行了,是否有硬件原因。if 语句可再拆分细一点来判断问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-4 23:05 , Processed in 0.054662 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表