0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MC41010引脚图,如何连接数字电位计与arduino?

科技观察员 来源:homemade-circuits 作者:homemade-circuits 2023-07-27 11:43 次阅读

在本项目中,我们将连接数字电位计与arduino。在本演示中,使用MCP41010,但您可以使用MC41**系列的任何数字电位计。

MC41010简介

数字电位计就像任何具有三个端子interwetten与威廉的赔率体系 电位计一样,只有一个区别。而在模拟中,您必须手动更改游标位置,而在数字电位计的情况下,游标位置是根据使用任何微控制器微处理器提供给电位计的信号设置的。

FIG. MC41010 IC pinout

MC41010是一款8引脚双列直插式封装IC。与任何模拟电位计一样,该IC有5k、10k、50k和100k三种规格。本电路采用10k电位计

MC4131,有以下8个端子:

引脚编号 引脚名称 很少描述

1 CS 此引脚用于选择连接到 arduino 的从机或外设。如果为“低”,则选择MC41010,如果为“高”,

则取消选择MC41010。

2 SCLK共享/串行时钟,arduino提供时钟,用于初始化从Arduino到IC的

数据传输,反之亦然。

3 SDI/SDO 串行数据通过此引脚在 arduino 和 IC 之间传输 4 个 arduino 的 VSS 接地端子连接到 IC
的此引脚

5 PA0 这是电位器的一个端子。

