为什么我的主程序和中断在一起运行着??-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4431|回复: 4

[已解决] 为什么我的主程序和中断在一起运行着??

[复制链接]
发表于 2013-10-5 12:02 | 显示全部楼层 |阅读模式
我的主程序想让小车右边的轮子转动,当中断发生的时候,右边轮子停止停止,然后左边的轮子转动几秒种,问题是现在我的程序下载进去运行后,一运行右边轮子转动,然后我触发中断信号,左边轮子和右边轮子就一起动了,而且中断函数一旦运行就不再停止,谁帮我看看什么原因   抓狂啊

int INA1=20;  //定义两个电机引脚
int INA2=21;
int PWMA=22;
int INB1=4;
int INB2=8;
int PWMB=3;

int IR1=2;   //定义一个传感器管脚


void setup()
{
  pinMode(INA1,OUTPUT);  //定义电机管脚为输出
  pinMode(INA2,OUTPUT);
  pinMode(PWMA,OUTPUT);
  pinMode(INB1,OUTPUT);
  pinMode(INB2,OUTPUT);
  pinMode(PWMB,OUTPUT);
  pinMode(IR1,INPUT);    //定义传感器管脚为输入
attachInterrupt(INT0, zuo, CHANGE);   //中断
}

void  zuo()     //中断函数,左边电机转动函数
{
   
      digitalWrite(INA1,LOW);
      digitalWrite(INA2,HIGH);
      analogWrite(PWMA,500);
       delay(3000);
   
}

void  you()    //右边电机转动函数
{
    digitalWrite(INB1,HIGH);//使直流电机顺时针转
    digitalWrite(INB2,LOW);
    analogWrite(PWMB,46.5);
   
}

void loop()
{
   you();   //右边电机转动
}
发表于 2013-10-5 13:28 | 显示全部楼层
不是在一起运行,而是一直在切换运行。检查你中断引脚是否有稳定的电平输入,另外中断里一般不能使用延迟 函数
 楼主| 发表于 2013-10-9 22:02 | 显示全部楼层
我想做一个小车在间隔为5CM的黑白条上走直线。我的小车是三轮的。车的前面是两个驱动轮,电机是直流电机,可PWM调速,小车的后面是一个万向轮。但是因电机的不同步,走的过程中如果没有反馈控制,小车走的一定会偏。我的想法是在车的车头放两个红外传感器,因为红外传感器能检测黑白条,如果小车走的直的话两个红外传感器的状态一定是一样的,一起是低或者一起是高的,如果他们的状态不同那就是歪了,我可以判断哪个电机的状态最先改变来判断是哪边的方向歪了,再让慢的变快来调节使得小车走正。我的问题是怎么判断哪个传感器的电平最先改变,这个程序用C怎么写出来?我编程不大好,能帮帮我么,非常谢谢你。
 楼主| 发表于 2013-10-9 22:04 | 显示全部楼层
奈何col 发表于 2013-10-5 13:28
不是在一起运行,而是一直在切换运行。检查你中断引脚是否有稳定的电平输入,另外中断里一般不能使用延迟  ...

我想做一个小车在间隔为5CM的黑白条上走直线。我的小车是三轮的。车的前面是两个驱动轮,电机是直流电机,可PWM调速,小车的后面是一个万向轮。但是因电机的不同步,走的过程中如果没有反馈控制,小车走的一定会偏。我的想法是在车的车头放两个红外传感器,因为红外传感器能检测黑白条,如果小车走的直的话两个红外传感器的状态一定是一样的,一起是低或者一起是高的,如果他们的状态不同那就是歪了,我可以判断哪个电机的状态最先改变来判断是哪边的方向歪了,再让慢的变快来调节使得小车走正。我的问题是怎么判断哪个传感器的电平最先改变,这个程序用C怎么写?我编程不大好,能帮帮我么,非常谢谢你。
发表于 2013-12-16 00:30 | 显示全部楼层
白云飞 发表于 2013-10-9 22:04
我想做一个小车在间隔为5CM的黑白条上走直线。我的小车是三轮的。车的前面是两个驱动轮,电机是直流电机 ...

间隔为5CM的黑白条,放两个红外传感器,因为红外传感器能检测黑白条,不精确,简单的用光码盘,高级的用陀螺仪,这个不难,多找点资料
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-4 03:42 , Processed in 0.091166 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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