Thuật toán điều khiển

Một phần của tài liệu Nghiên cứu thiết kế chế tạo thử nghiệm hệ thống đèn pha (Trang 68)

Khai báo loại chíp sử dụng Atmega 16

Khai báo sử dụng hàm trễ delay

Khai báo biến adc và biến ap

Chương trình chính

Khai báo I/O các chân điều khiển

Khai báo các timer

Khai báo các chân ADC Bắt đầu

Xây dựng hàm đọc adc

Xây dựng vòng lặp điều khiển While

Chạy hàm đọc ADC từ quang trở

Kết thúc

Chạy cấu trúc điều kiện if

3.2 Mô tả chƣơng trình

Chương trình này thực hiện việc thay đổi độ rộng xung xuất ra tại chân OCR1A của ATmega8 tùy theo cường độ ánh sáng chiếu vào quang trở, khoảng duty thay đổi(0 † 100%), khi cường độ ánh sáng chiếu vào lớn, giá trị duty xuất ra nhỏ và ngược lại. Việc đo cường độ ánh sáng thay đổi thông qua việc đọc giá trị điện áp thay đổi tại chân ADC0.

START

Khai báo loại chíp sử dụng Atmega 16. Khai báo sử dụng hàm trễ delay.

Thiết lập điện áp so sánh tại chân VREF Khai báo giá trị adc kiểu unsigned int; Khai báo giá trị áp kiểu float;

Đọc giá trị đầu vào chân adc Trì hoãn 10us

Thiết lập thanh ghi điều khiển hoạt động và chứa trạng thái của mô đun ADC

VOID MAIN

Thiết lập các PORT

Khởi tạo Timer/counter(ở đây sử dụng Timer/counter 1) // Timer/Counter 1 initialization

// Clock source: System Clock // Clock value: 1000,000 kHz // Mode: Fast PWM top=ICR1 // OC1A output: Non-Inv. // OC1B output: Discon.

Thiết lập các ngắt ngoài(không sử dụng)

DO FOREVER

gtadc=read_adc(0); // đọc giá trị tại chân adc(0)

ap=0.00488*gtadc; //tinh ap o chan ADC0; 0.00488 = 5/1024 Nếu áp nằm trong khoảng(0< ap < 0,25), PWM = 100%

Hình 3.1 Mô hình hệ thống đèn pha tích cực

Nếu áp nằm trong khoảng(0,25< ap < 0,75), PWM thay đổi trong dải rộng từ (0 ÷ 100)%

Nếu áp nằm trong khoảng(0,75< ap < 5), PWM = 0%

Trì hoãn 1ms;

END

3.3 Mô phỏng hoạt động của hệ thống

Hệ thống đèn pha tích cực cho xe máy có các chế độ hoạt động như sau: + Hệ thống chưa làm việc(khi khóa điện và công tắc đèn chưa bật).

+ Bật đèn hỗ trợ chiếu sáng khi vào đường vòng bằng tín hiệu đèn báo rẽ. + Tự động thay đổi cường độ sáng đèn pha cốt theo ánh sáng chiếu vào phía đầu xe.

- Hệ thống chưa làm việc: khi người lái chưa bật công tắc đèn hoặc bật ở nấc sương

mù(nấc 1), dù khóa điện vẫn bật nhưng hệ thống đèn pha tích cực không làm việc do rơ le đèn chưa cấp nguồn cho các bóng và mạch điều khiển nên nếu ta bật xi nhan thì chỉ có đèn xi nhan làm việc mà không có đèn chiếu sáng nào được bật.

Hình 3.2 Khi chưa bật công tắc đèn ở nấc pha/cốt

- Chế độ bật đèn hỗ trợ chiếu sáng khi vào đường vòng bằng tín hiệu đèn báo rẽ: Khi người lái xe bật khóa điện và công tắc đèn nấc pha cốt(nấc 2), lúc này các bóng và bộ điều khiển đèn được cấp nguồn, tùy theo công tắc pha cốt ở vị trí pha hay cốt mà đèn pha/cốt được bật sáng, độ sáng của bóng pha/cốt phụ thuộc vào cường độ ánh sáng chiếu vào quang trở trong khi độ sáng của các bóng đèn phụ không phụ thuộc vào quang trở.

