精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>帶PWM控制的伺服電機控制卡

帶PWM控制的伺服電機控制卡

2023-01-30 | zip | 0.05 MB | 次下載 | 免費

資料介紹

電路板如下圖:
pYYBAGPV72SAERd4AAD7eynbVaM213.png
poYBAGPV72eAYXHaAACn_SC9g3U229.png
pYYBAGPV72mAIrAzAACkT1cvBK4253.png
pYYBAGPV73WACrFTAACF6G38cPI559.png

組件

PCA9685PW,112 x 1
RC0603FR-0710KL
10k
× 9
SG73P1JTTD2203F
KOA Speer 電子公司
× 17
156125YS75000
伍爾特電子
x 1
IRLML6401
UMW(廣東友臺半導體)
x 1
593D106X9016A2TE3
威世斯普拉格
x 1

描述

帶PWM控制的伺服電機控制卡

您能想象通過互聯網控制任何設備嗎?燈、灌溉水泵、門驅動器和許多其他東西。

該板結合了多項功能,可讓您自動化和控制連接到互聯網的設備。

該項目是與印刷電路板制造商 PCBWay 共同開發的。您可以訪問該站點,下載所有電子板文件并免費獲得 10 個 PCBWay 單元。

閱讀全文并逐步了解接收電子板的步驟。

市場上有多種解決方案可用于通過互聯網控制設備。但是,有一個很大的問題:你不能修改控制代碼。這會阻止您創建自己的想法并根據您或客戶的需要創建一些東西。

PCA8695 PWM 伺服控制器 PCBWay 板的電子原理

伺服控制電路編程

編程

連接到 Arduino

PWM/伺服驅動器使用 I2C,因此只需 4 根線即可連接到您的 Arduino:

“經典”Arduino 接線:

+5v -> VCC(這只是 BREAKOUT 的電源,不是伺服電源!)

接地 -> 接地

模擬 4 -> SDA

模擬 5 -> SCL

較舊的 Mega 接線:

+5v -> VCC(這只是 BREAKOUT 的電源,不是伺服電源!)

接地 -> 接地

數字 20 -> SDA

數字 21 -> SCL

R3 及之后的 Arduino 布線(Uno、Mega 和 Leonardo):

(這些板在最靠近 USB 連接器的接頭上有專用的 SDA 和 SCL 引腳)

+5v -> VCC(這只是 BREAKOUT 的電源,不是伺服電源!)

接地 -> 接地

SDA -> SDA

SCL -> SCL

舵機電源

大多數伺服系統設計為在大約 5 或 6v 的電壓下運行。請記住,許多伺服系統同時移動(特別是大而強大的伺服系統)將需要大量電流。即使是微型伺服系統在移動時也會消耗數百毫安。一些高扭矩伺服系統在負載下會消耗超過 1A 的電流。

好的電源選擇是:

5v 2A開關電源

5v 10A開關電源

4xAA 電池座 - 6v 堿性電池。4.8v 鎳氫充電電池。

來自愛好商店的 4.8 或 6v 可充電 RC 電池組。

電容器添加到通孔電容器插槽

我們在 PCB 上有一個用于焊接電解電容器的點。根據您的使用情況,您可能需要也可能不需要電容器。如果您從電源驅動大量伺服電機,當伺服電機移動時電源電壓下降很多,n * 100uF(其中 n 是伺服電機的數量)是一個很好的起點 - 例如 470uF 或更多用于 5 個伺服電機。由于它如此依賴于伺服電流消耗、每個電機的扭矩和電源,因此我們無法建議“一個神奇的電容器值”,這就是我們不在套件中包含電容器的原因。將電容器添加到通孔電容槽

連接舵機

大多數伺服系統都帶有一個標準的 3 針母連接器,可直接插入伺服驅動器的接頭中。務必將插頭與地線(通常為黑色或棕色)與最下面一行和頂部的信號線(通常為黃色或白色)對齊。連接舵機

添加更多伺服系統

一塊板上最多可以連接 16 個舵機。如果您需要控制 16 個以上的舵機,可以按照下一頁所述鏈接其他板。

鏈接驅動程序

可以鏈接多個驅動器(最多 62 個)以控制更多的伺服系統。電路板兩端都有接頭,接線就像將 6 針并行電纜從一個電路板連接到另一個電路板一樣簡單。

向董事會致辭

鏈中的每個板都必須分配一個唯一的地址。這是通過板右上邊緣的地址跳線完成的。每個板的 I2C 基地址是 0x40。您使用地址跳線編程的二進制地址被添加到 I2C 基址。

