單片機學習(16)--直流電機驅動

直流電機驅動

  • 15.1直流電機驅動基礎知識
    • 1.直流電機介紹
    • 2.電機驅動電路
    • 3.PWM介紹
  • 15.2LED呼吸燈和直流電機調速
    • 1.LED呼吸燈代碼
    • 2.直流電機調速
      • (1)產生PWM的方法
      • (2)工程目錄
      • (3)main.c函數

15.1直流電機驅動基礎知識

1.直流電機介紹

直流電機是一種將電能轉換為機械能的裝置。一般的直流電機有兩個電極,當電極正接時,電機正轉,當電極反接時,電機反轉
直流電機主要由永磁體(定子)、線圈(轉子)和換向器組成
除直流電機外,常見的電機還有步進電機、舵機、無刷電機、空心杯電機等
在這里插入圖片描述

2.電機驅動電路

在這里插入圖片描述

3.PWM介紹

PWM(Pulse Width Modulation)即脈沖寬度調制,在具有慣性的系統中,可以通過對一系列脈沖的寬度進行調制,來等效地獲得所需要的模擬參量,常應用干電機控速、開關電源等領域PWM重要參數:
頻率=1/Ts
占空比=ToN/Ts
精度=占空比變化步距

在這里插入圖片描述

15.2LED呼吸燈和直流電機調速

1.LED呼吸燈代碼

只有一個main函數

#include <REGX52.H>sbit LED=P2^0;void Delay(unsigned int t)
{while(t--);
}
void main()
{unsigned char Time,i;	while(1){for(Time=0;Time<100;Time++){for(i=0;i<20;i++){LED=0;Delay(Time);LED=1;Delay(100-Time);}}for(Time=100;Time>0;Time--){for(i=0;i<20;i++){LED=0;Delay(Time);LED=1;Delay(100-Time);}}}
}

2.直流電機調速

(1)產生PWM的方法

在這里插入圖片描述

(2)工程目錄

在這里插入圖片描述

(3)main.c函數