+ Nếu công tắc đèn báo rẽ bật rẽ phải thì: đèn xi nhan bên phải sáng và đèn phụ bên trái sáng để hỗ trợ chiếu sáng góc vòng phải, đèn pha/cốt lúc này cũng sáng. Nếu tắt công tắc đèn báo rẽ thì đèn phụ cũng tắt theo, đèn pha cốt vẫn sáng.

+ Nếu công tắc đèn báo rẽ bật rẽ trái thì: đèn xi nhan bên trái sáng và đèn phụ bên phải sáng để hỗ trợ chiếu sáng góc vòng trái, đèn pha/cốt lúc này cũng sáng. Nếu tắt công tắc đèn báo rẽ thì đèn phụ cũng tắt theo, đèn pha cốt vẫn sáng.

Hình 3.4 Đèn phụ phải sáng khi bật xi nhan trái

Như vậy sẽ có thời điểm cả bóng pha/cốt và một bóng đèn phụ lắp trên chóa đèn bật sáng để hỗ trợ chiếu sáng khi xe vào đường vòng..

- Chế độ tự động thay đổi cường độ sáng đèn pha cốt theo ánh sáng chiếu vào phía đầu xe. Chế độ này hoạt động khi khóa điện mở và công tắc đèn ở nấc pha cốt(nấc 2). Việc thay đổi cường độ sáng được áp dụng cho cả 2 chế độ pha và cốt. Khi cường độ ánh sáng phía trước xe thay đổi(do đèn xe chạy ngược chiều chiếu vào hoặc do ánh sáng của đèn đường) thì: độ sáng của đèn pha cốt thay đổi tỷ lệ nghịch, nếu cường độ ánh sáng chiếu vào quang trở càng lớn thì độ sáng đèn pha/ cốt càng giảm(thể hiện qua giá trị dòng điện trên Ampe kế giảm), nếu cường độ ánh sáng chiếu vào quang trở càng nhỏ thì độ sáng đèn pha/ cốt càng tăng(thể hiện qua giá trị dòng điện trên Ampe kế tăng). Độ sáng của đèn pha/cốt thay đổi tương ứng với độ rộng xung thay đổi trong khoảng(0†100%), do tần số xung rất cao(f = 1Mhz) nên ta không thấy đèn nhấp nháy mà chỉ thay đổi sáng, tối.

Cường độ sáng phía trước xe lớn Cường độ sáng phía trước xe nhỏ

KÊT LUẬN CHUNG

Mô hình hệ thống đèn pha tích cực cho xe máy sau khi được thiết kế, chế tạo và chạy thử nghiệm đã đáp ứng đầy đủ các mục tiêu của đề tài đặt ra, cụ thể là:

- Thiết kế, chế tạo thử nghiệm được hệ thống đèn pha mở rộng góc chiếu sáng theo hướng đánh lái khi xe vào đường vòng cho các xe có cụm đèn pha cố định với khung xe.

- Thiết kế, chế tạo thử nghiệm được hệ thống đèn pha tự động giảm cường độ sáng của đèn pha cốt khi gặp ánh sáng chiếu vào của xe chạy ngược chiều để không làm chói mắt người lái xe chạy ngược chiều.

- Thiết kế, chế tạo thử nghiệm được hệ thống đèn pha tự động giảm cường độ sáng của đèn pha cốt khi xe hoạt động vào ban đêm nơi có ánh sáng của đèn đường hỗ trợ, nhằm tiết kiệm nhiên liệu.

Các kết quả cơ bản đạt đƣợc trong đề tài: - Nghiên cứu tổng quan

+ Tìm hiểu được tổng quan lịch sử đèn pha ô tô, xe máy và các loại đèn pha sử dụng trên ô tô xe máy ngày nay.

+ Phân tích được sự hạn chế của hệ thống đèn pha trên một số xe máy đang lưu hành ở Việt Nam.

- Thiết kế, chế tạo mô hình và bộ điều khiển

+ Thiết kế, chế tạo được mô hình hệ thống đèn pha tích cực trên xe Honda Airblade sát với thực tế.

+ Tính toán được vị trí lắp đặt thêm các bóng đèn phụ, hỗ trợ chiếu sáng khi xe vào đường vòng.

+ Thiết kế, chế tạo được bộ điều khiển đèn pha tích cực cho xe máy

