国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

用STM32F103C8控制伺服馬達的電路連接及代碼說明

芯情觀察猿 ? 來源:芯情觀察猿 ? 作者:芯情觀察猿 ? 2022-07-04 10:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

伺服馬達(Servo motor)憑準確、小型、高效,易用在機器人領域應用廣泛,其高扭矩特性非常適合升降重物。本項目用電位器改變馬達轉子位置,用STM32F103C8(藍丸)控制伺服馬達,用LCD顯示角度值。

項目BOM表及電路連接

項目BOM表如下:

1、STM32F103C8藍丸板 x1

2、伺服馬達(SG90) x1

3、LCD(16x2) x1

4、電位器 x2

5、面包板 x1

6、跳線 若干


pYYBAGLCUFKAP7dRAACkYYRGUkM70.jpeg?source=d16d100b

?

STM32F103C8有10路ADC引腳(PA0-PB1),本項目使用PA3作為analogread(),通過電位器設定馬達的位置。在STM32引腳的15 PWM引腳中(PA0, PA1, PA2, PA3, PA6, PA7, PA8, PA9, PA10, PB0, PB1, PB6, PB7, PB8, PB9),我們只使用其中的一個引腳,為伺服馬達的PWM引腳(該引腳通常帶有顏色)提供脈沖信號

STM32F103C8與LCD的連接如下:

STM32F103C8 LCD

GND VSS

+5V VDD

電位器中心PIN V0

PB0 RS

GND RW

PB1 E

PB10 D4

PB11 D5

PC13 D6

PC14 D7

+5V A

GND K


伺服馬達與STM32F103C8的連接如下:

STM32F103C8 伺服馬達

+5V RED (+5V)

PA0 ORANGE (PWM pin)

GND BROWN (GND)


poYBAGLCUFKAe1HgAAC4_QBAFKY58.jpeg?source=d16d100b

?

本項目使用兩個電位器:

(1)右邊的用來改變LCD對比度。左邊接5V電源,右邊接地,中間引腳與LCD的V0連接。

(2)左邊的用來模擬輸入電壓的大小,以改變伺服馬達轉子的位置。左邊引腳接3.3V電源,右邊接地,中間連接與的STM32板子的PA3引腳。

編程及代碼說明

如果電腦安裝了Arduino IDE,連接上USB接口,就可以像使用Arduino一樣,對STM32F103C8進行編程了,無須使用FTDI編程器。


首先,載入馬達和LCD函數:

#include

#include


其次,聲明LCD顯示器引腳并初始化。同時還要聲明其他幾個用于PWM和電位器的變量:

const int rs = PB0, en = PB1, d4 = PB10 , d5 = PB11 , d6 = PC13, d7 = PC14;

LiquidCrystal lcd(rs,en,d4,d5,d6,d7);

int servoPin = PA0;

int potPin = PA3;


這里,我們創建了伺服變量,并將其賦予前述聲明的PWM引腳。

Servo servo;

servo.attach(servoPin);


然后,從ADC引腳——PA3讀取模擬值,將模擬電壓(0-3.3)轉換成數字形式(0-4095)。

analogRead(potPin);

該ADC為12位,我們需要獲得的0-170模擬值,要將其均分為(0-4096)數字形式。

angle = (reading/24);


下面指令使伺服馬達以給定的角度旋轉轉軸:

servo.write(angle);

完整的代碼如下:

//INTERFACE SERVO WITH STM32

//CIRCUIT DIGEST

#include //including servo library

#include //including LCD display library

const int rs = PB0, en = PB1, d4 = PB10 , d5 = PB11 , d6 = PC13, d7 = PC14; //declaring pin names and pin numbers of lcd

LiquidCrystal lcd(rs,en,d4,d5,d6,d7);//setting lcd and its paramaters

int servoPin = PA0; //declare and initialize pin for servo output PWM

int potPin = PA3; //potentiometer ADC input

Servo servo; // creating variable servo with datatype Servo

void setup()

{

lcd.begin(16,2); //setting lcd as 16x2

lcd.setCursor(0,0); //setting cursor at first row and first column

lcd.print("CIRCUIT DIGEST"); //puts CIRCUIT DIGEST in LCD

lcd.setCursor(0,1); //setting cursor at second row and first column

lcd.print("SERVO WITH STM32"); //puts SERVO WITH STM32 in LCD

delay(3000); // delays for 3 seconds

lcd.clear(); //clears lcd display

servo.attach(servoPin); //it connects pin PA0 with motor as control feedback by providing pulses

}

void loop()

