一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

脈沖寬度調(diào)制電路的制作

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

掃碼添加小助手

加入工程師交流群

步驟1:說(shuō)明

脈沖寬度調(diào)制電路的制作

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

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

占空比由一個(gè)完整數(shù)字脈沖中高電壓持續(xù)時(shí)間的百分比定義??梢酝ㄟ^(guò)以下方式計(jì)算:

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

讓我們提出問(wèn)題陳述。我們需要生成一個(gè)占空比為45%的50 Hz PWM信號(hào)。

頻率 = 50 Hz

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

占空比 = 45%

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

T(on)= 9毫秒

T(off )= 11毫秒

步驟2:AVR計(jì)時(shí)器-PWM模式

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

快速PWM

相位和頻率校正PWM

相位校正PWM

每個(gè)這些模式可以反轉(zhuǎn)也可以不反轉(zhuǎn)。

在PWM模式下初始化Timer0:

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

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

TCCR0B | =(1 《-使用預(yù)分頻器= 256設(shè)置計(jì)時(shí)器

:光強(qiáng)度測(cè)量-ADC和LDR。

Light依存電阻器(LDR)是一種傳感器,當(dāng)光落在其表面變化時(shí)會(huì)改變其電阻。

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

要將外部連續(xù)信息(模擬信息)傳輸?shù)綌?shù)字/計(jì)算系統(tǒng)中,必須將其轉(zhuǎn)換為整數(shù)(數(shù)字)。 )值。此類(lèi)轉(zhuǎn)換由模數(shù)轉(zhuǎn)換器ADC)進(jìn)行。將模擬值轉(zhuǎn)換為數(shù)字值的過(guò)程稱(chēng)為模擬到數(shù)字轉(zhuǎn)換。簡(jiǎn)而言之,模擬信號(hào)是我們周?chē)恼鎸?shí)世界信號(hào),如聲音和光。

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

我們使用帶有LDR的分壓器電路的電壓電平進(jìn)行模數(shù)轉(zhuǎn)換,以測(cè)量光強(qiáng)度。

初始化ADC:

TADCSRA | =(1 《-啟用ADC

ADCSRA | =(1 《-設(shè)置ADC預(yù)分頻器= 128

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

觀看視頻,并詳細(xì)介紹ADC AVR微控制器:AVR微控制器。光強(qiáng)度測(cè)量。 ADC和LDR

第4步:控制器直流電動(dòng)機(jī)和雙H橋電動(dòng)機(jī)驅(qū)動(dòng)器模塊-L298N

我們使用直流電動(dòng)機(jī)驅(qū)動(dòng)器是因?yàn)槲⒖刂破魍ǔ2荒芴峁┎怀^(guò)100毫安的電流。微控制器很聰明,但功能不強(qiáng)。該模塊將為微控制器增加一些動(dòng)力,以驅(qū)動(dòng)大功率直流電動(dòng)機(jī)。它可以同時(shí)控制2個(gè)直流電機(jī),每個(gè)電機(jī)最多2安培,或者一個(gè)步進(jìn)電機(jī)。我們可以使用PWM及其電機(jī)的旋轉(zhuǎn)方向來(lái)控制速度。此外,它還用于驅(qū)動(dòng)LED膠帶的亮度。

引腳說(shuō)明:

OUT1 和 OUT2 端口,用于連接直流電動(dòng)機(jī)。 OUT3 和 OUT4 用于連接 LED膠帶。

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

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

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

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

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

如果要反轉(zhuǎn)電動(dòng)機(jī)只是反轉(zhuǎn) IN1 和 IN2 極性,對(duì)于 IN3 和 IN4 也是如此。

將 PWM 信號(hào)應(yīng)用于 ENA 和 ENB ,您可以控制兩個(gè)不同輸出端口上的電動(dòng)機(jī)速度。

板可以接受從 7V 到 12V 的標(biāo)稱(chēng)值。

跳線(xiàn):共有三個(gè)跳線(xiàn)引腳; 跳線(xiàn)1 :如果您的電動(dòng)機(jī)需要超過(guò) 12V 的電源,則必須斷開(kāi)跳線(xiàn)1 并施加所需的電壓(最大 35V )在 12V 終端上。帶上另一個(gè) 5V 電源,并在 5V 端子上輸入。是的,如果您需要施加超過(guò) 12V 的電壓(移除了 Jumper 1 時(shí)),則必須輸入 5V 。

5V 輸入用于 IC 的正常運(yùn)行,因?yàn)樾断绿€(xiàn)將禁用內(nèi)置的 5V 穩(wěn)壓器并防止更高的輸入來(lái)自 12V 端子的電壓。

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

,并且跳線(xiàn)被移除。

跳線(xiàn)2和跳線(xiàn)3:您必須移除這兩個(gè)跳線(xiàn),而必須輸入來(lái)自微控制器的啟用和禁用信號(hào),大多數(shù)用戶(hù)更喜歡移除這兩個(gè)跳線(xiàn)并施加來(lái)自微控制器的信號(hào)。

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

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

使用集成開(kāi)發(fā)平臺(tái)-Atmel Studio以C代碼編寫(xiě)和構(gòu)建AVR微控制器應(yīng)用程序。

#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 (?。≒INB & (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);

}

編程完成了。接下來(lái),將項(xiàng)目代碼構(gòu)建并編譯到十六進(jìn)制文件中。

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

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

avrdude –c [程序員名稱(chēng)] –p m328p –u –U flash:w:[您的十六進(jìn)制文件的名稱(chēng)]

在我的情況下是:

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