- Thuật toán điều khiển và mô phỏng hệ thống

+ Xây dựng được chương trình điều khiển.

Những điểm còn hạn chế của đề tài:

Do nhiều yếu tố, trong đó có yếu tố về thời gian thực hiện và khả năng công nghệ cho phép còn nhiều hạn chế, nên mô hình vẫn còn tồn tại một số nhược điểm như:

- Chưa đo được độ sáng để xây dựng đặc tính điều chỉnh độ sáng.

- Góc chiếu sáng bổ sung khi quay vòng là cố định, không thay đổi linh động theo góc quay của bánh xe chủ động.

- Chùm tia sáng của đèn phụ còn chưa tập trung thành dải và phân bố cường độ chưa đồng đều.

- Việc điều khiển bật đèn phụ mới chỉ thông qua tín hiệu từ công tắc đèn báo rẽ.

Hƣớng phát triển của đề tài

Để hệ thống đèn pha tích cực cho xe máy ngày một hoàn thiện hơn, trong tương lai cần khắc phục những điểm còn hạn chế trên bằng một số giải pháp như:

- Phải gia công chóa đèn mới để chùm tia sáng của đèn phụ phân bố đồng đều và tập trung thành dải, đồng thời thay thế các bóng phụ thuận lợi hơn.

- Sử dụng thêm một số tín hiệu điều khiển khác để bật đèn phụ tự động như: dựa vào góc đánh lái và vận tốc xe chạy …... Ngoài ra cần tiếp tục nghiên cứu, cải tiến theo hướng mới để hệ thống ngày một hoàn thiện hơn.

TÀI LIỆU THAM KHẢO

1. Lê Ngọc Viện, Luận văn thạc sĩ kỹ thuật, Trường ĐHBK Hà Nội, năm 2012. 2. Đỗ Văn Dũng, Hệ thống điện thân xe và điều khiển tự động trên Ô tô, ĐH SPKT. TPHCM, 2007.

3. Hướng dẫn bảo trì Honda Airblade, Công ty honda Việt Nam, 2006. 4. Hướng dẫn bảo trì Honda Click, Công ty honda Việt Nam, 2006.

5. Châu Kim Lang, Phương pháp nghiên cứu khoa học, ĐH SPKT TPHCM, 1995. 6. http://www.otosaigon.com 7. http://www.oto-hui.com.vn/ 8. http://autopro.com.vn 9. http://hoc avr.com/ 10. http://codientu.org 11. http://www.dientuvietnam.net 12. http://vagam.dieukhien.net 13. http://www.narva.com.vn 14. http://www.hella.com 15. http://www.osram.com 16. http://lighting.lrc.rpi.edu/ 17. http://www.philips.com.vn/ 18. http://www.glowire.com/automotive.htm 19. http://www.youtube.com/watch?v=LdyNdlw8zaA 20. http://en.wikipedia.org/wiki/Headlamp 21. http://www.alldatasheet.com 22. http://www.honda.com.vn 23. http://www.yamaha.com.vn 24. http://www.piagio.com

PHỤ LỤC 1

CÁC LINH KIỆN ĐIỆN- ĐIỆN TỬ CƠ BẢN SỬ DỤNG TRONG MẠCH ĐIỀU KHIỂN ĐÈN PHA TÍCH CỰC CHO XE MÁY

1. Vi điều khiển Atmega16

Atmelga16L có đầy đủ tính năng của họ AVR, về giá thành so với các loại khác thì giá thành là vừa phải khi nghiên cứu và làm các công việc ứng dụng tới vi điều khiển. Tính năng:

- Bộ nhớ 16K(flash) . - 512 byte (EEPROM). - 1 K (SRAM).

- Đóng vỏ 40 chân , trong đó có 32 chân vào ra dữ liệu chia làm 4 PORT A,B,C,D. Các chân này đều có chế độ pull_up resistors.

- Giao tiếp SPI. - Giao diện I2C.

- Có 8 kênh ADC 10 bit. - 1 bộ so sánh analog. - 4 kênh PWM.

- 2 bộ timer/counter 8 bit, 1 bộ timer/counter1 16 bit. - 1 bộ định thời Watchdog.

- 1 bộ truyền nhận UART lập trình được.

