概述

8421 Encoder-Horizontal是一款具有16档编码(0-F)卧式直插的8421编码器,常应用于各种设备的状态控制。

特性

  • 寿命长
  • 独特的8421编码功能
  • BreakOut易于安装

应用场景

  • 工业自动化
  • 汽车电子
  • 多媒体音箱
  • 仪器仪表
  • 智能家居等各种领域

技术规格

  • 电流范围:150mA, 42V
  • 8421编码:十六档(0-F)
  • 使用寿命:10000步
  • 工作温度:-40~85℃
  • 模块尺寸:19x14mm
  • 安装孔径:2.0mm
  • 安装孔间距:15mm
8421 Encoder-Horizontal 尺寸图
















接口说明

8421 Encoder-Vertical 顶部&底部
标号 名称 功能描述
1 8 8421BCD编码8端口
2 4 8421BCD编码4端口
3 2 8421BCD编码2端口
4 1 8421BCD编码1端口
5 C 公共端-接入电源正极VCC
6 X 公共端-接入电源负极GND

真值表

8421 Encoder-Vertical 真值表

Arduino使用教程

准备

连线图

8421 Encoder-Horizontal 引用连线图

样例代码

  • 将下面样例代码上传至主控板,打开串口监控器,串口输出编码。

    /**************************************************************************/
    /*
    @file DFR0722_V10_Demo.ino
    @author PowerLiao (DFRobot)
    @version V1.0
    @date 2020-07-09
    @copyright Copyright (c) 2010 DFRobot Co.Ltd (https://www.dfrobot.com)
    @licence The MIT License (MIT)
    @breif This example read and print the 8421 encoder code.

    This demo and related libraries are for [DFR0722]8421 Encoder-Horizontal(V1.0)
    Check out the links below for tutorials and connection diagrams
    Product(CH): https://www.dfrobot.com.cn/
    Product(EN): https://www.dfrobot.com/
    

    */
    /**************************************************************************/

    #define setbit(data,b) (data|=(1<<b)) //set the b bit of data to 1
    #define clrbit(data,b) (data&=~(1<<b)) //set the b bit of data to 0

    uint8_t code8421 = 0;
    const uint8_t code8Pin = 5;
    const uint8_t code4Pin = 4;
    const uint8_t code2Pin = 3;
    const uint8_t code1Pin = 2;

    void setup() {
    Serial.begin(115200);
    Serial.println("8421 Encoder Starts up!");
    pinMode(code8Pin, INPUT);
    pinMode(code4Pin, INPUT);
    pinMode(code2Pin, INPUT);
    pinMode(code1Pin, INPUT);
    }

    void loop() {
    //According to the pin level and set the corresponding bit to 0 or 1
    if (digitalRead(code8Pin) == HIGH){
    setbit(code8421, 3);
    }else{
    clrbit(code8421, 3);
    }

    if (digitalRead(code4Pin) == HIGH){
    setbit(code8421, 2);
    }else{
    clrbit(code8421, 2);
    }

    if (digitalRead(code2Pin) == HIGH){
    setbit(code8421, 1);
    }else{
    clrbit(code8421, 1);
    }

    if (digitalRead(code1Pin) == HIGH){
    setbit(code8421, 0);
    }else{
    clrbit(code8421, 0);
    }

    //Output the code in hexadecimal
    Serial.print("Now code8421 is: ");
    Serial.println(code8421, HEX);
    delay(1000);
    }

结果

  • 模块每隔1s打印当前编码值:
    DFR0721 V10 SERIAL DATA.jpg

常见问题

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接