此命令將十六進(jìn)制文件寫(xiě)入微控制器的內(nèi)存。觀看視頻,詳細(xì)介紹微控制器閃存的刻錄:微控制器閃存的刻錄。..

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

步驟6:電路

根據(jù)原理圖連接組件

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    PWM逆變器的不同調(diào)制方法對(duì)比

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

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

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

    開(kāi)關(guān)電源三種控制模式:PWM/PFM/PSM

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

    【瑞薩RA2L1入門(mén)學(xué)習(xí)】+PWM呼吸燈

    電源的輸出電壓在工作條件變化時(shí)保持恒定,是利用微處理器的數(shù)字信號(hào)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。脈沖寬度調(diào)制是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量
    發(fā)表于 03-30 22:28

    請(qǐng)問(wèn)DLP4500觸發(fā)器脈沖寬度可以調(diào)整嗎?

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

    SM7075-12 AC/DC PWM 功率開(kāi)關(guān)芯片 輸出電壓12V

    PWM功率開(kāi)關(guān)芯片是一種采用脈沖寬度調(diào)制(PWM)技術(shù)的集成電路,主要用于控制開(kāi)關(guān)電源的輸出電流和電壓。以下是關(guān)于PWM功率開(kāi)關(guān)芯片的一些主要特點(diǎn)和應(yīng)用: 工作原理 :PWM功率開(kāi)關(guān)芯片通過(guò)
    的頭像 發(fā)表于 11-23 16:39 ?1084次閱讀
    SM7075-12 AC/DC PWM 功率開(kāi)關(guān)芯片 輸出電壓12V

    脈沖變頻充電器怎么用

    充電器的原理 脈沖變頻充電器的工作原理基于脈沖寬度調(diào)制(PWM)技術(shù),通過(guò)調(diào)整脈沖的頻率和寬度來(lái)控制充電電流。這種技術(shù)可以減少電池在充電過(guò)程中產(chǎn)生的熱量,從而降低電池老化的速度。 2.
    的頭像 發(fā)表于 09-26 15:58 ?1184次閱讀

    脈沖變壓器中如何增加脈沖寬度

    脈沖變壓器中增加脈沖寬度,可以采取以下幾種方法: 1. 調(diào)節(jié)輸入信號(hào)的寬度 基本原理 :當(dāng)脈沖變壓器的輸入信號(hào)寬度不足時(shí),最直接的方法是通
    的頭像 發(fā)表于 09-26 15:32 ?1122次閱讀

    柵極驅(qū)動(dòng)器電路中窄脈沖寬度的影響

    電子發(fā)燒友網(wǎng)站提供《柵極驅(qū)動(dòng)器電路中窄脈沖寬度的影響.pdf》資料免費(fèi)下載
    發(fā)表于 08-29 11:21 ?0次下載
    柵極驅(qū)動(dòng)器<b class='flag-5'>電路</b>中窄<b class='flag-5'>脈沖寬度</b>的影響

    LLC電源轉(zhuǎn)換器的調(diào)制方式

    LLC電源轉(zhuǎn)換器的調(diào)制方式是其實(shí)現(xiàn)高效能量轉(zhuǎn)換的關(guān)鍵技術(shù)之一。在LLC諧振變換器中,常用的調(diào)制方式主要包括脈沖頻率調(diào)制(PFM)、移相調(diào)制
    的頭像 發(fā)表于 08-20 17:17 ?1931次閱讀

    pwm與spwm波,載波、參考波與輸出波形的關(guān)系

    PWM(Pulse Width Modulation,脈沖寬度調(diào)制)與SPWM(Sinusoidal PWM,正弦脈沖寬度調(diào)制)波是電力電子領(lǐng)域中常用的兩種調(diào)制技術(shù),它們?cè)谳d波、參考波與輸出波形之間
    的頭像 發(fā)表于 08-14 16:58 ?4750次閱讀

    生成spwm波形有幾種軟件采樣方法

    生成SPWM(Sinusoidal Pulse Width Modulation,正弦波脈沖寬度調(diào)制)波形是一種在電力電子領(lǐng)域廣泛應(yīng)用的技術(shù),主要用于變頻器、逆變器等設(shè)備中。SPWM波形的生成
    的頭像 發(fā)表于 08-14 14:19 ?1605次閱讀

    spwm載波頻率和幅值怎么確定

    SPWM(Sinusoidal Pulse Width Modulation,正弦脈沖寬度調(diào)制)是一種在電力電子領(lǐng)域廣泛應(yīng)用的調(diào)制技術(shù),主要用于實(shí)現(xiàn)對(duì)電機(jī)、變壓器等設(shè)備的精確控制。SPWM技術(shù)的核心
    的頭像 發(fā)表于 08-14 11:29 ?4173次閱讀

    PWM調(diào)制原理是什么

    PWM(脈沖寬度調(diào)制,Pulse Width Modulation)是一種廣泛應(yīng)用的模擬信號(hào)電平數(shù)字編碼方法,其核心原理是通過(guò)改變脈沖寬度(占空比)來(lái)控制電力設(shè)備的輸出功率或?qū)崿F(xiàn)其他控制目標(biāo)。
    的頭像 發(fā)表于 08-12 17:33 ?5018次閱讀

    pwm調(diào)速是調(diào)的電壓還是電流

    PWM調(diào)速是一種廣泛應(yīng)用于電機(jī)控制領(lǐng)域的技術(shù),它通過(guò)調(diào)整脈沖寬度調(diào)制(Pulse Width Modulation)信號(hào)的占空比來(lái)實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的控制。 一、PWM調(diào)速的原理 脈沖寬度調(diào)制(PWM
    的頭像 發(fā)表于 08-08 15:12 ?6113次閱讀