![]() |
|
Tài trợ cho PIC Vietnam |
Công nghệ robot Tất cả các vấn đề về robot di động, tay máy, haptics.... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Apr 2013
Bài gửi: 4
: |
Xe dò đường Pic 16f877A
Em đang làm đề tài môn học về xe dò đường theo vạch trắng bằng pic 16f877A.Xe đơn giản là chỉ chạy theo vạch thôi ạ,khi nào gặp 1 vạch ngang thì xe dừng lại.Em đã vẽ mạch,code và làm mạch thực tế nhưng em nó quyết tâm không chạy,mong các bác giúp đỡ ạ.
đây là code và mạch http://www.mediafire.com/?fd5y7b6ntd0i44p #include <16F877A.h> #device adc=10 #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz) #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES WRT_50% //Lower half of Program Memory is Write Protected #use delay(clock=20000000) #define dc_t(x) set_pwm1_duty(x) #define dc_p(x) set_pwm2_duty(x) int8 sensor=0; int1 left=0,right=0; VOID scan() { int8 k; sensor=0; for(k=0;k<=5;k++) { set_adc_channel(k); delay_ms(10); if(read_adc()>700) bit_set(sensor,k); } } VOID TU_DONG_TIEN() { if (sensor==0b00100000){dc_t(0);dc_p(70);left=0;right =1;} if (sensor==0b00010000){dc_t(0);dc_p(60);left=0;right =1;} if (sensor==0b00001000){dc_t(0);dc_p(50);left=0;right =1;} if (sensor==0b00001100){dc_t(60);dc_p(60);} if (sensor==0b00000100){dc_t(50);dc_p(0);left=1;right =0;} if (sensor==0b00000010){dc_t(60);dc_p(0);left=1;right =0;} if (sensor==0b00000001){dc_t(70);dc_p(0);left=1;right =0;} if(sensor==0) { if(right){dc_t(0);dc_p(50);} if(left){dc_t(50);dc_p(0);} } if(sensor==0xff){dc_t(0);dc_p(0);} } void main() { setup_adc_ports(ALL_ANALOG); setup_adc(ADC_CLOCK_INTERNAL); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DIV_BY_16,100,1); setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); set_pwm1_duty(0); set_pwm2_duty(0); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); // TODO: USER CODE!! while(1) { scan(); //sensor=0b00001100; tu_dong_tien(); } } thay đổi nội dung bởi: chinhan_92, 11-04-2013 lúc 10:42 PM. |
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Apr 2013
Bài gửi: 4
: |
sao mình không đính kèm file đươc,hic
|
![]() |
![]() |
![]() |
#3 |
Nhập môn đệ tử
|
Hiện tại bạn đã làm xong chưa, có cần nữa k !
|
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Apr 2013
Bài gửi: 4
: |
Hiện tại mình làm vẫn chưa chạy bạn ạ.Lại còn bị triệu chứng chạm hoặc để tay gần mới có tín hiệu ra chân pwm,mình thử nạp code điều khiển led thì có triệu chứng như thề này:led ko sáng,để tay gần thì led sáng mờ,còn chạm vào chân cấp xung thì led sáng mãi,không nhấp nháy(mình dùng thạch anh 20Mh,tụ 22p).Mình đọc ở 1 số diễn đàn thì thấy bảo lổi này là do thạch anh,nếu như vậy thì ai giúp mình config thạch anh với,mình đã thử dùng thạch anh nội nhưng vẫn bị.
|
![]() |
![]() |
![]() |
#5 |
Nhập môn đệ tử
Tham gia ngày: Apr 2013
Bài gửi: 4
: |
1 tuần nữa là mình phải nộp mạch rồi,đây là file mô phỏng và mạch thực tế,thông cảm tại mình ko đính kèm được,hic
http://www.mediafire.com/?fd5y7b6ntd0i44p |
![]() |
![]() |
![]() |
#6 |
Nhập môn đệ tử
Tham gia ngày: May 2013
Bài gửi: 1
: |
cái này hnay mình cũng vừa mới có được đề tài như thế này
![]() |
![]() |
![]() |
![]() |
#7 |
Nhập môn đệ tử
Tham gia ngày: Aug 2013
Bài gửi: 2
: |
mấy a có cái mạch điều khiển động cơ nào cụ thể k cho e xin với
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|