* Mô tả các chân:

- Vcc và GND 2 chân cấp nguồn cho vi điều khiển hoạt động.

- Reset đây là chân reset cứng khởi động lại mọi hoạt động của hệ thống.

- 2 chân XTAL1, XTAL2 các chân tạo bộ dao động ngoài cho vi điều khiển, các chân này được nối với thạch anh (hay sử dụng loại 4M), tụ gốm (22p).

- Chân Vref thường nối lên 5v(Vcc), nhưng khi sử dụng bộ ADC thì chân này được sử dụng làm điện thế so sánh, khi đó chân này phải cấp cho nó điện áp cố

định, có thể sử dụng diode zener:

- Chân Avcc thường được nối lên Vcc nhưng khi sử dụng bộ ADC thì chân này được nối qua 1 cuộn cảm lên Vcc với mục đích ổn định điện áp cho bộ biến đổi.

2. Mosfet IRF 540

Mosfet IRF 540 là mosfet kênh N, thường dùng trong điều khiển công suất, do vậy đa số nó dùng ở chế độ đóng ngắt.

- Các thông số làm việc của IRF 540:

3. Quang trở

Trong mạch điều khiển sử dụng loại quang trở NORP-13 như hình vẽ:

PHỤ LỤC 2

CODE CHƢƠNG TRÌNH NẠP CHO ATMEGA 16 TRONG MẠCH ĐIỀU KHIỂN ĐÈN PHA TÍCH CỰC

/***************************************************** This program was produced by the

CodeWizardAVR V2.05.0 Professional Automatic Program Generator

© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Code điều khiển đèn pha tích cực cho xe máy Version :

Date : 20/08/2013 Author : Trần Đức Thịnh

Company : Đại học bách khoa Hà Nội Comments: No

Chip type : ATmega16 Program type : Application

AVR Core Clock frequency: 8,000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 256

*****************************************************/ #include <mega16.h> // Khai báo loại chíp sử dụng Atmega 16. #include <delay.h> // Khai báo sử dụng hàm trễ delay.

#define ADC_VREF_TYPE 0x00 unsigned int gtadc;

float ap;

unsigned int read_adc(unsigned char adc_input) // đọc giá trị adc. {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here

void main(void) // chươnng trình chính. {

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;

DDRB=0x00;

// Port C initialization

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=0 State4=T State3=T State2=T State1=T State0=T PORTD=0x00;

DDRD=0x20; // xuất tín hiệu xung tại chân PD5(OC1A) // Timer/Counter 0 initialization

// Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00;

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 1000,000 kHz // Mode: Fast PWM top=ICR1 // OC1A output: Non-Inv. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off

TCCR1A=0x82; TCCR1B=0x1A; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x4E; ICR1L=0x20; OCR1AH=0x03; OCR1AL=0xE8; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// USART initialization // USART disabled

UCSRB=0x00;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00; // ADC initialization

// ADC Clock frequency: 1000,000 kHz // ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0x83; // chọn tần số xung nhịp cho ADC là 1000,000 kHz // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; while (1) {

gtadc=read_adc(0); // đọc giá trị tại chân adc(0)

ap=0.00488*gtadc; //tinh ap o chan ADC0; 0.00488 = 5/1024

if((ap>0.00)&&(ap<0.25))OCR1A=20000; //lay ap nguong <0.25 de den pha phat huy het cong suat khi troi gan nhu toi mit,PWM=100%

delay_ms(1); if((ap>0.25)&&(ap<0.30))OCR1A=19800;

delay_ms(1);

if((ap>0.30)&&(ap<0.35))OCR1A=19600; delay_ms(1);

