masalah Relay

S

sush

Guest
hai,

Aku hampir baru untuk mikro-kontroler.Saya membuat proyek kecil ini untuk mengaktifkan & dari sebuah
relay menggunakan 89c51, dan Push-button.Saya sudah menginstall kedua saklar dan relay pada port0.
dan juga menambahkan pullup resistor.Sistem ini bekerja dengan baik, tapi, masalah saya adalah,
setiap kali saya mengaktifkan sistem relay switch on dan off untuk sepersekian
kedua, bagaimana saya bisa menghilangkan satu kali ini berceloteh dari relay?saya mencoba menambahkan
Condensor di dasar transistor, yang berceloteh stopd tetapi ketika saya perlu mendorong
yang beralih ke pada sistem relay butuh waktu untuk mengaktifkan.Aku akan mengirim kedua diagram dan kode, please help!!!

setiap bantuan akan appriciated, Terima kasih.

Kode:;************************************************* **************************# INCLUDE "8051EQU.INC"; termasuk konstanta yang telah ditentukan

;

;************************************************* *************************; RESET; reset rutin. ORG 0H; menemukan rutin di 00h

AJMP START; melompat ke START

;

;************************************************* *************************

;

; Potong (tidak digunakan); tempat pada saat yang tepat menyela rutinitas

; lokasi memori

. ORG 03H; interupsi eksternal 0

Réti

. ORG 0BH; timer 0 interupsi

Réti

. ORG 13H; interupsi eksternal 1

Réti

. ORG 1BH; timer 1 menyela

Réti

. ORG 23h; interrupt port serial

Réti

. ORG 25H; menemukan sisa awal program

;

;************************************************* *************************

;

Menginisialisasi:; mengatur kendali register

;

MOV TCON, # 00h

MOV TMOD, # 00h

MOV PSW, # 00h

MOV IE, # 00h; menonaktifkan menyela

RET

;

;************************************************* *************************;************************************************* *************************

;

START:

ACALL menginisialisasi

LOOP:

JB P0.1, LOOP

HERE:

JNB P0.1, HERE; MENUNGGU KUNCI RELEASE

CPL P0.2

AJMP LOOP

. END

 
Anda mungkin telah beralih masalah bouncing ..
Cobalah untuk menambahkan penundaan untuk kedua loop:

Loop:
JB P0.1, Loop
CALL DELAY (≈ 50-100ms)
JB P0.1, Loop

Sini:
JNB P0.1, Disini
CALL DELAY (≈ 50-100ms)
JNB P0.1, Disini

CPL P0.2
SJMP LoopJuga, sambungkan 100ľF 100 nF kapasitor bypass antara 5 V dan 0V, tambahkan 10nF-100nF kapasitor betwwen P0.1 dan GND ..dan coba lagi ..Salam,
IanP

PS, jika anda memerlukan subrutin DELAY di sini adalah contohnya:

Pertama mengganti:
MOV TMOD, # 11h; kedua timer dalam modus 16-bit
MOV TCON, # 00h; berhenti kedua timer
dalam menginisialisasi ..

;------------------------------------------------- -----------------------
; 0,1 AT RUTIN PENUNDAAN KEDUA 12 MHz SPPED
; (TR0 (50ms) TR1 (50ms)) x R7 (01) = 0,1 detik delay
;------------------------------------------------- -----------------------
DELAY:
MOV R7, # COUNT; beban ulangi R7 untuk loop counter

DLOOP:
MOV TL0, # LOW (LIMA PULUH); load byte rendah untuk 50ms
MOV TH0, # HIGH (LIMA PULUH); beban byte tinggi
MOV TL1, # LOW (LIMA PULUH); load byte rendah untuk 50ms
MOV TH1, # HIGH (LIMA PULUH); beban byte tinggi

SETB TR0; memulai timer TR0 selama 50 mili detik
JNB TF0, $; menunggu sampai bendera TRO diatur
CLR TR0; menghentikan timer TR0
CLR TF0; jelas flag bit TR0