#include <REGX52.H>
#include "Key.h"
#include "Delay.h"
#include "Timer0.h"
#include "Nixie.h"sbit Motor=P1^0;
unsigned char Counter,Compare;
unsigned char KeyNum,Speed;
void main()
{Timer0_Init();Compare=5;while(1){KeyNum=Key();if(KeyNum==1){Speed++;Speed%=4;if(Speed==0){Compare=0;}if(Speed==1){Compare=50;}if(Speed==2){Compare=75;}if(Speed==3){Compare=100;}}Nixie(1,Speed);}
}void Timer0_Routine() interrupt 1
{TL0 = 0xA4;TH0 = 0xFF;Counter++;if(Counter>=100){Counter=0;}if(Counter<Compare){Motor=1;}else{Motor=0;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37980.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37980.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37980.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

isdecimal()方法——判斷字符串是否只包含十進制字符

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 語法參考 isdecimal()方法用于檢查字符串是否只包含十進制字符。這種方法只適用于unicode對象。 注意&#xff1a;定義一個十進制字符串&#xff0c…

linux高級編程(進程)(2)

父子進程的關系&#xff1a; 子進程是父進程的副本。子進程獲得父進程數據段&#xff0c;堆&#xff0c;棧&#xff0c;正文段共享。&#xff08;子分配了一塊新的內存&#xff0c;但是代碼段指向父進程&#xff0c;也就是說不論幾個子進程都只有一個code段&#xff09; …

SpringCloud中復制模塊然后粘貼,文件圖標缺少藍色方塊

再maven中點擊&#xff0b;號&#xff0c;把當前pom文件交給maven管理即可

RabbitMq的基礎及springAmqp的使用

RabbitMq 官網:RabbitMQ: One broker to queue them all | RabbitMQ 什么是MQ&#xff1f; mq就是消息隊列&#xff0c;消息隊列遵循這先入先出原則。一般用來解決應用解耦&#xff0c;異步消息&#xff0c;流量削峰等問題&#xff0c;實現高性能&#xff0c;高可用&#xf…

容器技術-docker2

容器化技術Docker Docker介紹 官網&#xff1a; docker.io docker.com 公司名稱&#xff1a;原名dotCloud 14年改名為docker 容器產品&#xff1a;docker 16年已經被更名為Moby docker-hub docker.io docker容器歷史 和虛擬機一樣&#xff0c;容器技術也是一種資源隔…

java基于ssm+jsp 二手手機回收平臺系統

1前臺首頁功能模塊 二手手機回收平臺系統&#xff0c;在系統首頁可以查看首頁、手機商城、新聞資訊、我的、跳轉到后臺、購物車等內容&#xff0c;如圖1所示。 圖1前臺首頁功能界面圖 用戶注冊&#xff0c;在用戶注冊頁面可以填寫賬號、密碼、姓名、手機、郵箱、照片、地址、…

深度解析RocketMq源碼-消息推送、持久化、消費全流程

1.緒論 前面的幾篇文章都剖析了broker的存儲文件。那么生產者發送一條消息到達broker過后是如何處理的&#xff0c;這條消息結果什么處理過后&#xff0c;消費者才能夠消費這條消息。接下來&#xff0c;帶我們將仔細剖析一下一條消息從生產者生產消息&#xff0c;到到達broker…

在線字節大端序小端序轉換器

具體請前往&#xff1a;在線字節大端序小端序轉換器

操作系統期末復習真題四

一、前言&#x1f680;&#x1f680;&#x1f680; 小鄭在刷題的過程中幫大家整理了一些常見的考試題目&#xff0c;以及易于遺忘的知識點&#xff0c;希望對大家有所幫助。 二、正文?????? 1.OS的不確定性是指(ABC)。 A.程序的運行次序不確定 B.程序多次運行的時間不…

獨立開發者系列(13)——示例理解面向對象與過程

專業術語晦澀難懂&#xff0c;特別是當你沒有寫過稍微大點的系統的時候&#xff0c;你要理解這里面的區別很難。 從最簡單的早期我們學習開始&#xff0c;我們除了練習hello world掌握了入門函數之后&#xff0c;基本都再練習算法。比如水仙花數的獲取&#xff0c;冒泡排序&…

Redis的使用和原理

目錄 1.初識Redis 1.1 Redis是什么&#xff1f; 1.2 Redis的特性 1.2.1 速度快 1.2.2 基于鍵值對的數據結構服務器 1.2.3 豐富的功能 1.2.4 簡單穩定 1.2.5 持久化 1.2.6 主從復制 1.2.7 高可用和分布式 1.3 Redis的使用場景 1.3.1 緩存 1.3.2 排行榜系統 1.3.3 計數器應用 1.3…

【計算機網絡】HTTPS——更安全的HTTP通信(個人筆記)

學習日期&#xff1a;2024.6.26 內容摘要&#xff1a;HTTPS存在的意義、特點和工作方式 HTTP的缺點——易竊聽、偽裝、篡改 在Web及網絡基礎中&#xff0c;我們已經知道了網頁是怎么打開的&#xff0c;HTTP確實是一個相當優秀和方便的協議&#xff0c;但HTTP也有很多不足&…

【操作系統期末速成】 EP04 | 學習筆記(基于五道口一只鴨)

文章目錄 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;??????2.1 考點七&#xff1a;進程通信2.2 考點八&#xff1a;線程的概念2.3 考點九&#xff1a;處理機調度的概念及原則2.4 考點十&#xff1a;調度方式與調度算法 一、前言&#x1f680;…

排序(冒泡排序、選擇排序、插入排序、希爾排序)-->深度剖析(一)

歡迎來到我的Blog&#xff0c;點擊關注哦&#x1f495; 前言 排序是一種基本的數據處理操作&#xff0c;它涉及將一系列項目重新排列&#xff0c;以便按照指定的標準&#xff08;通常是數值大小&#xff09;進行排序。在C語言中&#xff0c;排序算法是用來對元素進行排序的一系…

FPGA 690T NVME高速存儲設計

高速存儲設計會有各種需求的考慮&#xff0c;那么對應的方案也不完全相同&#xff0c;這篇文章出一期純FPGA實現的高速存儲方案。用純fpga實現高速存儲板卡有易國產化&#xff0c;功耗低和體積小等特點&#xff0c;缺點就是靈活性不是很強&#xff0c;實現標準ext4和nfs文件系統…

計算機的錯誤計算(十六)

摘要 計算機的錯誤計算&#xff08;十五&#xff09;中歷史事件給我們的啟示或警示。 計算機的錯誤計算&#xff08;十五&#xff09;介紹了歷史上發生的一些事件。從這些事件我們可以得到一些啟示或警示。 若不是油氣平臺的沉沒&#xff0c;設計者會得出精度低了嗎&#x…

信息盲盒系統設計

信息盲盒系統是一種結合了隨機性和趣味性的信息傳遞和接收方式&#xff0c;類似于實體盲盒的概念&#xff0c;但在數字領域應用。這種系統通常用于增加用戶參與度、提升用戶體驗或作為營銷策略的一部分。設計一個信息盲盒系統需要考慮以下幾個關鍵要素&#xff1a; 1. 定義目標…

數據倉庫建模基礎理論-01-為什么需要數據建模?

一、什么是數據模型&#xff1f; 數據模型是數據庫的基礎結構&#xff0c;用于描述和組織數據的方式。 它不僅是數據庫的底層結構&#xff0c;還是一個概念性工具&#xff0c;幫助理解數據的含義和關系。 數據模型包括數據本身、數據之間的關系、數據的語義&#xff08;含義和…

C++ | Leetcode C++題解之第206題反轉鏈表

題目&#xff1a; 題解&#xff1a; class Solution { public:ListNode* reverseList(ListNode* head) {if (!head || !head->next) {return head;}ListNode* newHead reverseList(head->next);head->next->next head;head->next nullptr;return newHead;} …

在Ubuntu 16.04上安裝和配置GitLab的方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 簡介 GitLab CE&#xff08;Community Edition&#xff09;是一個開源應用程序&#xff0c;主要用于托管 Git 倉庫&#xff0c;并提供額…