极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10874|回复: 3

码盘测速问题

[复制链接]
发表于 2015-8-19 14:17:21 | 显示全部楼层 |阅读模式
电路连接都没有错误,把loop里控制电机转动的代码单独拿出来测试没有问题,可是加进中断以后PWM值只有为255时电机才会转动,求大神指教
#include <MsTimer2.h>
int CW1=8;//连接电机2转向端口到数字接口7  
int CW2=9;
int PWM=11;  //连接电机2调速端口到数字接口6
int wheel = 0; //记录U型测速模块的次数
char getstr;

void flash()
{
  int r;
  r=wheel;
  Serial.print(r/20.0);
  wheel = 0;
}
void Count()
{
  wheel++;
}

void setup ()
{
  Serial.begin(9600);
  pinMode(CW1,OUTPUT);
  pinMode(CW2,OUTPUT);
  pinMode(PWM,OUTPUT);
  attachInterrupt(0,Count,FALLING);
  MsTimer2::set(1000, flash);        // 中断设置函数,每 1s 进入一次中断
  MsTimer2::start();  
}

void loop()
{
  getstr=Serial.read();
  if(getstr=='1'){
    digitalWrite(CW1,LOW);//电机转
    digitalWrite(CW2,HIGH);
    analogWrite(PWM,80);
  }
  else if(getstr=='2'){
    digitalWrite(CW1,LOW);//电机转
    digitalWrite(CW2,HIGH);
    analogWrite(PWM,160);
   
  }
  else if(getstr=='3'){
    digitalWrite(CW1,LOW);//电机转
    digitalWrite(CW2,HIGH);
    analogWrite(PWM,255);
  }
  else if(getstr=='0'){
    analogWrite(PWM,0);
    digitalWrite(CW1,HIGH);//电机停
    digitalWrite(CW2,HIGH);
  }
}
回复

使用道具 举报

发表于 2015-8-19 20:44:24 | 显示全部楼层
你算一下响应时间?
回复 支持 反对

使用道具 举报

发表于 2015-8-20 01:12:57 | 显示全部楼层
你之前不是已開了帖發問嗎?  大家都熱心回答, 但你為什麼不去理會人家的回應, 反而又再問一次.....

http://www.geek-workshop.com/thread-15848-1-1.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-20 09:51:53 | 显示全部楼层
Super169 发表于 2015-8-20 01:12
你之前不是已開了帖發問嗎?  大家都熱心回答, 但你為什麼不去理會人家的回應, 反而又再問一次.....

http ...

之前的那个问题不知道干了什么就解决了。。。这是新的问题。。。求指教
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 03:08 , Processed in 0.123333 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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