0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MC41010引腳圖,如何連接數(shù)字電位計(jì)與arduino?

科技觀察員 ? 來源:homemade-circuits ? 作者:homemade-circuits ? 2023-07-27 11:43 ? 次閱讀

在本項(xiàng)目中,我們將連接數(shù)字電位計(jì)與arduino。在本演示中,使用MCP41010,但您可以使用MC41**系列的任何數(shù)字電位計(jì)。

MC41010簡介

數(shù)字電位計(jì)就像任何具有三個端子模擬電位計(jì)一樣,只有一個區(qū)別。而在模擬中,您必須手動更改游標(biāo)位置,而在數(shù)字電位計(jì)的情況下,游標(biāo)位置是根據(jù)使用任何微控制器微處理器提供給電位計(jì)的信號設(shè)置的。

FIG. MC41010 IC pinout

MC41010是一款8引腳雙列直插式封裝IC。與任何模擬電位計(jì)一樣,該IC有5k、10k、50k和100k三種規(guī)格。本電路采用10k電位計(jì)

MC4131,有以下8個端子:

引腳編號 引腳名稱 很少描述

1 CS 此引腳用于選擇連接到 arduino 的從機(jī)或外設(shè)。如果為“低”,則選擇MC41010,如果為“高”,

則取消選擇MC41010。

2 SCLK共享/串行時鐘,arduino提供時鐘,用于初始化從Arduino到IC的

數(shù)據(jù)傳輸,反之亦然。

3 SDI/SDO 串行數(shù)據(jù)通過此引腳在 arduino 和 IC 之間傳輸 4 個 arduino 的 VSS 接地端子連接到 IC
的此引腳

。

5 PA0 這是電位器的一個端子。

6 PW0 此端子是電位器的游標(biāo)端子(用于改變電阻

7 PB0 這是電位器的另一個端子。

8 VCC 通過此引腳為 IC 供電

該IC僅包含一個電位計(jì)。有些IC最多內(nèi)置兩個電位計(jì)。此

游標(biāo)和任何其他端子之間的電阻值以 256 步變化,從 0 到 255。由于我們使用10k電阻,電阻值以10和256之間的步長變化:

39k/0= 255歐姆/步進(jìn)《》到《》

組件

我們需要此項(xiàng)目的以下組件。

  1. 阿杜伊諾

2.MC41010 集成電路

3.220歐姆電阻器

4.指示燈

5.連接線

如圖所示進(jìn)行連接。

  1. 將 cs 引腳連接到數(shù)字引腳 10。
  2. 將 SCK 引腳連接到數(shù)字引腳 13。
  3. 將SDI/SDO引腳連接到數(shù)字引腳11。
  4. VSS 到阿杜伊諾的接地引腳

5.PA0 至 5v 引腳的 arduino

6。PB0 到地面

arduino 7.PWO 到阿杜伊諾的模擬引腳 A0。

  1. VCC 至 5 V 的 arduino。

程序代碼 1

此代碼在Arduino IDE的串行監(jiān)視器上打印游標(biāo)端子和接地的電壓變化。

#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:

要將數(shù)字電位計(jì)與arduino一起使用,您需要首先包含arduino IDE本身提供的SPI庫。只需使用以下命令調(diào)用庫:

#include 《SPI.h》

在空隙設(shè)置中,引腳被指定為輸出或輸入。還給出了開始 SPI 和 arduino 和 ic 之間的串行通信的命令,它們是:

SPI.begin(); and

Serial.begin(9600);

在空隙回路中,for回路用于以總共256步改變數(shù)字電位器的電阻。首先從 0 到 255,然后再次返回到 0,每步之間有 10 毫秒的延遲:

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

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

digitalPotWrite(i) 函數(shù)寫入值以改變 ic 特定地址的電阻。

游標(biāo)和終端之間的電阻可以使用以下公式計(jì)算:

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

R2= 10k*電平/256 + Rw

這里R1=游標(biāo)和一個端子之間的電阻R2=游標(biāo)和其他端子

之間的電阻 電平=特定時刻的步進(jìn)(for回路中使用的變量“I”)

Rw=游標(biāo)端子

的電阻(可以在ic的數(shù)據(jù)表中找到)

使用digitalPotWrite()功能,通過將低電壓分配給CS引腳來選擇數(shù)字電位器芯片?,F(xiàn)在,當(dāng)選擇IC時,必須調(diào)用一個地址,該地址將寫入數(shù)據(jù)。在代碼的最后一部分:

SPI.transfer(B00010001);

調(diào)用地址B00010001,以選擇將在其上寫入數(shù)據(jù)的IC的游標(biāo)端子。因此,對于循環(huán)的值,即 i 被寫入以改變電阻。

電路工作:

只要 i 的值不斷將輸入更改為 arduino 的 A0 引腳,也會在 0 到 1023
之間不斷變化。這是因?yàn)橛螛?biāo)端子直接連接到A0引腳,電位計(jì)的其他端子分別連接到5伏和地?,F(xiàn)在,當(dāng)電阻發(fā)生變化時,兩端的電壓也會發(fā)生變化,Arduino直接將其作為輸入,因此我們在串行監(jiān)視器上獲得特定電阻值的電壓值。