if((ap>0.35)&&(ap<0.40))OCR1A=19400; delay_ms(1); if((ap>0.40)&&(ap<0.45))OCR1A=19200; delay_ms(1); if((ap>0.45)&&(ap<0.50))OCR1A=19000; delay_ms(1); if((ap>0.50)&&(ap<0.55))OCR1A=18800; delay_ms(1); if((ap>0.55)&&(ap<0.60))OCR1A=18600; delay_ms(1); if((ap>0.60)&&(ap<0.65))OCR1A=18400; delay_ms(1); if((ap>0.65)&&(ap<0.70))OCR1A=18200; delay_ms(1); if((ap>0.70)&&(ap<0.75))OCR1A=18000; delay_ms(1); if((ap>0.75)&&(ap<0.80))OCR1A=17800; delay_ms(1); if((ap>0.80)&&(ap<0.85))OCR1A=17600; delay_ms(1); if((ap>0.85)&&(ap<0.90))OCR1A=17400; delay_ms(1); if((ap>0.90)&&(ap<0.95))OCR1A=17200; delay_ms(1); if((ap>0.95)&&(ap<1.00))OCR1A=17000; delay_ms(1); if((ap>1.00)&&(ap<1.05))OCR1A=16800; delay_ms(1); if((ap>1.05)&&(ap<1.10))OCR1A=16600;

delay_ms(1); if((ap>1.10)&&(ap<1.15))OCR1A=16400; delay_ms(1); if((ap>1.15)&&(ap<1.20))OCR1A=16200; delay_ms(1); if((ap>1.20)&&(ap<1.25))OCR1A=16000; delay_ms(1); if((ap>1.25)&&(ap<1.30))OCR1A=15800; delay_ms(1); if((ap>1.30)&&(ap<1.35))OCR1A=15600; delay_ms(1); if((ap>1.35)&&(ap<1.40))OCR1A=15400; delay_ms(1); if((ap>1.40)&&(ap<1.45))OCR1A=15200; delay_ms(1); if((ap>1.45)&&(ap<1.50))OCR1A=15000; delay_ms(1); if((ap>1.50)&&(ap<1.55))OCR1A=14800; delay_ms(1); if((ap>1.55)&&(ap<1.60))OCR1A=14600; delay_ms(1); if((ap>1.65)&&(ap<1.70))OCR1A=14200; delay_ms(1); if((ap>1.70)&&(ap<1.75))OCR1A=14000; delay_ms(1); if((ap>1.75)&&(ap<1.80))OCR1A=13800; delay_ms(1); if((ap>1.80)&&(ap<1.85))OCR1A=13600; delay_ms(1);

if((ap>1.85)&&(ap<1.90))OCR1A=13400; delay_ms(1); if((ap>1.90)&&(ap<1.95))OCR1A=13200; delay_ms(1); if((ap>1.95)&&(ap<2.00))OCR1A=13000; delay_ms(1); if((ap>2.00)&&(ap<2.05))OCR1A=12800; delay_ms(1); if((ap>2.05)&&(ap<2.10))OCR1A=12600; delay_ms(1); if((ap>2.10)&&(ap<2.15))OCR1A=12400; delay_ms(1); if((ap>2.15)&&(ap<2.20))OCR1A=12200; delay_ms(1); if((ap>2.20)&&(ap<2.25))OCR1A=12000; delay_ms(1); if((ap>2.25)&&(ap<2.30))OCR1A=11800; delay_ms(1); if((ap>2.30)&&(ap<2.35))OCR1A=11600; delay_ms(1); if((ap>2.35)&&(ap<2.40))OCR1A=11400; delay_ms(1); if((ap>2.40)&&(ap<2.45))OCR1A=11200; delay_ms(1); if((ap>2.45)&&(ap<2.50))OCR1A=11000; delay_ms(1); if((ap>2.50)&&(ap<2.55))OCR1A=10800; delay_ms(1); if((ap>2.55)&&(ap<2.60))OCR1A=10600;

delay_ms(1); if((ap>2.60)&&(ap<2.65))OCR1A=10400; delay_ms(1); if((ap>2.65)&&(ap<2.70))OCR1A=10200; delay_ms(1); if((ap>2.70)&&(ap<2.75))OCR1A=10000; delay_ms(1); if((ap>2.75)&&(ap<2.80))OCR1A=9800; delay_ms(1); if((ap>2.80)&&(ap<2.85))OCR1A=9600; delay_ms(1); if((ap>2.85)&&(ap<2.90))OCR1A=9400; delay_ms(1); if((ap>2.90)&&(ap<2.95))OCR1A=9200; delay_ms(1); if((ap>2.95)&&(ap<3.00))OCR1A=9000; delay_ms(1);

Một phần của tài liệu Nghiên cứu thiết kế chế tạo thử nghiệm hệ thống đèn pha (Trang 68)

Tải bản đầy đủ (PDF)

(91 trang)