chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

脈沖寬度調制電路的制作

454398 ? 來源:wv ? 2019-10-28 08:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:說明

脈沖寬度調制電路的制作

這個世界上的每個人都有一些慣性。每次通電時,電動機都會旋轉。一旦關閉電源,它將趨于停止。但是它不會立即停止,需要一些時間。但是在它完全停止之前,它再次通電!因此,它開始運動。但是即使到現在,也要花一些時間才能達到最大速度。但是在它發(fā)生之前,它已經關閉電源,依此類推。因此,此動作的整體效果是電動機連續(xù)旋轉,但轉速較低。

脈沖寬度調制(PWM)是一種相對較新的功率切換技術,用于在完全打開和完全關閉水平。通常,數字脈沖具有相同的開啟和關閉時間周期,但是在某些情況下,我們需要數字脈沖具有更多/更少的開啟時間/關閉時間。在PWM技術中,我們創(chuàng)建具有不相等數量的導通和截止狀態(tài)的數字脈沖,以獲得所需的中間電壓值。

占空比由一個完整數字脈沖中高電壓持續(xù)時間的百分比定義。可以通過以下方式計算:

占空比的百分比= T/T(周期)x 100

讓我們提出問題陳述。我們需要生成一個占空比為45%的50 Hz PWM信號。

頻率 = 50 Hz

時間段,T = T(on)+ T(off)= 1/50 = 0.02 s = 20 ms

占空比 = 45%

因此,根據上述方程式求解,我們得到

T(on)= 9毫秒

T(off )= 11毫秒

步驟2:AVR計時器-PWM模式

制作PWM時,AVR包含單獨的硬件!通過使用它,CPU指示硬件產生特定占空比的PWM。 ATmega328具有6個PWM輸出,其中2個位于定時器/計數器0(8位)上,2個位于定時器/計數器1(16位)上,2個位于定時器/計數器2(8位)上。定時器/計數器0是ATmega328上最簡單的PWM器件。定時器/計數器0可以在三種模式下運行:

快速PWM

相位和頻率校正PWM

相位校正PWM

每個這些模式可以反轉也可以不反轉。

在PWM模式下初始化Timer0:

TCCR0A | =(1 《-設置WGM:快速PWM

TCCR0A | =(1 《-設置比較輸出模式A ,B

TCCR0B | =(1 《-使用預分頻器= 256設置計時器

:光強度測量-ADC和LDR。

Light依存電阻器(LDR)是一種傳感器,當光落在其表面變化時會改變其電阻

LDR由半導體材料制成,以使其具有光敏特性。這些LDR或光電電阻的工作原理是“光電導”?,F在,該原理說的是,每當光落在LDR的表面上時(在這種情況下),元件的電導就會增加,換句話說,當光落在LDR的表面時,LDR的電阻會減小。由于它是表面上使用的半導體材料的特性,因此實現了LDR電阻降低的特性。 LDR通常用于檢測光的存在或測量光的強度。

要將外部連續(xù)信息(模擬信息)傳輸到數字/計算系統(tǒng)中,必須將其轉換為整數(數字)。 )值。此類轉換由模數轉換器ADC)進行。將模擬值轉換為數字值的過程稱為模擬到數字轉換。簡而言之,模擬信號是我們周圍的真實世界信號,如聲音和光。

數字信號是數字或數字格式的模擬等效項,微控制器等數字系統(tǒng)已經很好地理解了。 ADC是一種可測量模擬信號并產生相同信號的數字等效信號的硬件。 AVR微控制器具有內置的ADC功能,可將模擬電壓轉換為整數。 AVR將其轉換為0到1023范圍內的10位數字。

我們使用帶有LDR的分壓器電路的電壓電平進行模數轉換,以測量光強度。

初始化ADC:

TADCSRA | =(1 《-啟用ADC

ADCSRA | =(1 《-設置ADC預分頻器= 128

ADMUX =(1 《-設置參考電壓= AVCC; -設置輸入通道= ADC0

觀看視頻,并詳細介紹ADC AVR微控制器:AVR微控制器。光強度測量。 ADC和LDR

第4步:控制器直流電動機和雙H橋電動機驅動器模塊-L298N

我們使用直流電動機驅動器是因為微控制器通常不能提供不超過100毫安的電流。微控制器很聰明,但功能不強。該模塊將為微控制器增加一些動力,以驅動大功率直流電動機。它可以同時控制2個直流電機,每個電機最多2安培,或者一個步進電機。我們可以使用PWM及其電機的旋轉方向來控制速度。此外,它還用于驅動LED膠帶的亮度。

引腳說明:

OUT1 和 OUT2 端口,用于連接直流電動機。 OUT3 和 OUT4 用于連接 LED膠帶。

ENA 和 ENB 是啟用引腳:通過將 ENA 連接到高電平(+ 5V),可以啟用端口 OUT1 和 OUT2 。

如果將 ENA 引腳連接到低電平(GND),則會禁用 OUT1 和 OUT2 。同樣,對于 ENB 和 OUT3 和 OUT4 。

IN1 到 IN4 是將連接到AVR的輸入引腳。

如果 IN1 -高(+ 5V), IN2 -低(GND),則 OUT1 變高,并且 OUT2 變低,因此我們可以驅動電動機。

如果 IN3 -高(+ 5V), IN4 -低( GND), OUT4 變高而 OUT3 變低,因此LED膠帶燈亮。

如果要反轉電動機只是反轉 IN1 和 IN2 極性,對于 IN3 和 IN4 也是如此。

將 PWM 信號應用于 ENA 和 ENB ,您可以控制兩個不同輸出端口上的電動機速度。

板可以接受從 7V 到 12V 的標稱值。

跳線:共有三個跳線引腳; 跳線1 :如果您的電動機需要超過 12V 的電源,則必須斷開跳線1 并施加所需的電壓(最大 35V )在 12V 終端上。帶上另一個 5V 電源,并在 5V 端子上輸入。是的,如果您需要施加超過 12V 的電壓(移除了 Jumper 1 時),則必須輸入 5V 。

5V 輸入用于 IC 的正常運行,因為卸下跳線將禁用內置的 5V 穩(wěn)壓器并防止更高的輸入來自 12V 端子的電壓。

如果您的電源介于 7V 至 12V之間,則 5V 端子用作輸出。 ,如果您施加的電壓大于 12V ,則用作輸入

,并且跳線被移除。

跳線2和跳線3:您必須移除這兩個跳線,而必須輸入來自微控制器的啟用和禁用信號,大多數用戶更喜歡移除這兩個跳線并施加來自微控制器的信號。

如果您將這兩個跳線保留為 OUT1 至 OUT4 將始終處于啟用狀態(tài)。記住 OUT1 和 OUT2 的 ENA 跳線。 OUT3 和 OUT4 的 ENB 跳線。

步驟5:用C語言編寫程序代碼。將HEX文件上傳到微控制器閃存中

使用集成開發(fā)平臺-Atmel Studio以C代碼編寫和構建AVR微控制器應用程序。

#ifndef F_CPU

#define F_CPU 16000000UL // telling controller crystal frequency (16 MHz AVR ATMega328P)

#endif

#include //header to enable data flow control over pins. Defines pins, ports, etc.

#include //header to enable delay function in program

#define BUTTON1 2 // button switch connected to port B pin 2

#define DEBOUNCE_TIME 25 // time to wait while “de-bouncing” button

#define LOCK_INPUT_TIME 300 // time to wait after a button press

// Timer0, PWM Initialization

void timer0_init()

{

// set up timer OC0A,OC0B pin in toggle mode and CTC mode

TCCR0A |= (1 《《 COM0A1)|(1 《《 COM0B1)|(1 《《 WGM00)|(1 《《 WGM01);

// set up timer with prescaler = 256

TCCR0B |= (1 《《 CS02);

// initialize counter

TCNT0 = 0;

// initialize compare value

OCR0A = 0;

}

// ADC Initialization

void ADC_init()

{

// Enable ADC, sampling freq=osc_freq/128 set prescaler to max value, 128

ADCSRA |= (1《

ADMUX = (1《// Select Voltage Reference (AVCC)

// Button switch status

unsigned char button_state()

{

/* the button is pressed when BUTTON1 bit is clear */

if (!(PINB & (1《

{

_delay_ms(DEBOUNCE_TIME);

if (?。≒INB & (1《

}

return 0;

}

// Ports Initialization

void port_init()

{

DDRB =0b00011011; //PB0-IN1, PB1-IN2,PB3-IN3, PB4-IN4, PB2 - BUTTON SWITCH DIRECT

PORTB=0b00010110;

DDRD =0b01100000; //PD5-ENB (OC0B), PD6-ENA (OC0A)

PORTD=0b00000000;

DDRC =0b00000000; // PC0-ADC

PORTC=0b00000000; // Set all pins of PORTC low which turns it off.

}

// This function reads the value of the analog to digital convert.

uint16_t get_LightLevel()

{

_delay_ms(10); // Wait for some time for the channel to get selected

ADCSRA |= (1《 // Start the ADC conversion by setting ADSC bit. Write 1 to ADSC

while(ADCSRA & (1《// Wait for conversion to complete

// ADSC becomes 0 again till then, run loop continuously

_delay_ms(10);

return(ADC); // Return the 10-bit result

}

// This function Re-maps a number from one range (0-1023) to another (0-100)。

uint32_t map(uint32_t x, uint32_t in_min, uint32_t in_max, uint32_t out_min, uint32_t out_max)

{

return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;

}

int main(void)

{

uint16_t i1=0;

port_init();

timer0_init();

ADC_init(); // initialization ADC

while (1)

{

i1=map(get_LightLevel(),0,1023,0,100);

OCR0A=i1; // Set output compare register channel A

OCR0B=100-i1; // Set output compare register channel B (inverted)

if (button_state()) // If the button is pressed, toggle the LED‘s state and delay for 300ms (#define LOCK_INPUT_TIME)

{

PORTB ^= (1《《0); // toggling the current state of the pin IN1.

PORTB ^= (1《《1); // toggling the current state of the pin IN2. Reverse the rotational direction of the motor

PORTB ^= (1《《3); // toggling the current state of the pin IN3.

PORTB ^= (1《《4); // toggling the current state of the pin IN4. LED Tape is turn off/on.

_delay_ms(LOCK_INPUT_TIME);

}

};

return (0);

}

編程完成了。接下來,將項目代碼構建并編譯到十六進制文件中。

將HEX文件上傳到微控制器閃存中:

在DOS提示符窗口中鍵入以下命令:

avrdude –c [程序員名稱] –p m328p –u –U flash:w:[您的十六進制文件的名稱]

在我的情況下是:

avrdude –c ISPProgv1 –p m328p –u –U flash:w:PWM.hex

此命令將十六進制文件寫入微控制器的內存。觀看視頻,詳細介紹微控制器閃存的刻錄:微控制器閃存的刻錄。..

好!現在,微控制器按照我們程序的指令工作。讓我們檢查一下!

步驟6:電路

根據原理圖連接組件

插入電源,并且可以正常工作!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    集成了多功能數字音頻信號處理功能的單芯片全數字音頻放大器

    全數字音頻放大器的工作原理基于脈沖寬度調制(PWM)技術,通過數字信號處理實現音頻信號的放大與還原。
    的頭像 發(fā)表于 10-21 09:40 ?197次閱讀
    集成了多功能數字音頻信號處理功能的單芯片全數字音頻放大器

    【EK-RA6E2開發(fā)指南】PWM輸出

    脈沖寬度調制(PWM) ,是英文“Pulse Width Modulation” 的縮寫,簡稱脈寬調制,是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。簡單一點,就是對脈沖寬
    的頭像 發(fā)表于 09-23 18:17 ?1953次閱讀
    【EK-RA6E2開發(fā)指南】PWM輸出

    舵機PWM信號介紹!

    舵機 PWM 信號介紹 PWM(Pulse Width Modulation,脈沖寬度調制)信號是舵機的核心控制方式,其通過脈沖寬度變化來精確指令舵機輸出軸的旋轉角度。以下從信號特性、參數標準
    的頭像 發(fā)表于 08-22 10:59 ?1454次閱讀

    化繁為簡!虹科基于脈沖寬度調制(PWM)的電機調控方案

    在設備開發(fā)與產線測試中,實現電機精確調速、正反轉控制、位置復位及循環(huán)計數是常見需求。傳統(tǒng)方案往往需要:電機驅動器 + 控制器 (PLC/單片機) + 信號采集模塊 + 繁復接線與調試。這不僅增加了系統(tǒng)復雜度、成本和故障點,也拖慢了調試與部署效率。 虹科PWM電機調控方案提出一種高度集成的解決思路:通過單一設備融合PWM驅動、邏輯控制、信號I/O與參數靈活配置,簡化系統(tǒng),提升可控性。
    的頭像 發(fā)表于 08-19 18:04 ?430次閱讀
    化繁為簡!虹科基于<b class='flag-5'>脈沖寬度調制</b>(PWM)的電機調控方案

    KA7500B脈沖寬度調制方式的開關穩(wěn)壓器控制器電路

    ICF KA7500B是脈沖寬度調制方式的開關穩(wěn)壓器控制器電路,由5V基準電壓、振蕩器、誤差放大器、比較器、FF (觸發(fā)器) 、輸出控制電路、輸出晶體管和死區(qū)時間比較器等電路構成,輸出
    發(fā)表于 08-18 17:10 ?0次下載

    舵機如何控制?

    舵機是一種高精度的角度控制執(zhí)行器,廣泛應用于機器人、遙控模型、自動化設備等場景。其控制核心是通過 PWM(脈沖寬度調制)信號 調節(jié)角度,配合內部閉環(huán)反饋實現精準定位。以下從原理、控制方式、關鍵參數
    的頭像 發(fā)表于 08-15 10:23 ?1415次閱讀

    PWM逆變器的不同調制方法對比

    PWM為脈沖寬度調制(Pulse Width Modulation)的簡稱。由于PWM逆變器的交流側只能輸出不同的電平而非連續(xù)的正弦波,因此需要采用PWM調制技術產生幅值相同、寬度不等的脈沖
    的頭像 發(fā)表于 07-16 14:00 ?3331次閱讀
    PWM逆變器的不同<b class='flag-5'>調制</b>方法對比

    STM32H7開啟單脈沖模式 PWM波脈沖寬度不受CCR控制怎么解決?

    100us產生一次更新事件 我發(fā)現脈沖寬度竟然是50而不是25當我調整CCR的值 發(fā)現脈沖寬度不受影響 調整ARR值分別為40 30 脈沖寬度 依次變?yōu)?9 69這與參考手冊有關章節(jié)并不符合
    發(fā)表于 06-18 07:14

    開關電源三種控制模式:PWM/PFM/PSM

    PWM/PFM/PSM 三種控制模式的定義通常來說,開關電源(DC-DC)有三種最常見的調制方式分別為: 脈沖寬度調制(PWM) 脈沖頻率調制(PFM)
    發(fā)表于 06-09 16:11

    探索PWM技術:數字世界的模擬魔法

    在科技飛速發(fā)展的今天,我們身邊充斥著各種智能設備和創(chuàng)新技術。其中,脈沖寬度調制(PWM)技術就像一位神奇的魔法師,在數字與模擬的交匯處施展魔法,讓我們的生活變得更加便捷和舒適。那么,究竟什么是PWM
    的頭像 發(fā)表于 05-12 09:52 ?934次閱讀
    探索PWM技術:數字世界的模擬魔法

    UC2572 負輸出反激式脈沖寬度調制器數據手冊

    模式作的誤差放大器, 一個振蕩器、一個帶鎖存邏輯的 PWM 比較器和一個 0.5A 峰值 柵極驅動器。UC3572 包括一個欠壓鎖定電路,以確保 在任何開關活動之前,都存在足夠的輸入電源電壓 發(fā)生,并逐個脈沖限流。
    的頭像 發(fā)表于 04-08 09:25 ?748次閱讀
    UC2572 負輸出反激式<b class='flag-5'>脈沖寬度調制</b>器數據手冊

    【瑞薩RA2L1入門學習】+PWM呼吸燈

    電源的輸出電壓在工作條件變化時保持恒定,是利用微處理器的數字信號對模擬電路進行控制的一種非常有效的技術。脈沖寬度調制是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量
    發(fā)表于 03-30 22:28

    請問DLP4500觸發(fā)器脈沖寬度可以調整嗎?

    DLP4500觸發(fā)器脈沖寬度可以調整嗎?使用DLP LightCrafter 4500 EVM GUI似乎不能對這一參數進行調整。需要將DLP投影儀的觸發(fā)信號輸給Point Grey相機進行同步,但由于脈沖寬度太小無法觸發(fā)成功,希望能將這一參數調整。請問如何解決該問題,
    發(fā)表于 02-28 08:13

    ICF KA7500B電壓控制 PWM 調制電路

    ICF KA7500B是脈沖寬度調制方式的開關穩(wěn)壓器控制器電路,由5V基準電壓、振蕩器、誤差放大器、比較器、FF (觸發(fā)器) 、輸出控制電路、輸出晶體管和死區(qū)時間比較器等電路構成,輸出
    發(fā)表于 02-20 09:10 ?5次下載

    ICF KA7500B電壓控制PWM調制電路中文手冊

    ICF KA7500B是脈沖寬度調制方式的開關穩(wěn)壓器控制器電路由5V基準電壓、振蕩器、誤差放大器、比較器、FF (觸發(fā)器) 、輸出控制電路、輸出晶體管和死區(qū)時間比較器等電路構成,輸出晶
    發(fā)表于 01-07 13:46 ?1次下載