pulzně šířková modulace

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
zddfiala
Příspěvky: 45
Registrován: 19 črc 2006, 00:00
Bydliště: Hořice

pulzně šířková modulace

#1 Příspěvek od zddfiala »

potřeboval bych něco o pulzně šířkové modulaci. Respektive potřebuju ovládat hydraulický proporcionál pomocí pulzní modulace. nebo aspoň nějáké informace o PŠM nebo nějáký odkazy
Uživatelský avatar
mihal
Příspěvky: 1844
Registrován: 06 dub 2005, 00:00
Bydliště: Zilina

#2 Příspěvek od mihal »

Je toho plny internet, ale princip je jednoduchy - zachovas frekvenciu a menis striedu. Tym menis mnozstvo energie dodanej do spotrebica. Vyhoda je v tom, ze spinaci prvok spinas do saturacie a je na nom mensi stratovy vykon - menej tepla - mensi chladic - mensia cena.
Uživatelský avatar
MetalGod
Příspěvky: 6560
Registrován: 30 kvě 2006, 00:00
Bydliště: Seč

#3 Příspěvek od MetalGod »

Souhlasím. Ještě k tomu přidávám: pokud se Ti to povede do saturace, dáš rychlý spínací prvek s co nejkratší náběžnou & sestupnou hranou a zvolíš optimální frekvenci, tak to může mít víc, než 90% účinnost, tzn. pouze max. 10% ztrátovýho tepla.
Pak se může stát, že to v některých případech nemusíš vůbec, nebo jen minimálně chladit. Stojí to za to!
Kdo není ve dvaceti levičák, nemá srdce,
kdo je levičák ve čtyřiceti, nemá rozum.
— Winston Churchill
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#4 Příspěvek od nekmil »

;Regulace elektromotoru pomoci PWM
;viz priklad 15 str. 147
;Prace s mikrokontrolery Atmel AT89C2051
;doplneno o klavesnici +/-
;vystup na P3.7 aktivni v L do 6-ti invertoru 74HCT04 paralelne a BUZ11

;--------------------------------------------------------------
;KRYSTAL 12 MHz (prepocitat konstantu PERIODA, podprogram PAUSE )

$MODxx51

;hodnotu PERIODA vzdy prepocitat pro konkretni KRYSTAL ! ----------------------!
; Perioda T (impulsu) v programu "casovac2051.wls"
; ^
; ^
PERIODA EQU 10000 ;perioda signalu (100 Hz) ZAVISI NA KRYSTALU !
MAX EQU 65535 ;maximum obsahu casovace
KONST EQU PERIODA/256 ;nasobna konstanta
KEYMAX EQU 255 ;maximalni hodnota v KEYB
KEYMIN EQU 1 ;minimalni hodnota v KEYB
VYSTUP EQU P3.7 ;na tomto vyvodu je vystup
PLUS EQU P3.0 ;tlacitko + na kostru
MINUS EQU P3.1 ;tlacitko - na kostru


DSEG AT 30H ;RAM
;--------------------------------------------------------------
KEYB: DS 1 ;hodnota z klavesnice 1 - 255
REG0: DS 1
REG1: DS 1
REGB: DS 1


CSEG
ORG 0
AJMP RESET ;inicializace

ORG 000BH
AJMP CASOVAC0 ;preteceni casovace 0

;--------------------------------------------------------------
RESET:
MOV TMOD,#00000001B ;16 bitovy casovac 0 - generuje PWM
SETB EA ;povol preruseni
SETB ET0 ;prijem preruseni od casovace 0
SETB TR0 ;zapni casovac 0
MOV KEYB,#1 ;pocatecni rychlost motoru
;--------------------------------------------------------------
;KLAVESNICE
KEY:
JNB MINUS,TESTMIN ;stlaceno (-) P3.1
JNB PLUS,TESTMAX ;stlaceno (+) P3.0
JMP KEY