模擬 1:

以下是該電路在i的各種值下的一些仿真圖片:

現(xiàn)在只需將一個串聯(lián)的 LED 與 220 歐姆電阻連接到 IC 的游標(biāo)端子,如圖所示。

代碼 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 類似,只是此代碼中沒有串行命令。因此,不會在串行監(jiān)視器上打印任何值。

工作說明

由于 LED 在游標(biāo)端子和接地之間連接,電阻隨電阻變化而變化,因此 LED 兩端的電壓也會發(fā)生變化。因此,隨著 LED 連接的電阻從 0
歐姆上升到最大值,LED 的亮度也會增加。由于電阻從最大值降低到0v,它再次緩慢消失。

模擬2

模擬3

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 引腳圖
    +關(guān)注

    關(guān)注

    28

    文章

    111

    瀏覽量

    35226
  • 數(shù)字電位計(jì)

    關(guān)注

    0

    文章

    100

    瀏覽量

    10558
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6458

    瀏覽量

    186504
收藏 人收藏

    評論

    相關(guān)推薦

    dsp28335引腳ADc引腳如何連接

    dsp28335引腳ADc引腳如何連接
    發(fā)表于 03-09 15:51

    請問AD5445的3引腳GND連接數(shù)字地還是模擬地

    3引腳GND是給誰提供參考電平的?在AD5445的datasheet中所有的3引腳連接到模擬部分,但是在AD5445開發(fā)板中,3引腳連接
    發(fā)表于 10-01 19:14

    AD5445的3引腳GND連接數(shù)字地還是模擬地?

    3引腳GND是給誰提供參考電平的? 在AD5445的datasheet中所有的3引腳連接到模擬部分,但是在AD5445開發(fā)板中,3引腳連接
    發(fā)表于 12-20 06:52

    74ls04引腳 引腳功能

    74ls04引腳 74LS04引腳功能及真值表:
    發(fā)表于 11-29 22:06 ?7.4w次閱讀
    74ls04<b class='flag-5'>引腳</b><b class='flag-5'>圖</b> <b class='flag-5'>引腳</b>功能

    8051引腳

    8051引腳
    發(fā)表于 11-29 23:00 ?2515次閱讀
    8051<b class='flag-5'>引腳</b><b class='flag-5'>圖</b>

    mc1413引腳

    mc1413引腳
    發(fā)表于 12-25 11:40 ?6577次閱讀
    <b class='flag-5'>mc</b>1413<b class='flag-5'>引腳</b><b class='flag-5'>圖</b>

    8031引腳功能

    8031引腳功能
    發(fā)表于 03-06 21:01 ?4449次閱讀
    8031<b class='flag-5'>引腳</b>功能<b class='flag-5'>圖</b>

    62256引腳

    62256引腳 2.7 62256引腳 6225
    發(fā)表于 04-01 17:27 ?2.3w次閱讀
    62256<b class='flag-5'>引腳</b><b class='flag-5'>圖</b>

    62128引腳

    62128引腳 2.6 62128引腳 62128是16 K×8的高集成度
    發(fā)表于 04-01 17:28 ?9687次閱讀
    62128<b class='flag-5'>引腳</b><b class='flag-5'>圖</b>

    cd4051引腳

    cd4051引腳 The
    發(fā)表于 06-06 18:08 ?9681次閱讀
    cd4051<b class='flag-5'>引腳</b><b class='flag-5'>圖</b>

    MC1488引腳管腳電路

    MC1488引腳管腳電路
    發(fā)表于 04-05 09:22 ?3465次閱讀

    傻瓜175引腳

    傻瓜175引腳
    發(fā)表于 11-17 08:37 ?2249次閱讀

    sg3525引腳

    sg3525引腳
    發(fā)表于 03-31 12:24 ?2558次閱讀
    sg3525<b class='flag-5'>引腳</b><b class='flag-5'>圖</b>

    mc1413引腳及功能_mc1413內(nèi)部電路

    緩沖器來處理的數(shù)據(jù)。MC1413工作電壓高,工作電流大,灌電流可以達(dá)到500mA,并且能夠在關(guān)態(tài)時承受50V的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。 引腳及內(nèi)部電路
    發(fā)表于 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內(nèi)部電路<b class='flag-5'>圖</b>

    stlink與stm32引腳連接記錄

    302的連接要求也就是這里要求2接vtref,我們再來看stlink的引腳定義可以看出除了302的12.2引腳Vtref找不到外,302的12.1
    發(fā)表于 11-07 14:05 ?7次下載
    stlink與stm32<b class='flag-5'>引腳</b><b class='flag-5'>連接</b>記錄