要對地址偏移量進行編程,請使用一滴焊料橋接地址中每個二進制“1”的相應地址跳線。

板 0:地址 = 0x40 偏移量 = 二進制 00000(無需跳線)

Board 1: Address = 0x41 Offset = binary 00001 (bridge A0 as in the photo above)

電路板 2:地址 = 0x42 偏移量 = 二進制 00010(橋 A1)

電路板 3:地址 = 0x43 偏移量 = 二進制 00011(橋 A0 和 A1)

電路板 4:地址 = 0x44 偏移量 = 二進制 00100(橋 A2)

等等

在您的草圖中,您需要為每個板聲明一個單獨的 pobject。在每個對象上調用 begin,并通過它所附加的對象控制每個伺服。例如:

#include

#include

Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);

Adafruit_PWMServoDriver pwm2 = Adafruit_PWMServoDriver(0x41);

無效設置(){

序列號.begin(9600);

Serial.println("16通道PWM測試!");

pwm1.開始();

pwm1.setPWMFreq(1600); // 這是最大 PWM 頻率

pwm2.開始();

pwm2.setPWMFreq(1600); // 這是最大 PWM 頻率

}

使用 Adafruit 庫

由于 PWM 伺服驅動器是通過 I2C 控制的,因此它非常容易與任何微控制器或微型計算機一起使用。在這個演示中,我們將展示如何將它與 Arduino IDE 一起使用,但 C++ 代碼可以輕松移植

安裝 Adafruit PCA9685 庫

要開始讀取傳感器數據,您需要安裝 Adafruit_PWMServo 庫(我們的 github 存儲庫中的代碼)。它可從 Arduino 庫管理器獲得,因此我們建議使用它。

從 IDE 打開庫管理器...并輸入 adafruit pwm 以找到庫。點擊安裝

我們還有一個關于 Arduino 庫安裝的很棒的教程

http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

使用示例代碼進行測試:

首先確保關閉 Arduino IDE 的所有副本。

接下來打開 Arduino IDE 并選擇 File->Examples->Adafruit_PWMServoDriver->Servo。這將在 IDE 窗口中打開示例文件。

如果使用突破:

如上一頁所示連接驅動板和舵機。不要忘記為 Vin(3-5V 邏輯電平)和 V+(5V 伺服電源)供電。檢查綠色 LED 是否亮起!

如果使用盾牌:

將擴展板插入您的 Arduino。不要忘記,您還必須為 V+ 接線端子提供 5V 電壓。紅色和綠色 LED 都必須點亮。

如果使用 FeatherWing:

將 FeatherWing 插入您的 Feather。不要忘記,您還必須為 V+ 接線端子提供 5V 電壓。檢查綠色 LED 是否亮起!

連接伺服

單個伺服應插入 PWM #0 端口,第一個端口。您應該看到舵機在大約 180 度范圍內來回掃過。

校準你的舵機

伺服脈沖時序因品牌和型號而異。由于是模擬控制電路,同品牌同型號樣品之間往往存在一定差異。對于精確的位置控制,您需要校準代碼中的最小和最大脈沖寬度以匹配伺服的已知位置。

找到最小值:

使用示例代碼,編輯 SERVOMIN,直到掃描的低點達到最小行程范圍。最好逐漸接近并在達到行程的物理極限之前停止。

找到最大值:

再次使用示例代碼,編輯 SERVOMAX,直到掃描的高點達到最大行程范圍。同樣,最好逐漸接近并在達到行程的物理極限之前停止。

從度數轉換為脈沖長度

Arduino“map()”函數是一種在旋轉度數與校準的 SERVOMIN 和 SERVOMAX 脈沖長度之間進行轉換的簡單方法。假設一個典型的舵機旋轉 180 度;將 SERVOMIN 校準到 0 度位置并將 SERVOMAX 校準到 180 度位置后,您可以使用以下代碼行將 0 到 180 度之間的任何角度轉換為相應的脈沖長度:

pulselength = map(度, 0, 180, SERVOMIN, SERVOMAX);

圖書館參考

setPWMFreq(頻率)

描述

此功能可用于調整 PWM 頻率,它決定了 IC 每秒產生多少完整“脈沖”。換句話說,考慮到脈沖的高段和低段,頻率決定了每個脈沖從開始到結束的持續時間“有多長”。

頻率在 PWM 中很重要,因為將頻率設置得太高且占空比非常小會導致問題,因為信號的“上升時間”(從 0V 到 VCC 所需的時間)可能長于時間信號有效,PWM 輸出將顯得平滑,甚至可能達不到 VCC,這可能會導致許多問題。

參數

freq:表示頻率的數字,單位為 Hz,介于 40 和 1600 之間

