成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony Neptune開發板PWM驅動SG90伺服舵機

開發 前端
本文介紹如何在Neptune開發板上,使用openHarmony IoT硬件子系統的PWM接口 驅動SG90 伺服舵機。

[[423122]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

本文介紹如何在Neptune開發板上,使用openHarmony IoT硬件子系統的PWM接口 驅動SG90 伺服舵機。

一、環境準備

1.1 開發環境、編譯環境搭建,參考官方文檔,參考鏈接如下:

Neptune開發板的環境搭建及使用

1.2 Neptune開發板 openharmony V1.1.0 LTS 版本獲取:

git clone https://gitee.com/hihopeorg_group/neptune-harmony-os1.1-iot.git

二、材料準備

1、Neptune HarmonyOS物聯網 IOT模組

2、SG90 伺服舵機

3、杜邦線若干

三、接線方法

  • \color{brown}{棕色線}棕色線===>GND
  • \color{yellow}{黃色線}黃色線===>PB0
  • \color{red}{紅色線}紅色線===>5V

4、相關基礎知識介紹

鴻蒙系統IoT硬件子系統提供了一些外設相關的接口,目錄位于:

  1. base/iot_hardware/peripheral/interfaces/kits 

PWM相關接口,接口頭文件為iot_pwm.h,其中用PWM輸出方波的API:

  1. unsigned int IoTPwmStart(unsigned int port, unsigned short duty, unsigned int freq); 

接口參數介紹:

freq:IoTPwmStart接口中freq參數就是PWM實際輸出的方波頻率\color{red}{頻率范圍0-65535}頻率范圍0−65535;

duty:IoTPwmStart接口的duty參數是控制輸出方波的占空比的參數,占空比是指PWM輸出的方波波形的高電平時間占整個方波周期的比例,具體占空比值是 duty /256的比值,,例如想要輸出占空比50%的方波信號,那么duty填的值就要是128;

五、SG90 伺服舵機驅動原理

舵機的控制一般需要一個20ms的時基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內的角度控制脈沖部分

需要產生一個20ms的時基脈沖所需的頻率為50HZ

(f=1/T,二者成反比(其中f為頻率,T為周期)。頻率是單位時間內完成周期性變化的次數,是描述周期運動頻繁程度的量。周期,物體作往復運動或物理量作周而復始的變化時,重復一次所經歷的時間)

占空比 = t / T 相關參數如下:

  • t = 0.5ms------0 °
  • t = 1.0ms------45°
  • t = 1.5ms------90°
  • t = 2.0ms------135°
  • t = 2.5ms------180°

PWM占空比是指在一個周期內,信號處于高電平的時間占據整個信號周期的百分比,由于PWM周期為20ms,所以(以舵機會轉動 45°為例),占空比就應該為1ms/20ms = 5%

六.編寫代碼

有了以上知識,我們就可以編寫代碼了,關鍵代碼如下:

void Servo_Angle_Control(uint32_t angle)//舵機角度控制函數

  1. void Servo_Angle_Control(uint32_t angle)//舵機角度控制函數 
  2.   float time=0;  
  3.   float dutytime=0; 
  4.   uint16_t duty=0; 
  5.   time=angle/9;                         //計算角度所對應時間 
  6.   dutytime=(time+5)/200;                //公式(angle/90+0.5)/20 
  7.   duty=256*dutytime;                    //計算占空比 
  8.   //printf("angle:%d\n",angle); 
  9.   //printf("duty:%0.1f%%\n",dutytime*100); 
  10.   IoTPwmStart(0,duty,50); 
  11.  
  12. static void PWMTask(void *arg) 
  13.     osDelay(20); 
  14.     (void)arg; 
  15.     int t=5; 
  16.     while (t--) 
  17.     { 
  18.     Servo_Angle_Control(0); 
  19.     osDelay(200); 
  20.     Servo_Angle_Control(45); 
  21.     osDelay(200); 
  22.     Servo_Angle_Control(90); 
  23.     osDelay(200); 
  24.     Servo_Angle_Control(135); 
  25.     osDelay(200); 
  26.     Servo_Angle_Control(180); 
  27.     osDelay(200);  
  28.     } 
  29.     return NULL

七、編譯、燒錄,并測試最后的完成效果。

[[423123]]

文章相關附件可以點擊下面的原文鏈接前往下載

https://harmonyos.51cto.com/resource/1093

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-09-10 10:01:04

鴻蒙HarmonyOS應用

2021-09-08 15:44:56

鴻蒙HarmonyOS應用

2021-10-11 14:14:42

鴻蒙HarmonyOS應用

2022-04-01 15:54:01

DHCP網絡協議開發板

2021-05-10 09:40:29

鴻蒙HarmonyOS應用

2022-01-07 21:11:27

鴻蒙HarmonyOS應用

2022-10-14 15:55:24

環境搭建鴻蒙

2021-12-16 15:14:54

鴻蒙HarmonyOS應用

2023-09-14 15:49:42

PWM鴻蒙

2023-03-02 20:52:11

? PWM脈沖寬度調制

2021-06-25 15:32:13

鴻蒙HarmonyOS應用

2022-02-24 16:39:41

OpenHarmonNiobe開發鴻蒙

2020-12-29 09:59:01

鴻蒙HarmonyOS智能家居

2022-03-03 19:21:50

Harmony鴻蒙操作系統

2020-12-16 10:05:48

鴻蒙開發板Onenet平臺

2023-04-10 09:39:11

2022-08-19 10:54:47

操作系統鴻蒙

2022-05-24 15:55:37

避障小車華為

2022-04-14 11:44:25

LiteOS線程鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费视频网站在线看 | 91精品国产综合久久福利软件 | 国产精品av久久久久久久久久 | 亚洲天堂久久 | 久久99精品久久久 | 91亚洲精选 | 亚洲精品成人av久久 | 欧美高清视频在线观看 | 成年男女免费视频网站 | 久久久久久久成人 | av第一页| 国产精品欧美一区二区 | 精品亚洲一区二区三区 | 久久国产精品一区二区三区 | av香蕉| 特级黄一级播放 | 中国一级毛片免费 | av一级久久| 播放一级黄色片 | 北条麻妃国产九九九精品小说 | 国产午夜亚洲精品不卡 | 伊人国产精品 | 亚洲欧美一区二区三区在线 | 欧美一区不卡 | 欧美性受xxx| 国产精品一区二区在线 | av一区二区在线观看 | 日本欧美大片 | 亚洲一区 中文字幕 | 久久亚洲一区二区三 | 久草视频观看 | 一级片av| av日韩一区 | 国产精品视频一二三区 | 国产成人精品免费视频大全最热 | 国产欧美精品一区 | 一区二区三区免费观看 | 成人欧美一区二区三区黑人孕妇 | 一级黄在线观看 | 久久久久久久久久一区 | 国产精品久久久久久久久免费丝袜 |