{

lcd.clear(); //clears lcd

int angle; //declare varible angle as int

int reading; //declare varible reading as int

reading = analogRead(potPin); //read analog value from pin PA3

angle = (reading/24); //it divides ADC the value according to max angle 170 deg

servo.write(angle); //it puts angle value at servo

lcd.setCursor(0,0); //setting cursor at first row and first column

lcd.print("ANGLE:"); //puts ANGLE in LCD

lcd.print(angle); //puts value at angle

delay(100); //delay in time

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • lcd
    lcd
    +關注

    關注

    36

    文章

    4615

    瀏覽量

    177204
  • 伺服馬達
    +關注

    關注

    0

    文章

    24

    瀏覽量

    8354
  • 電路連接
    +關注

    關注

    0

    文章

    12

    瀏覽量

    6881
  • STM32F103C8
    +關注

    關注

    1

    文章

    23

    瀏覽量

    8487
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    國產MCU無縫替代新選擇:FT32F103R8AT7完美兼容STM32F103R8Tx實操解析!

    在全球半導體供應鏈持續波動、國產替代成為產業共識的當下,STM32F103R8Tx作為意法半導體經典的Cortex-M3內核MCU,雖長期占據消費電子、工業控制等領域的核心地位,卻也面臨著交貨周期長
    的頭像 發表于 02-08 15:19 ?1233次閱讀
    國產MCU無縫替代新選擇:FT32<b class='flag-5'>F103R8</b>AT7完美兼容<b class='flag-5'>STM32F103R8</b>Tx實操解析!

    CW32L012與STM32F103的三角運算性能對比

    ? ?CW32L012和STM32F103在定位和性能上差異顯著,在三角函數的運算性能上的對比亦非常直觀。 一、 硬件架構對比(性能基礎) 芯片型號 CW32L012C8 STM32F103C8
    的頭像 發表于 12-29 15:32 ?2305次閱讀
    CW32L012與<b class='flag-5'>STM32F103</b>的三角運算性能對比

    Proteus中配置STM32外部時鐘HSE如何配置

    有大佬會配置Proteus中的STM32F103C8的外部時鐘嗎 這個proteus中打印不出來數據,但是在實物的連接中可以正常打印 代碼如下: 并且配置proteus中的虛擬串口打印波特率也是
    發表于 11-02 13:54

    創建stm32f103c8工程后為什么終端沒有打印Hello RT_Thread?

    創建stm32f103c8工程后為什么終端沒有打印Hello RT_Thread!,程序好像也沒有下載進去
    發表于 09-26 08:24

    CherryUSB +STM32F103C8 example usb cdc device不識別是怎么回事?

    stm32f103c8t6 配置cdc,使用cubeMX 配置生成xxx_msp.c 為什么 放開 CONFIG_USBDEV_SETUP_LOG_PRINT 發現 usb 中斷 一直未能進入 ____usbd_event_ep0_setup_complete_hand
    發表于 09-10 07:03

    STM32F103c8上做DLQR最優控制算法的C編程資料

    這是我近期做的一個項目--基于STM32F103c8的DLQR控制算法的C編程,涉及DLQR最優控制算法、嵌入式STM32F103編程、CM
    發表于 07-23 15:30 ?0次下載

    STM32F103C8出現找不到\'STM32100B_EVAL/stm32100b_eval.h\' file not found的情況,為什么?

    我是STM32新手,這幾天在創建STM32F103C8新工程時,在編譯之後都會出現 ./Libraries/STM32F103_StdPeriph_Driver/incstm32
    發表于 06-18 07:56

    STM32F103C6T6 DCAC逆變器原理圖

    STM32F103C6T6 DCAC逆變器原理圖
    發表于 05-19 17:48 ?2次下載

    stm32f103c8t6主控芯片無人機原理圖

    stm32f103c8t6主控芯片無人機原理圖
    發表于 04-29 17:02 ?3次下載

    基于STM32C8T6控制,FSR402壓力傳感器+oled屏幕顯示代碼

    基于STM32C8T6控制,FSR402壓力傳感器+oled屏幕顯示代碼
    發表于 04-14 15:06 ?8次下載

    STM32F103x8 STM32F103xB單片機數據手冊

    STM32F103x8STM32F103xB單片機數據手冊
    發表于 04-14 14:55 ?8次下載

    創建stm32f103c8工程后為什么終端沒有打印Hello RT_Thread?

    創建stm32f103c8工程后為什么終端沒有打印Hello RT_Thread!,程序好像也沒有下載進去
    發表于 04-01 06:55

    STM32F103C8T6開發板最小系統原理圖

    電子發燒友網站提供《STM32F103C8T6開發板最小系統原理圖》資料免費下載
    發表于 03-24 09:09 ?92次下載

    STM32F103×8/STM32F103×B MCU手冊

    本文提供了STM32F103x8STM32F103xB中密度高性能系列微控制器的訂購信息和機械器件特性。有關整個STMicroelectronics STM32F103xx系列的更
    發表于 03-18 16:37 ?0次下載

    STM32F103C8T6使用CubeIDE燒錄運行報硬件錯誤,相同代碼MDK燒錄卻可以正常運行,為什么?

    自制PCB使用STM32F103C8T6,通過STM32CubeMX生成了CubeIDE項目和MDK項目,編譯下載相同的代碼CubeIDE不能正常執行,經過調試發現進入了硬件錯誤循環。而使用MDK燒錄卻沒有任何問題,完美執行
    發表于 03-12 06:18