例子

以下代碼將 PWM 頻率設置為 1000Hz:

脈寬調制.setPWMFreq(1000)

setPWM(通道,開,關)

描述

此函數設置特定通道上 PWM 脈沖高段的開始(開)和結束(關)。當信號打開和??關閉時,您指定 0..4095 之間的“刻度”值。通道指示 16 個 PWM 輸出中的哪一個應該更新為新值。

參數

channel:應使用新值 (0..15) 更新的通道

on:信號應從低電平轉換為高電平時的刻度(在 0..4095 之間)

off:信號應該從高到低轉換時的刻度(0..4095 之間)

例子

以下示例將導致通道 15 從低開始,進入脈沖約 25% 的高電平(勾選 4096 中的 1024),轉換回低 75% 進入脈沖(勾選 3072),并在最后 25% 的時間內保持低電平脈搏:

pwm.setPWM(15, 1024, 3072)

用作 GPIO

還有一些特殊設置可以完全打開或完全關閉引腳

您可以將引腳設置為完全開啟

pwm.setPWM(pin, 4096, 0);

您可以將引腳設置為完全關閉

pwm.setPWM(pin, 0, 4096);

例子

以下示例將導致通道 15 從低開始,進入脈沖約 25% 的高電平(勾選 4096 中的 1024),轉換回低 75% 進入脈沖(勾選 3072),并在最后 25% 的時間內保持低電平脈搏:

pwm.setPWM(15, 1024, 3072)

用作 GPIO

還有一些特殊設置可以完全打開或完全關閉引腳

您可以將引腳設置為完全開啟

pwm.setPWM(pin, 4096, 0);

您可以將引腳設置為完全關閉

pwm.setPWM(pin, 0, 4096);

poYBAGPV74OAduI5AAAiUW85La4501.png

pYYBAGPV74WAdo2xAABRelL167Y942.png

poYBAGPV74eAPb_lAABi1W9nx0A422.png

bef

代碼

PCA9685

C/C++

? /***************************************************
? This is an example for our Adafruit 16-channel PWM & Servo driver
? Servo test - this will drive 8 servos, one after the other on the
? first 8 pins of the PCA9685
? ?
? Pick one up today in the adafruit shop!
? ------> http://www.adafruit.com/products/815
? ?
? These drivers use I2C to communicate, 2 pins are required to
? interface.
? ?
? Adafruit invests time and resources providing this open source code,
? please support Adafruit and open-source hardware by purchasing
? products from Adafruit!
? ?
? Written by Limor Fried/Ladyada for Adafruit Industries.
? BSD license, all text above must be included in any redistribution
? ****************************************************/
? ?
? #include
? #include
? ?
? // called this way, it uses the default address 0x40
? Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
? // you can also call it with a different address you want
? //Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x41);
? // you can also call it with a different address and I2C interface
? //Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40, Wire);
? ?
? // Depending on your servo make, the pulse width min and max may vary, you
? // want these to be as small/large as possible without hitting the hard stop
? // for max range. You'll have to tweak them as necessary to match the servos you
? // have!
? #define SERVOMIN120 // This is the 'minimum' pulse length count (out of 4096)(use135)
? #define SERVOMAX630 // This is the 'maximum' pulse length count (out of 4096)(use615)
? ?
? ?
? // our servo # counter
? uint8_t servonum = 0;
? ?
? void setup() {
? Serial.begin(9600);
? Serial.println("16 channel Servo test!");
? ?
? pwm.begin();
? ?
? pwm.setPWMFreq(60);// Analog servos run at ~60 Hz updates
? }
? ?
? void loop() {
? ?
? pwm.setPWM(0, 0, 135);
? delay(500);
? pwm.setPWM(1, 0, 135);
? delay(500);
? pwm.setPWM(2, 0, 135);
? delay(500);
? pwm.setPWM(3, 0, 135);
? delay(500);
? ?
? pwm.setPWM(0, 0, 615);
? delay(500);
? pwm.setPWM(1, 0, 615);
? delay(500);
? pwm.setPWM(2, 0, 615);
? delay(500);
? pwm.setPWM(3, 0, 615);
? delay(500);
? ?
? pwm.setPWM(0, 0, 135);
? pwm.setPWM(1, 0, 135);
? pwm.setPWM(2, 0, 135);
? pwm.setPWM(3, 0, 135);
? delay(1500);
? ?
? pwm.setPWM(0, 0, 615);
? pwm.setPWM(1, 0, 615);
? pwm.setPWM(2, 0, 615);
? pwm.setPWM(3, 0, 615);
? delay(1500);
? ?
? }

?

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費