极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17101|回复: 6

光电传感器+电机正反转测试程序

[复制链接]
发表于 2015-9-9 21:33:57 | 显示全部楼层 |阅读模式
看网上大家都在求光电传感器计数的例子,小子不才,这里献丑了,图片发不起,只能发附件了








光电传感器+电机测试程序,计数满300,电机改变方向2015/9/9测试通过

int inAPin = 7;   //定义7脚为传感器输入脚
int aPreStatus;   //状态保持变量
int counta = 0;   //计数器变量

void setup() {
pinMode(7, INPUT);       //设定7脚为输入形态
  pinMode(8, OUTPUT);     //设定8脚为输出形态
  pinMode(9, OUTPUT);     //设定9脚为输出形态
  digitalWrite(8, LOW);   //设定8脚初始输出状态为低电平
  digitalWrite(9, LOW);   //设定9脚初始输出状态为低电平
  
  aPreStatus = digitalRead(inAPin);
  Serial.begin(9600);

}
void loop() {
  if (digitalRead(inAPin) == 0) //传感器计数
  {
    if (aPreStatus == 1)
    {
      counta++;
      Serial.println(counta);
    }
    aPreStatus = 0;
  }
  else
    aPreStatus = 1;

digitalWrite(9, HIGH);   //电机驱动PWM脉冲,更改数字200可改变电机转速
delayMicroseconds(200);
digitalWrite(9, LOW);
delayMicroseconds(200);

if (counta == 300) //如果计数器=300,8脚改变当前状态,如果高则变为低,如果低则变为高,然后计数器清零,并延时半秒
{
  if (digitalRead(8) == LOW)
  {
    digitalWrite(8, HIGH);
  }
  else
  {
    digitalWrite(8, LOW);
  }
  counta = 0;
  delay(500);
}
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2015-9-9 22:06:21 | 显示全部楼层
我这里采用的是200计数的光栅片,采用普通U形传感器,用LM393整形输出计数脉冲,考虑两者的精度,电机速度越低计数误差越大,要求速度的建议采用150以下的光栅
回复 支持 反对

使用道具 举报

发表于 2015-9-10 09:19:02 | 显示全部楼层
实际应用的话可以加上中断系统,这样可以保证计数精度500线照样跑。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-9-11 08:19:56 | 显示全部楼层
楼上的老师,顶礼膜拜,愿闻其详,谢谢
回复 支持 反对

使用道具 举报

发表于 2016-12-13 10:21:03 | 显示全部楼层
这是通过控制8脚的高低电平来实现正反转,LZ试过通过相位实现正反转?
回复 支持 反对

使用道具 举报

发表于 2017-8-2 16:44:38 | 显示全部楼层
光电传感器和小车搭配能实现什么功能呢?能请楼主介绍一下吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-7 22:32:11 | 显示全部楼层
xwp 发表于 2017-8-2 16:44
光电传感器和小车搭配能实现什么功能呢?能请楼主介绍一下吗?


实现步进电机精确定位,就像打印机的走纸电机不但使用了精密的步进电机还同时使用了十分密集的光栅计数,所以日本人的喷墨打印机打印精度能够达到2400dpi,甚至更高。我这里只是想学习一下光栅定位的工作原理,真正的应用至少得stm32这样的cpu芯片能基本搞定,arduino本来就是为玩具和diy而开发的。
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-18 20:17 , Processed in 0.051055 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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