TESTMAX: ;test zda KEYB dosahl maxima
CALL PAUSE ;chvilku pockat
MOV A,#KEYMAX
XRL A,KEYB
JNZ ZVYS ;neni shoda skok na zvyseni (zvysuje)
JZ KEY ;je shoda skok na klavesnici (nezvysuje)

TESTMIN: ;test zda KEYB dosahl minima
CALL PAUSE ;chvilku pockat
MOV A,#KEYMIN
XRL A,KEYB
JNZ SNIZ ;neni shoda skok na snizeni (snizuje)
JZ KEY ;je shoda skok na klavesnici(nesnizuje)

SNIZ:
DEC KEYB ;snizeni KEYB o 1
JMP KEY ;snizeno jdi na klavesnici

ZVYS:
INC KEYB ;zvyseni KEYB o 1
JMP KEY ;zvyseno jdi na klavesnici
;--------------------------------------------------------------
PAUSE: ;pause=jak rychle se bude menit obsah KEYB o +/- 1
MOV R2,#255 ;vypocet R2,R1,R0(R4,R3,R2)
MOV R3,#50 ;viz "pause prog1.wls"
MOV R4,#1 ;pause=25 ms (pro preladení 0-255 za 6 sec.)
CEKEJ: ;opet prepocitat podle KRYSTALU ! ----------------------!
DJNZ R2,$
DJNZ R3,CEKEJ
DJNZ R4,CEKEJ
RET ;navrat z pauzy
;--------------------------------------------------------------
;OBSLUHA CASOVACE 0

CASOVAC0: PUSH ACC
PUSH PSW
MOV REG0,R0
MOV REG1,R1
MOV REGB,B
MOV A,KEYB ;cti obsah KEYB
CLR C
SUBB A,#128 ;odecti 128
JNB ACC.7,KLADNE ;pro kladny vysledek je ACC.7=0
;--------------------------------------------------------------
;pro KEYB=0 až 127
ZAPORNE:
CPL A
INC A ;vypocet abs(KEYB-128)
MOV B,#KONST
MUL AB ;B,A=A*B
MOV R0,A ;R1,R0-soucin
MOV R1,B
CPL VYSTUP ;otoc vystup
JNB VYSTUP,SHOD ;VYSTUP=0-je zapnut
SJMP NAHOD
;--------------------------------------------------------------
;pro KEYB=128 až 255
KLADNE:
MOV B,#KONST
MUL AB ;B,A=A*B
MOV R0,A
MOV R1,B ;R1,R0-soucin
CPL VYSTUP ;otoc vystup
JNB VYSTUP,NAHOD ;VYSTUP=0-je zapnut
;--------------------------------------------------------------
;GENERUJE NEAKTIVNI CAST PRUBEHU
SHOD:
CLR C ;vypocet R1,R0=PERIODA/2-R1,R0
MOV A,#LOW(PERIODA/2)
SUBB A,R0
MOV R0,A
MOV A,#HIGH(PERIODA/2)
SUBB A,R1
MOV R1,A
SJMP SESTAV ;sestav TH0,TL0
;--------------------------------------------------------------
;GENERUJE AKTIVNI CAST PRUBEHU
NAHOD:
MOV A,#LOW(PERIODA/2) ;vypocet R1,R0=PERIODA/2+R1,R0
ADD A,R0
MOV R0,A
MOV A,#HIGH(PERIODA/2)
ADDC A,R1
MOV R1,A
;--------------------------------------------------------------
;SESTAVI OBSAH TH0,TL0
SESTAV:
CLR C ;vypocet TH0,TL0=65536-R1,R0
MOV A,#LOW MAX
SUBB A,R0
MOV R0,A
MOV A,#HIGH MAX
SUBB A,R1
MOV R1,A
MOV A,R0
ADD A,#1
MOV TL0,A
MOV A,R1
ADDC A,#0
MOV TH0,A
POP PSW
POP ACC
MOV R0,REG0
MOV R1,REG1
MOV B,REGB
RETI
END
Odpovědět

Zpět na „Poradna“