SETB TR1; memulai timer TR0 selama 50 mili detik
JNB TF1, $; menunggu sampai bendera TRO diatur
CLR TR1; menghentikan timer TR0
CLR TR0; jelas flag bit TR0
DJNZ R7, DLOOP; pengurangan dan memeriksa untuk loop ulangi R7

RET

 
Aku benar-benar upaya appritiate u ambil untuk menjawab pertanyaan saya.Pertama-tama tidak ada masalah kunci menghilangkan bounce.masalah saya adalah, ketika saya mengaktifkan sistem (micro-controller) mengaktifkan relay untuk kedua dan kemudian nonaktif, membantu saya untuk itu.

dan juga saya mencoba menambahkan 100uF kapasitor 100 nF, i bahkan mencoba menambahkan 10uf tantalum
kapasitor, yang 100nF sangat dekat dengan pin 40 dari 89c51 ...... tapi tak ada yang berhasil.

 
Ingatlah bahwa pada kekuasaan-on (reset) semua port yang sarat dengan "FFh" apa berarti bahwa relay akan diberi energi segera setelah Anda menerapkan kekuatan untuk mikro ..
Sebagai instruksi pertama dari kode Anda coba:

CLR P0.2 ..

Salam,
IanP

 
Saya tidak memeriksa apakah itu masalah perangkat lunak.Tapi, Anda menggunakan transistor BC547, dan Anda tidak mengatakan apa-apa tentang apa jenis relay yang digunakan.Transistor BC546/BC547/BC548 gain (hfe) adalah tanggungan dari berapa banyak tetes arus dari kolektor ke emiter.Pertama, basis resistor 1K harus lebih rendah atau kurang.Saya sarankan bahwa perubahan ke transistor BC337 lebih stabil gain arus tinggi (hingga 800mA).<img src="http://www.edaboard.com/images/smiles/icon_arrow.gif" alt="Arrow" border="0" />
 
I dont know PIC, mciros lain port tristate di POR.Jika kata itu benar (port diatur ke 0xff di PORT) masalah dapat dipecahkan sebagai:
- Membuang circuitity terhubung ke P0.2
- Menggunakan PNP Transistor BJT sebagai - emitor terhubung ke 5 V
kolektor untuk relay, dasar untuk 4,7 K. P0.2 melalui ujung lainnya terhubung ke ground relay dengan dioda paralel (katod ke ground)
- Perubahan perangkat lunak - output logika 0 untuk mengaktifkan relay ON dalam programjika port diatur ke tristate di POR Anda harus:
- Mengurangi 10 kOhm dihubungkan antara P0.2 dan 5 V
- 10 kOhm menyambung ke basis dan BC547 ujung resistor ke ground.

Selain itu, penundaan reset Anda terlalu panjang - t ~ 100 msec.Dont know apa yang direkomendasikan untuk PIC tetapi Anda dapat mengurangi nilai kapasitor untuk menunda ulang diterima.

 
itu adalah masalah dengan tegangan higgh muncul di pelabuhan lebih baik 8051.it pujian ur keluar menempatkan logika.
mencobanya,
Gluck wth sabu

 
Periksa lampiran.Ini adalah hasil yang sempurna bagi Anda.i sepenuhnya setuju dengan apa yang "Artem" kata.Benar "Ianp"???
Maaf, tapi Anda harus login untuk melihat lampiran

 
Hi sush:

Di mana Anda decoupling kapasitor?

Hope this helps.

 
Thanks Pont de Pedra untuk menjawab.i mencobanya.kapasitor nilai kecil tidak membantu dan jika saya menggunakan nilai yang lebih tinggi muncul ada penundaan dalam switch on / off relay.

 
Aku berarti 100nF (misalnya) antara tanah dan Vcc uControler dekat dengan pin.
Itu adalah (dalam paket DIL) pin 20 (-) dan pin 40 ( ), bukan pada output pin.

Regardds.

 

Welcome to EDABoard.com

Sponsor

Back
Top