6 PW0 此端子是电位器的游标端子(用于改变电阻

7 PB0 这是电位器的另一个端子。

8 VCC 通过此引脚为 IC 供电

该IC仅包含一个电位计。有些IC最多内置两个电位计。此

游标和任何其他端子之间的电阻值以 256 步变化,从 0 到 255。由于我们使用10k电阻,电阻值以10和256之间的步长变化:

39k/0= 255欧姆/步进《》到《》

组件

我们需要此项目的以下组件。

  1. 阿杜伊诺

2.MC41010 集成电路

3.220欧姆电阻器

4.指示灯

5.连接线

如图所示进行连接。

  1. 将 cs 引脚连接到数字引脚 10。
  2. 将 SCK 引脚连接到数字引脚 13。
  3. 将SDI/SDO引脚连接到数字引脚11。
  4. VSS 到阿杜伊诺的接地引脚

5.PA0 至 5v 引脚的 arduino

6。PB0 到地面

arduino 7.PWO 到阿杜伊诺的模拟引脚 A0。

  1. VCC 至 5 V 的 arduino。

程序代码 1

此代码在Arduino IDE的串行监视器上打印游标端子和接地的电压变化。

#include 《SPI.h》

int CS = 10 ; // initialising variable CS pin as pin 10 of arduino

int x ; // initialising variable x

float Voltage ; // initialising variable voltage

int I ; // this is the variable which changes in steps and hence changes
resistance accordingly.

void setup()

{

pinMode (CS , OUTPUT) ; // initialising 10 pin as output pin

pinMode (A0, INPUT) ; // initialising pin A0 as input pin

SPI.begin() ; // this begins Serial peripheral interfece

Serial.begin(9600) ; // this begins serial communications between arduino
and ic.

}

void loop()

{

for (int i = 0; i 《= 255; i++)// this run loops from 0 to 255 step with 10
ms delay between each step

{

digitalPotWrite(i) ; // this writes level i to ic which determines
resistance of ic

delay(10);

x = analogRead(A0) ; // read analog values from pin A0

Voltage = (x * 5.0 )/ 1024.0;// this converts the analog value to
corresponding voltage level

Serial.print(“Level i = ” ) ; // these serial commands print value of i or
level and voltage across wiper

Serial.print(i) ; // and gnd on Serial monitor of arduino IDE

Serial.print(“t Voltage = ”) ;

Serial.println(Voltage,3) ;

}

delay(500);

for (int i = 255; i 》= 0; i--) // this run loops from 255 to 0 step with 10
ms delay between each step

{

digitalPotWrite(i) ;

delay(10) ;

x = analogRead(A0) ;

Voltage = (x * 5.0 )/ 1024.0 ; // this converts the analog value to
corresponding voltage level

Serial.print(“Level i = ” ) ; // these serial commands print value of i or
level and voltage across wiper

Serial.print(i); // and gnd on Serial monitor of arduino IDE

Serial.print(“t Voltage = ”);

Serial.println(Voltage,3);

}

}

int digitalPotWrite(int value) // this block is explained in coding
section

{

digitalWrite(CS, LOW);

SPI.transfer(B00010001);

SPI.transfer(value);

digitalWrite(CS, HIGH);

解释代码 1:

要将数字电位计与arduino一起使用,您需要首先包含arduino IDE本身提供的SPI库。只需使用以下命令调用库:

#include 《SPI.h》

在空隙设置中,引脚被指定为输出或输入。还给出了开始 SPI 和 arduino 和 ic 之间的串行通信的命令,它们是:

SPI.begin(); and

Serial.begin(9600);

在空隙回路中,for回路用于以总共256步改变数字电位器的电阻。首先从 0 到 255,然后再次返回到 0,每步之间有 10 毫秒的延迟:

for (int i = 0; i 《= 255; i++) and

for (int i = 255; i 》= 0; i--)

digitalPotWrite(i) 函数写入值以改变 ic 特定地址的电阻。

游标和终端之间的电阻可以使用以下公式计算:

R1= 10k*(256 电平)/256 + Rw 和

R2= 10k*电平/256 + Rw

这里R1=游标和一个端子之间的电阻R2=游标和其他端子

之间的电阻 电平=特定时刻的步进(for回路中使用的变量“I”)

Rw=游标端子

的电阻(可以在ic的数据表中找到)

使用digitalPotWrite()功能,通过将低电压分配给CS引脚来选择数字电位器芯片。现在,当选择IC时,必须调用一个地址,该地址将写入数据。在代码的最后一部分:

SPI.transfer(B00010001);

调用地址B00010001,以选择将在其上写入数据的IC的游标端子。因此,对于循环的值,即 i 被写入以改变电阻。

电路工作:

只要 i 的值不断将输入更改为 arduino 的 A0 引脚,也会在 0 到 1023
之间不断变化。这是因为游标端子直接连接到A0引脚,电位计的其他端子分别连接到5伏和地。现在,当电阻发生变化时,两端的电压也会发生变化,Arduino直接将其作为输入,因此我们在串行监视器上获得特定电阻值的电压值。

模拟 1:

以下是该电路在i的各种值下的一些仿真图片:

现在只需将一个串联的 LED 与 220 欧姆电阻连接到 IC 的游标端子,如图所示。

代码 2:

#include 《SPI.h》

int CS = 10;

int x;

float Voltage;

int i;

void setup()

{

pinMode (CS , OUTPUT);

pinMode (A0, INPUT);

SPI.begin();// this begins Serial peripheral interfece

}

void loop()

{

for (int i = 0; i 《= 255; i++)// this run loops from 0 to 255 step with 10
ms delay between each step

{

digitalPotWrite(i);// this writes level i to ic which determines resistance
of ic

delay(10);

}

delay(500);

for (int i = 255; i 》= 0; i--)// this run loops from 255 to 0 step with 10
ms delay between each step

{

digitalPotWrite(i);

delay(10);

}

}

int digitalPotWrite(int value)// this block is explained in coding
section

{

digitalWrite(CS, LOW);

SPI.transfer(B00010001);

SPI.transfer(value);

digitalWrite(CS, HIGH);

}

解释代码 2:

此代码与代码 1 类似,只是此代码中没有串行命令。因此,不会在串行监视器上打印任何值。

工作说明

由于 LED 在游标端子和接地之间连接,电阻随电阻变化而变化,因此 LED 两端的电压也会发生变化。因此,随着 LED 连接的电阻从 0
欧姆上升到最大值,LED 的亮度也会增加。由于电阻从最大值降低到0v,它再次缓慢消失。

模拟2

模拟3

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 引脚图
    +关注

    关注

    28

    文章

    111

    浏览量

    35301
  • 数字电位计
    +关注

    关注

    0

    文章

    103

    浏览量

    10576
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186870
收藏 人收藏

    评论

    相关推荐

    dsp28335引脚ADc引脚如何连接

    dsp28335引脚ADc引脚如何连接
    发表于 03-09 15:51

    请问AD5445的3引脚GND连接数字地还是模拟地

    3引脚GND是给谁提供参考电平的?在AD5445的datasheet中所有的3引脚连接到模拟部分,但是在AD5445开发板中,3引脚连接
    发表于 10-01 19:14

    AD5445的3引脚GND连接数字地还是模拟地?

    3引脚GND是给谁提供参考电平的? 在AD5445的datasheet中所有的3引脚连接到模拟部分,但是在AD5445开发板中,3引脚连接
    发表于 12-20 06:52

    74ls04引脚 引脚功能

    74ls04引脚 74LS04引脚功能及真值表:
    发表于 11-29 22:06 7.5w次阅读
    74ls04<b class='flag-5'>引脚</b><b class='flag-5'>图</b> <b class='flag-5'>引脚</b>功能

    8051引脚

    8051引脚
    发表于 11-29 23:00 2523次阅读
    8051<b class='flag-5'>引脚</b><b class='flag-5'>图</b>

    mc1413引脚

    mc1413引脚
    发表于 12-25 11:40 6606次阅读
    <b class='flag-5'>mc</b>1413<b class='flag-5'>引脚</b><b class='flag-5'>图</b>

    8031引脚功能

    8031引脚功能
    发表于 03-06 21:01 4497次阅读
    8031<b class='flag-5'>引脚</b>功能<b class='flag-5'>图</b>

    62256引脚

    62256引脚 2.7 62256引脚 6225
    发表于 04-01 17:27 2.4w次阅读
    62256<b class='flag-5'>引脚</b><b class='flag-5'>图</b>

    62128引脚

    62128引脚 2.6 62128引脚 62128是16 K×8的高集成度
    发表于 04-01 17:28 9895次阅读
    62128<b class='flag-5'>引脚</b><b class='flag-5'>图</b>

    cd4051引脚

    cd4051引脚 The
    发表于 06-06 18:08 9705次阅读
    cd4051<b class='flag-5'>引脚</b><b class='flag-5'>图</b>

    MC1488引脚管脚电路

    MC1488引脚管脚电路
    发表于 04-05 09:22 3473次阅读

    傻瓜175引脚

    傻瓜175引脚
    发表于 11-17 08:37 2256次阅读

    sg3525引脚

    sg3525引脚
    发表于 03-31 12:24 2589次阅读
    sg3525<b class='flag-5'>引脚</b><b class='flag-5'>图</b>

    mc1413引脚及功能_mc1413内部电路

    缓冲器来处理的数据。MC1413工作电压高,工作电流大,灌电流可以达到500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。 引脚及内部电路
    发表于 11-23 09:56 5.3w次阅读
    <b class='flag-5'>mc</b>1413<b class='flag-5'>引脚</b><b class='flag-5'>图</b>及功能_<b class='flag-5'>mc</b>1413内部电路<b class='flag-5'>图</b>

    stlink与stm32引脚连接记录

    302的连接要求也就是这里要求2接vtref,我们再来看stlink的引脚定义可以看出除了302的12.2引脚Vtref找不到外,302的12.1
    发表于 11-07 14:05 7次下载
    stlink与stm32<b class='flag-5'>引脚</b><b class='flag-5'>连接</b>记录