Ðăng Nhập

View Full Version : không hiểu lỗi do đâu(mong các huynh đi trước giúp em)


picbegin
20-03-2008, 01:41 AM
Thành viên mới mong các anh em giúp đỡ .
em dang lập trình cho con pic16f873A.
em có viết 1 chuong trình nhỏ để nhấp nháy 2 led.
em dã chạy mô phỏng và chuong trình chạy rất ổn.
nhung ko hiểu vì sao khi đưa ra mạch thât thì điện áp xuất ra 2 chân led chỉ dc 2.5V.
em đã lắp lại mạch nhiều lần
mong các anh tìm giúp em nguyên nhân tai sao điện áp xuất ra lai thấp vậy.
em dang định dung con này điều khiển motor mà tình hình điện áp thấp thế này thì làm sao mà điều khiền motor dc.
Mà em dùng thạch anh 4Mhz;tụ 22p;nguồn chỉnh luu từ 15V-1A xoay chiều rồi ổn áp xuống 5V

1vấn đề nữa em muốn hỏi là em đang định dùng con này làm robot do duong
và hiển em có 2 động co DC 12V và định dùng nguồn acquy 12V-1A ;
chỉ dùng 1 nguổn nuôi cả khối cảm biến 7 cặp led ;cả khối điều khiển động cơ ;nuôi cả vi diều khiển
mà em cung ko có mạch công suất thì liệu có chạy dc không ;có ảnh hưởng đến vi điều khiển hay ko

Mong các huynh chi giùm

Ðây là đoạn code điều khiển led của em



************************************************** ***********************************************

list p=16f873a
#include <p16f873a.inc>

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF


;*****************KHAI BAO BIEN***********************************

CBLOCK 0X20
DELAY_TIME
COUNTA
COUNTB
ENDC
;************************************************* ***************
ORG 0X00
GOTO START
ORG 0X05
START
BCF STATUS,RP1
BSF STATUS,RP0 ;CHON BANK 1
CLRF TRISA ;SET CONG A LA CONG RA
BCF STATUS,RP0 ;CHON BANK 0
CLRF PORTA
LOOP
MOVLW B'00000011'
MOVWF PORTA
CALL DELAY_100MS
CLRF PORTA
CALL DELAY_100MS
GOTO LOOP

;*****************CHUONG TRINH CON TRE 100MS*******************************

DELAY_100MS:
MOVLW D'100'
MOVWF DELAY_TIME
GOTO D1
D1
MOVLW D'199'
MOVWF COUNTA
MOVLW D'1'
MOVWF COUNTB
DELAY_O
DECFSZ COUNTA,1
GOTO $+2
DECFSZ COUNTB,1
GOTO DELAY_O
DECFSZ DELAY_TIME,1
GOTO D1
RETURN


END

namqn
20-03-2008, 02:13 AM
Hiện tượng bạn đã mô tả cho thấy PIC của bạn không ở trong trạng thái thực thi chương trình. Việc mô phỏng chỉ giúp bạn xác định xem thuật toán của chương trình có ổn hay không, chứ không thể giúp bạn kiểm tra xem phần cứng của bạn có làm việc tốt hay không. Ngay cả khi phần cứng và chương trình của bạn đều ổn, nhưng bạn cấu hình cho chip sai với điều kiện làm việc thực tế của phần cứng, thì chip cũng sẽ không thực thi chương trình đúng ý đồ thiết kế.

Xem qua code của bạn, tôi nhận thấy bạn đã dùng _LVP_ON, tức là cho phép chế độ nạp chương trình vào PIC ở điện áp thấp (5 V). Vậy, mạch phần cứng thực tế của bạn có nối gì vào chân RB3/PGM hay không? Nếu câu trả lời của bạn là 'không', hiện tượng đã xảy ra là dễ hiểu (rất có khả năng nhiễu bên ngoài đã kích hoạt chế độ lập trình điện áp thấp vì chân RB3/PGM bị thả nổi, như vậy PIC sẽ ở trạng thái chờ thông tin từ các chân RB7/PGD, và RB6/PGC để nạp vào bộ nhớ chương trình của PIC, chứ không thực thi các lệnh đã nằm trong bộ nhớ chương trình).

Về vấn đề nguồn cung cấp cho mạch mà bạn đã hỏi, nếu tổng dòng điện tiêu thụ của các phần mạch, kể cả 2 động cơ không vượt quá vài ampe, thì ắc-quy vẫn có thể cung cấp đủ năng lượng cho mạch làm việc trong khoảng từ vài chục phút đến vài phút, tùy vào mức tiêu thụ dòng điện tổng cộng là thấp hay cao. Cụ thể, nếu tổng dòng điện tiêu thụ là 1 A, bạn có thể dùng ắc-quy trong khoảng gần 1 h, nếu tổng dòng điện tiêu thụ là 2 A, bạn còn khoảng gần 1/2 h, với giả thiết là ắc-quy còn mới nguyên và đã được nạp đầy.

Việc ảnh hưởng đến vi điều khiển hay không còn tùy vào thiết kế phần cứng và phần mềm của bạn. Không có mạch công suất thì tôi không rõ bạn sẽ điều khiển các động cơ như thế nào.

Thân,

picbegin
20-03-2008, 09:56 AM
Anh ơi em sửa được lỗi rồi.Cảm ơn anh nhiều !

Còn vấn đề điều khiển động cơ thì em dùng con điều khiển động cơ L293D lấy các tín hiệu điều khiển trực tiếp từ vi điều khiển;như vậy có được ko anh.Ý em chỉ muốn làm 1 con dò đường loại nhỏ thôi mà động cơ của em nguồn 5V nó cũng chạy ; vậy em có thể dùng pin 9V thay cho acquy dc ko.Vì nếu dùng acquy thì ROBOT sẽ rất nặng;trong khi thiết kế của em thì càng đơn giản càng tốt chỉ cần dò đường tốt thế là ổn.

namqn
20-03-2008, 06:53 PM
Anh ơi em sửa được lỗi rồi.Cảm ơn anh nhiều !

Còn vấn đề điều khiển động cơ thì em dùng con điều khiển động cơ L293D lấy các tín hiệu điều khiển trực tiếp từ vi điều khiển;như vậy có được ko anh.Ý em chỉ muốn làm 1 con dò đường loại nhỏ thôi mà động cơ của em nguồn 5V nó cũng chạy ; vậy em có thể dùng pin 9V thay cho acquy dc ko.Vì nếu dùng acquy thì ROBOT sẽ rất nặng;trong khi thiết kế của em thì càng đơn giản càng tốt chỉ cần dò đường tốt thế là ổn.
L293D chính là mạch công suất của bạn (mạch công suất dùng để xử lý công suất, không nhất thiết nó phải có điện áp và/hoặc dòng điện lớn hơn một giá trị nào đó thì mới gọi là mạch công suất), lẽ đương nhiên bạn có thể dùng nó để điều khiển động cơ. Tất nhiên bạn có thể dùng bất kỳ loại pin hay ắc-quy nào, nếu bạn không quan tâm đến thời gian làm việc của nó. Ngay cả pin nút áo 3V cũng có thể dùng được, nếu bạn cho rằng thời gian làm việc tính bằng giây của nó là không quan trọng.

Thân,