直流电机限位,怎么做到转2圈再限位?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 423|回复: 2

[未解决] 直流电机限位,怎么做到转2圈再限位?

[复制链接]
发表于 2022-9-15 16:15 | 显示全部楼层 |阅读模式
转一圈,碰到限位开关也不需要限位,转第二圈再限位,哪位帮我看看怎么做,现在是碰到限位开关就停止了。


  1. #define INA1  5  // IN1
  2. #define INA2  4  // IN2

  3. const int key1 = 12;     // 复位针脚
  4. const int xianwei = 0;   // 限位针脚

  5. void setup()
  6. {  
  7.   pinMode(INA1,  OUTPUT);  
  8.   pinMode(INA2,  OUTPUT);  
  9.   pinMode(xianwei, INPUT); // 限位初始化
  10.   Serial.begin(115200);
  11.   attachInterrupt(digitalPinToInterrupt(xianwei), fuwei, FALLING);
  12. }

  13. void loop()
  14. {

  15.   if (digitalRead(key1) == HIGH)
  16.   {
  17.     delay(50);
  18.     if (digitalRead(key1) == HIGH)
  19.     {
  20.       fuwei();
  21.       Serial.println("按了复位");
  22.     }
  23.     while (digitalRead(key1) == HIGH);
  24.   }
  25.   
  26. }

  27. ICACHE_RAM_ATTR void fuwei()
  28. {

  29.      right();

  30.     if (digitalRead(xianwei) == LOW){
  31.             stoop();
  32.             Serial.println("限位停止");
  33.           }

  34. }

  35. void right()
  36. {
  37.      digitalWrite(INA1,LOW);
  38.      digitalWrite(INA2,HIGH);
  39. }

  40. void stoop()
  41. {
  42.      digitalWrite(INA1,LOW);
  43.      digitalWrite(INA2,LOW);
  44. }
复制代码


发表于 2022-9-15 21:14 | 显示全部楼层
弄個內部計數變數,開關碰1次累加1,
計數器=2時馬達才停止,然後將計數器歸零
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-1 01:32 , Processed in 0.141891 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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