摘要:本次實(shí)驗(yàn)的采用的舵機(jī)是度伺服,控制關(guān)系如下二舵機(jī)電路圖三高級(jí)定時(shí)器產(chǎn)生波相比普通定時(shí)器初始化中需要多加兩句重復(fù)計(jì)數(shù)器的值主輸出使能四代碼電機(jī)初始化延遲初始化電機(jī)管腳初始化尋跡管腳初始化。
一、舵機(jī)工作原理
? ? 控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流的偏置電壓。它內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過(guò)級(jí)聯(lián)減速此輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動(dòng)。 舵機(jī)的控制:一般需要一個(gè)20ms左右的時(shí)基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍內(nèi)的角度控制脈沖部分。本次實(shí)驗(yàn)的采用的舵機(jī)是180度伺服,控制關(guān)系如下:
?二、舵機(jī)電路圖
三、高級(jí)定時(shí)器產(chǎn)生PWM波
相比普通定時(shí)器1初始化中需要多加兩句:
//重復(fù)計(jì)數(shù)器的值TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0;//主輸出使能 TIM_CtrlPWMOutputs(TIM1, ENABLE);
四、代碼
main.c
#include "motor.h"#include #include "delay.h"#include "stm32f10x.h"#include "followline.h"#include "ultrasonic.h"#include "steeringengine.h"u8 UART3_data,UART1_data;u8 UART3_rcv[20],UART3_rcv_count;u8 UART1_rcv[50],UART1_rcv_count,Uart1_finish;int main(void){// motor_pwm_TIME4_init(71,999);//電機(jī)PWM初始化 delay_init();//延遲初始化// motor_GPIO_init();//電機(jī)管腳初始化、尋跡管腳初始化。// uart_init1(9600);// hwbz_gpio_init(); steer_gpio_init(); steering_pwm_TIME1_init(7199,199); //int right_2=0,right_1=0 ,left_2=0,left_1=0; while(1) { TIM_SetCompare4(TIM1,jd45); delay_ms(800); TIM_SetCompare4(TIM1,jd90); delay_ms(800); TIM_SetCompare4(TIM1,jd180); delay_ms(800); }}
steeringengine.c?
#include "steeringengine.h"void steer_gpio_init(void ){ GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_11; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStruct);}void steering_pwm_TIME1_init(int presc,int arr){ //定義定時(shí)器的結(jié)構(gòu)體 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; //定義定時(shí)器PWM輸出通道的結(jié)構(gòu)體 TIM_OCInitTypeDef TIM_OCInitStruct; //打開(kāi)TIME1的時(shí)鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //配置TIME1結(jié)構(gòu)體的參數(shù) TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1 ; TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInitStruct.TIM_Prescaler = presc; TIM_TimeBaseInitStruct.TIM_Period =arr; //重復(fù)計(jì)數(shù)器的值 TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseInitStruct); //配置TIME1通道結(jié)構(gòu)體的參數(shù) TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OCInitStruct.TIM_OutputState =TIM_OutputState_Enable ; TIM_OCInitStruct.TIM_Pulse =0; //TIME4通道4初始化 TIM_OC4Init(TIM1, &TIM_OCInitStruct); //使能TIME4通道1的預(yù)存寄存器 TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable); // 主輸出使能,當(dāng)使用的是通用定時(shí)器時(shí),這句不需要 TIM_CtrlPWMOutputs(TIM1, ENABLE); // TIM_ARRPreloadConfig(TIM1, ENABLE); //使能TIME4 TIM_Cmd(TIM1, ENABLE); }
steeringengine.h
#ifndef __STEERINGENGINE_H__#define __STEERINGENGINE_H__#include "stm32f10x_gpio.h"#include "stm32f10x_tim.h"#include "stm32f10x_rcc.h"#define jd0 5#define jd45 10#define jd90 15#define jd135 20#define jd180 25void steer_gpio_init(void );void steering_pwm_TIME1_init(int presc,int arr);#endif
?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/119359.html
摘要:中央對(duì)齊模式向上計(jì)數(shù)時(shí)當(dāng)時(shí)通道為無(wú)效電平,否則為有效電平向下計(jì)數(shù)時(shí)一旦通道為有效電平,否則為無(wú)效電平。一般來(lái)說(shuō),舵機(jī)接收的信號(hào)頻率為,即周期為。 STM32——P...
摘要:只能在度到度之間運(yùn)動(dòng),超過(guò)范圍,舵機(jī)輕則齒輪打壞,重則燒壞內(nèi)部電路舵機(jī)能度轉(zhuǎn)動(dòng)能控制轉(zhuǎn)速。相關(guān)定時(shí)器的參數(shù)設(shè)置定時(shí)器為例編寫相關(guān)的函數(shù)文件相關(guān)函數(shù)開(kāi)啟添加定時(shí)器的通道和通道的生成開(kāi)啟使能函數(shù),放置于到中的用戶代碼區(qū)。 ...
摘要:一般調(diào)高飽和度會(huì)降低中相對(duì)較低的數(shù)值,凸顯主要顏色的純度。對(duì)當(dāng)前唯一的方法霍夫梯度法,它表示在檢測(cè)階段圓心的累加器閾值。第八個(gè)參數(shù),類型的有默認(rèn)值,表示圓半徑的最小值。 目錄 效果展示? 基礎(chǔ)理論(HSV) 為什么用HSV空間而不是RGB空間? HSV 1、Hue(色相) 2、Value(明...
摘要:延時(shí)函數(shù)初始化定時(shí)器初始化對(duì)應(yīng)度對(duì)應(yīng)度對(duì)應(yīng)度對(duì)應(yīng)度對(duì)應(yīng)度驅(qū)動(dòng)模塊驅(qū)動(dòng)程序主函數(shù)延時(shí)函數(shù)初始化初始化舵機(jī)驅(qū)動(dòng) 目錄 1、51定時(shí)器控制單個(gè)舵機(jī) 2、51定時(shí)器控制多路舵機(jī) 3、stm32控制舵機(jī) 4、pca9685驅(qū)動(dòng)模塊 1、51定時(shí)器控制單個(gè)舵機(jī) 舵機(jī)的控制一般需要一個(gè)20ms左右的時(shí)基脈...
摘要:較高時(shí),電機(jī)運(yùn)行連續(xù)平穩(wěn)噪音小,但器件功耗會(huì)隨頻率升高而增大較低時(shí),利于降低功耗,并能提高調(diào)速線性度,但過(guò)低的頻率可能導(dǎo)致電機(jī)轉(zhuǎn)動(dòng)連貫性的降低。通常時(shí),器件能夠穩(wěn)定的控制電機(jī)。 一、驅(qū)動(dòng)芯片介紹 TB6612?的的用法: ? ? ?TB6612?是雙驅(qū)動(dòng),也就是可以驅(qū)動(dòng)兩個(gè)電機(jī)下面分別是控制...
閱讀 937·2021-09-07 09:58
閱讀 1487·2021-09-07 09:58
閱讀 2881·2021-09-04 16:40
閱讀 2503·2019-08-30 15:55
閱讀 2410·2019-08-30 15:54
閱讀 1368·2019-08-30 15:52
閱讀 429·2019-08-30 10:49
閱讀 2604·2019-08-29 13:21