■ 設計目的
爲了能夠更好地實現測試, 設計一個能夠通過模擬量(0~5V)控制轉角的舵機控制板。
設計參數:
- 通道:2個通道
- 輸入控制電壓範圍:0~5V,對應舵機轉角從最左到最右
□ 設計電路
1. 原理圖與PCB1
▲ 控制器的原理圖
▲ 控制器的PCB版圖以及焊接後的實驗電路板
管腳 | 符號 | 功能描述 |
---|---|---|
1 | +5V | 工作電源 |
2 | GND | 工作電源地 |
3 | TXD | 單片機的UART發送 |
4 | RXD | 單片機的UART接收 |
5 | AD00 | 控制模擬輸入1 |
6 | AD01 | 控制模擬輸入2 |
7 | PUL01 | PWM輸出1 |
8 | PUL02 | PWM輸出2 |
2. 單片機軟件2
-
單片機的工作頻率:35MHz
-
單片機串口命令:
void SerialDebugProcessBuffer(void) {
unsigned int nNumber;
SerialDebugBuffer2Argument();
if(g_ucSDANumber == 0) return;
if(strcmp("hello", (char *)STD_ARG[0]) == 0)
printf("%s is ready !\r\n", VERSION_STRING);
else IFARG0("adset") {
g_ucUARTSetFlag = 0;
} else IFARG0("servo1") {
sscanf(SDA(1), "%d", &nNumber);
g_ucPWM1 = (unsigned char)nNumber;
g_ucUARTSetFlag = 1;
} else IFARG0("servo2") {
sscanf(SDA(1), "%d", &nNumber);
g_ucPWM2 = (unsigned char)nNumber;
g_ucUARTSetFlag = 1;
} else IFARG0("servo12") {
sscanf(SDA(1), "%d", &nNumber);
g_ucPWM1 = (unsigned char)nNumber;
sscanf(SDA(2), "%d", &nNumber);
g_ucPWM2 = (unsigned char)nNumber;
g_ucUARTSetFlag = 1;
}
else printf("Error command : %s !\r\n", STD_ARG[0]);
}
▲ 控制舵機運動情況
※ 結論
● 主要用途
測試模塊可以用於兩個舵機進行獨立的運動。