{{ 'fb_in_app_browser_popup.desc' | translate }} {{ 'fb_in_app_browser_popup.copy_link' | translate }}
{{ 'in_app_browser_popup.desc' | translate }}
{{word('consent_desc')}} {{word('read_more')}}
{{setting.description}}
價格均含稅,下單享優惠!歡迎大量採購,由專人提供專案報價。
{{ childProduct.title_translations | translateModel }}
{{ getChildVariationShorthand(childProduct.child_variation) }}
{{ getSelectedItemDetail(selectedChildProduct, item).childProductName }} x {{ selectedChildProduct.quantity || 1 }}
{{ getSelectedItemDetail(selectedChildProduct, item).childVariationName }}
產品貨號:368031000487
區號:Mb29-01
品牌:
原廠貨號:935
全店,滿千免運優惠(限郵寄和超商純取貨)
商品存貨不足,未能加入購物車
您所填寫的商品數量超過庫存
{{'products.quick_cart.out_of_number_hint'| translate}}
{{'product.preorder_limit.hint'| translate}}
每筆訂單限購 {{ product.max_order_quantity }} 件
現庫存只剩下 {{ quantityOfStock }} 件
您的微控制器可能有一個 ADC(模擬 -> 數字轉換器),但它有 DAC(數字 -> 模擬轉換器)嗎??? 現在可以了! 該分線板具有易於使用的 MCP4725 12 位 DAC。 通過 I2C 控制它並將您希望它輸出的值發送給它,VOUT 引腳將擁有它。 非常適合音頻/模擬項目,例如當您不能使用 PWM 但需要正弦波或可調偏置點時。
我們斷開了 ADDR 引腳,因此您可以在一個 I2C 總線上連接兩個這些 DAC,只需將一個 ADDR 引腳連接到高電平以防止其發生衝突。 還包括一個 6 針接頭,用於麵包板。 適用於 3.3V 或 5V 邏輯。
該晶片的一些不錯的附加功能:對於具有 3.4Mbps 快速模式 I2C(Arduino 沒有)的晶片,您可以以 ~200 KHz 更新 Vout。 有一個 EEPROM,所以如果你寫輸出電壓,你可以“存儲它”,所以如果設備重新上電,它會恢復那個電壓。 輸出電壓為軌到軌且與電源引腳成正比,因此如果您在 3.3V 下運行,輸出範圍為 0-3.3V。 如果從 5V 運行它,輸出範圍是 0-5V。
我們有一個易於使用的 Arduino 程式庫,其中包含三角波和正弦波範例程式,可用於任何“duino”或移植到任何帶有 I2C 主機的微控制器。 接線很容易 - 將 VDD 連接到您的微控制器電源引腳(3-5V),將 GND 連接到地,將 SDA 連接到 I2C 數據(在 Arduino Uno 上,這是 Mega 上的 A4,它是 20,而在 Leonardo digital 2 上), SCL 到 I2C 時鐘(在 Arduino Uno 上,這是 Mega 上的 A5,它是 21,在 Leonardo digital 3 上)並收聽 VOUT。
MCP4725 Datasheet
BSS138 Datasheet
操作流程
STEP 1. 將欲查詢的模組連接至Arduino UNO(附圖為腳位參考,實際請比對商品標示接線)
STEP 2. 開啟Arduino IDE並新增檔案
STEP 3. 貼入教學下方的範例文件,並上傳到Arduino UNO,即會開始掃描I2C位址
STEP 4. 開啟序列埠監控視窗,即可取得I2C位址
I2C掃描範例程式
/ ---------------------------------------------------------------- / | |
// Arduino I2C Scanner | |
// Re-writed by Arbi Abdul Jabbaar | |
// Using Arduino IDE 1.8.7 | |
// Using GY-87 module for the target | |
// Tested on 10 September 2019 | |
// This sketch tests the standard 7-bit addresses | |
// Devices with higher bit address might not be seen properly. | |
/ ---------------------------------------------------------------- / | |
#include //include Wire.h library | |
void setup() | |
{ | |
Wire.begin(); // Wire communication begin | |
Serial.begin(9600); // The baudrate of Serial monitor is set in 9600 | |
while (!Serial); // Waiting for Serial Monitor | |
Serial.println("\nI2C Scanner"); | |
} | |
void loop() | |
{ | |
byte error, address; //variable for error and I2C address | |
int nDevices; | |
Serial.println("Scanning..."); | |
nDevices = 0; | |
for (address = 1; address < 127; address++ ) | |
{ | |
// The i2c_scanner uses the return value of | |
// the Write.endTransmisstion to see if | |
// a device did acknowledge to the address. | |
Wire.beginTransmission(address); | |
error = Wire.endTransmission(); | |
if (error == 0) | |
{ | |
Serial.print("I2C device found at address 0x"); | |
if (address < 16) | |
Serial.print("0"); | |
Serial.print(address, HEX); | |
Serial.println(" !"); | |
nDevices++; | |
} | |
else if (error == 4) | |
{ | |
Serial.print("Unknown error at address 0x"); | |
if (address < 16) | |
Serial.print("0"); | |
Serial.println(address, HEX); | |
} | |
} | |
if (nDevices == 0) | |
Serial.println("No I2C devices found\n"); | |
else | |
Serial.println("done\n"); | |
delay(5000); // wait 5 seconds for the next I2C scan | |
} |