төсөл лхагваа

25
Төслийн ажил Уртын электрон хэмжүүр Гарчиг 1. ТӨСЛИЙН АЖЛЫН АГУУЛГА, ЗОРИЛГО 1.1 Төслийн сэдэв 1.2 Төслийн ажлын зорилго 1.3 Зургийн жагсаалт 1.4 Хүснэгтийн жагсаалт 2. ОНОЛЫН ХЭСЭГ 2.1 Encoder 2.1.1 Encoder-ийн тухай 2.1.2 Encoder-ийн төрлүүд 2.2 Микроконтроллёр 2.2.1 Микроконтроллёрийн тухай 2.3 LCD дэлгэц 2.3.1 LCD дэлгэц ба төрлүүд 3. СУДАЛГААНЫ ХЭСЭГ 3.1 Зай хэмжих аргууд 3.2 Rotary encoder 3.2.1 E6A2-CWZ3C rotary encoder 3.3 LCD дэлгэц 3.3.1 C1602A дэлгэц (16x2) 4. ТӨСЛИЙН ХЭСЭГ 4.1 Төслийн ажлын бүтцийн схем 4.2 Зарчмын схем 4.3 Програмын блок схем 4.4 Програмын эх код 1

Transcript of төсөл лхагваа

Page 1: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

Гарчиг

1. ТӨСЛИЙН АЖЛЫН АГУУЛГА, ЗОРИЛГО

1.1 Төслийн сэдэв1.2 Төслийн ажлын зорилго1.3 Зургийн жагсаалт1.4 Хүснэгтийн жагсаалт

2. ОНОЛЫН ХЭСЭГ 2.1 Encoder2.1.1 Encoder-ийн тухай2.1.2 Encoder-ийн төрлүүд 2.2 Микроконтроллёр 2.2.1 Микроконтроллёрийн тухай2.3 LCD дэлгэц2.3.1 LCD дэлгэц ба төрлүүд

3. СУДАЛГААНЫ ХЭСЭГ3.1 Зай хэмжих аргууд3.2 Rotary encoder3.2.1 E6A2-CWZ3C rotary encoder 3.3 LCD дэлгэц3.3.1 C1602A дэлгэц (16x2)

4. ТӨСЛИЙН ХЭСЭГ

4.1 Төслийн ажлын бүтцийн схем4.2 Зарчмын схем4.3 Програмын блок схем4.4 Програмын эх код

1

Page 2: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

1.3 Зургийн жагсаалт

Зураг Хуудас1 Encoder-ийн бүтэц 42 Encoder –ийн хуваалт 53 Rotary encoder –ууд 54 PIC 16F877A 65 LCD дэлгэцийн төрлүүд 66 Лазер ашиглаж хийсэн зай хэмжигч 77 Дууны долгион ашиглан хийсэн зай хэмжигч 78 Дугуй ба encoder ашиглаж хийсэн зай хэмжигч 89 E6A2-CWZ3C rotary encoder 910 Encoder-ийн гаралтын хэлхээ 1011 Импульсын гаралтын загвар 1012 E6A2-CWZ3C rotary encoder-ийн хэмжээ 1113 C1602A LCD дэлгэцийн гадаад хэмжээ 1114 Дугуйны тооцоо 12

1.4 Хүснэгтийн жагсаалт

Хүснэгт Хуудас 1 E6A2-CWZ3C rotary encoder-ийн үнэлгээ

тодорхойлолт9

2 E6A2-CWZ3C rotary encoder-ийн холболт 103 C1602A дэлгэцийн үнэмлэхүй үнэлгээ 124 C1602A дэлгэцийн хөлний хуваарилалт 12

2

Page 3: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

1. Төслийн ажлын агуулга, зорилго

1.1 Төслийн сэдэв

Уртын электрон хэмжүүр

1.2 Төслийн ажлын зорилго

Техникийн дэвшилийн асар хурдацтай өнөө үед бид бүхний хэрэглэж дадсан танил болсон зүйл бүхэн маань мөн л энэ хурдацаар хувьсан өөрчлөгдөж хэлбэр дүрс хэмжээгээ өөрчлөн тэр бүр нь хүний шинэ хэрэгцээнд зохицон нийцэж байдаг билээ. Энэхүү төслийн ажлаар алсын зайг хэмжиж болох электрон метр бүтээх юм. Компьютер техник менежментийн сургуульд үзэж судалсан хичээлүүд, өөрийн бие даан судалсан материал болон багшийн зөвлөсөн санал бодлыг нэгтгэн өөрийн сонгосон төслийн ажлаа хийж гүйцэтгэхийг зорилгоо болгон уг төслөө хийж байна.Хүний хэрэгцээ гэдэг хязгааргүй зүйл. Хэрэгцээгээ дагаад бүх зүйл нэг л мэдэхэд хуучирч түүнээс илүү ихийг хайж эрэлхийлж байдаг юм. Орчин үед хүний хэрэгцээг бүрэн хангасан, хүний хөдөлмөрийг хялбарчлах олон шинэ технологууд гарч ирж байна. Төслийн ажлаараа хийхээр зориж буй зайн электрон метр маань дан ганц зайг хэмжиж болох юм. Энэхүү метр нь дугуй түрж хэмжилт хийх ба сунгадаг метр, лазер метрээс давуу талтай юм. Учир нь лазер метр ямар нэгэн биет дээр ойлгож хэмжих учраас гадаад орчинд хэмжилт хийхэд дутагдалтай юм. Мөн сунгадаг метрээр хэмжихэд цаг хугацаа их орох, ихээхэн хэмжээний зай хэмжихэд хязгаарлагдмал байдаг. Харин энэхүү дугуйтай метр нь цаг зав хэмнээд зогсохгүй гадаад орчинд хэмжилт хийхэд илүү тохиромжтой байх ба маш их хэмжээний зайг хэмжиж болох юм. Хаана, ямар газар, ямар нөхцөлд хэмжилт хийх гэж байгаагаас шалтгаалан дугуйны хэмжээ өөрчлөгдөх юм. Жишээ нь: маш том хэмжээний буюу тариан талбай, эдлэн газар хэмжих тохиолдолд дугуй нь том байх хэрэгтэй ба жижиг хэмжээний хэмжилт хийхэд дугуй жижиг байвал илүү тохиромжтой юм. Миний энэхүү төслийн ажлаараа хийх гэж буй электрон метр маань барилгын газар хэрэглэхэд илүү тохиромжтой байх юм.

2. Онолын хэсэг

3

Page 4: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

2.2 Encoder

2.2.1 Encoder нь эргэлтээр сэлгэн залгалт хийгддэг төхөөрөмжүүдийн хамгийн онцгой ач холбогдолтой төрөл юм. Олонх Encoder-ууд нь A болон B гаралтуудтай ба эдгээр нь Encoder эргэлдсэний улмаас сэлгэн залгагддаг.

Зураг 1

Контактын болон оптик Encoder гэж 2 ангилдаг. Контактын Encoder нь Encoder эргэлдсэний улмаас нээгдэж хаагддаг түлхүүрүүдтэй.

Оптик Encoder-ууд нь LED болон PHOTO транзисторуудтай нүхлэгдсэн дисктэй байдаг. Эдгээр мэдрүүрүүд нь дискэнд бэхлэгдсэн байдаг иймээс диск эргэлдэхэд гаралтандаа A эсвэл B –ийн хэлбэрийг гаргадаг. Хуучны компьютрийн хулганы зарчимтай ижил ажиллагаатай байдаг.

Контактын Encoder нь ихэнхдээ гурван хөлтэй байдаг. Эдгээрийн голынх нь GROUND нөгөө хоёр нь газартай сэлгэн залгагддаг A ба B хөлнүүд юм. Тухайн хоёр сэлгэн залгуурын хөлийг микроконтроллёр луу холбохдоо микроконтроллёрын оролтонд pull-up эсэргүүцэлээр дамжуулан холбодог.

Харин оптик Encoder-ууд нь өөрийн гэсэн pull-up эсэргүүцэл дотор нь суурилагдсан байдаг. Мөн тэжээл, газар болон A болон B хөлүүдтэй. Оптик Encoder нь сэлгэн залгалт хийх трансистортой.

4

Page 5: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

2.2.2 Оптик Encoder

Нарийвчлал өндөрсгөх зорилгоор доорх зургийн адилаар хуваалт хийдэг. Доорх хуваалтыг дугуйн гол дээр бэхэлснээр дугуй болон голын эргэлтийн хурдыг дугуйн дээрх нэг толбыг оптик мэдрүүрээр илэрхийлж болно. Ямар нэгэн хугацаанд дугуй эргэлт хийхэд хар цагаан толбоны мэдрүүрээр тоолсон тоогоор хурд болон хэдэн эргэлт хийснийг тооцоолон улмаар туулсан замын хэмжээг илэрхийлнэ.

Зураг 2

Жишээ нь: дугуйг 24 толботой болгон хуваахад 360 градусыг нэг толбо нэг толбонд 15 градус ноогдож байхаар хуваана. Ингэснээр дугуйн гол 15 градусын эргэлт хийхэд нэг мэдрэмжээр нэмэгдэх гэх мэтээр тоололт хийж нарийвчлалыг өндөр болгоно. Гэвч нэмэгдүүлдэг тоолуурын хувьд зөвхөн нэг чигт эргэлт тоолох боломжтой.

Зураг 3

5

Page 6: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

2.3 Микроконтроллёр

2.3.1 Микроконтроллёрийн тухай

Микроконтроллёрньдотроо үйлдэлхийдэг, гадны бусад төхөөрөмжүүдээ удирдах боломжтой, биеэ дааж ажиллах чадвартай төхөөрөмж юм. Удирдлагын программыг контроллёрт өөрт нь байх программын санах байгууламжид хадгалдаг. Энэ нь зөвхөн унших санах байгууламж (ROM) юм. Зөвхөн унших санах байгууламжаасаа хамаарч контроллёруудыг ангилдаг. Ашиглаж буй контроллёр маань PIC16F877A юм. Онцлогууд нь:

Ажиллах давтамж нь 20MHz

Flash Program Memory 8K

EEPROM 256

RAM 368

Тасалдлийн үүсгүүр 15

I/O порт нь 5 (A, B, C, D, E)

35 командын үгтэй

3 таймар тоолууртай

Зураг 4

2.4 LCD дэлгэц

2.4.1 LCD дэлгэцийн тухай

LCD гэдэг нь liquid crystal display буюу шингэн кристал дэлгэц юм. Жижиг олон тооны сегментүүдээс бүтэх бөгөөд ихэвчлэн халаасны тооны машин, электрон цаганд хэрэглэгддэг. Мөн дотороо график,

өнгөт гэх мэт маш олон төрөл байдаг.

6

Page 7: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

Зураг 5

3. Судалгааны хэсэг

3.1 Зай хэмжих

Орчин үед зайг янз бүрийн аргаар хэмжиж байгаагийн дотор лазер ашиглан хийсэн зай хэмжигч, дугуйний эргэлтийг ашиглан хийсэн зай хэмжигч, дууны долгион ашиглан хийсэн гэх мэт арга байна.

Зураг 6

Лазер мэдрүүр ашиглан хийсэн зайг хэмжих дээ тусгаж байгаа лазер гэрлийн долгионы уртыг ашиглан хэмждэг. Тухайн лазер гэрэл нь

тусаад буцаж ойж ирэхэд хүлээж аван фазын зөрүүг тооцоолон хэмжинэ. Ийм зай хэмжигчийг ихэвчлэн ойрын зайнд хэрэглэх ба орчиноос их хамаарна.

7

Page 8: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

Зураг 7

Зураг 8Энэхүү метр нь дугуй түрж хэмжилт хийх ба сунгадаг метр, лазер метрээс давуу талтай юм. Учир нь лазер метр ямар нэгэн биет дээр ойлгож хэмжих учраас гадаад орчинд хэмжилт хийхэд дутагдалтай юм. Мөн сунгадаг метрээр хэмжихэд цаг хугацаа их орох, ихээхэн хэмжээний зай хэмжихэд хязгаарлагдмал байдаг. Харин энэхүү дугуйтай метр нь цаг зав хэмнээд зогсохгүй гадаад орчинд хэмжилт хийхэд илүү тохиромжтой байх ба маш их хэмжээний зайг хэмжиж болох юм. Хаана, ямар газар, ямар нөхцөлд хэмжилт хийх гэж байгаагаас шалтгаалан дугуйны хэмжээ өөрчлөгдөх юм. Жишээ нь: маш том хэмжээний буюу тариан талбай, эдлэн газар хэмжих тохиолдолд дугуй нь том байх хэрэгтэй ба жижиг хэмжээний хэмжилт хийхэд дугуй жижиг байвал илүү тохиромжтой юм. Эдгээр зай хэмжигч багажууд метрүүд нь бүгд дутагдалтай болон сул талтай. Жишээ нь: Дугуйтай метр хэдэн арван километр хэмжиж байхад лазер болон дууны метр нь хэдхэн арван метр хэмжинэ.

8

Page 9: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

3.2 Rotary encoder3.2.1 Эргэлтийн encoder нь мотор болон дугуйний эргэлтийг тоолох зориулалттай. Төслийн ажилдаа E6A2-CWZ3C rotary encoder ашиглаж байгаа.

Энэхүү encoder нь 5V – 24 V тэжээлд ажилдаг. A, B , Z гэсэн 3-нзадгай коллекторын гаралттай. Нарийвчлал нь 500 ppr, гадаад диаметр нь 25 мм нэмэгдүүлэх rotary encoder юм.

Зураг 9

9

Page 10: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

Хүснэгт 1*1. Ойролцоогоор 0.3 ms –ийн ойролцоогоор 9 А гүйдэлд асна.*2. Хамгийн их цахилгаан үйлчлэх хурд нарийвчлал ба хамгийн их үйлчлэх давтамжаар тодорхойлогдоно.

*3. Ус ба тосноос хамгаалагдаагүй.

10

Page 11: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

Зураг 10 Хүснэгт 2

Гаралтын maximum гүйдэл нь 20 mA байна. Z гаралт нь нэг бүтэн эргэхэд нэг импульс шиднэ.

Зураг 11

H ба L нь гаралтын хүчдэлийн төвшинг зааж байна. Цагийн зүүний дагуу A ба B гаралт нь 1/4 Т +- 1/8 Т , цагийн зүүний эсрэг бол B нь A -ийн ардаас 1/4 Т +- 1/8 Т хоцорч явна .

Зураг 12

11

Page 12: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

4 – dia тойрог тусгаарлагдсан кабел 5-н дамжуулагч утастай. Дамжуулагч утасын дамжиж өнгөрөх хэсэг 0.14 мм2 , тусгаарлагчийн диаметр нь 0.9 мм байна. Стандарт урт нь 500 мм

3.3 LCD дэлгэц

3.3.1 Төслийн ажилдаа хэрэглэхээр 16char x 2 line ба C1602A дэлгэцийг сонгож авсан. Гадаад овор хэмжээ нь:

Зураг 13

Хүснэгт 3

Тооцоо:

12

Page 13: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

Дугуйны радиус нь: 10 см

Дугуйны урт = 2πR = 2*3.14*10 = 62.8 см

Encoder-ийн нарийвлал 500 ба encoder нэг эргэхэд 500 импульс гаргана. Миний хийсэн төслийн ажлын механик хэсэгт ашигласан дугуй нэг бүтэн эргэхэд encoder 4 эргэж байгаа буюу 2000 импульс гаргаж байгаа.

2000/62.8 = 31

1см –т 31 импульс байна.

Зураг 14

4. Төслийн хэсэг

13

Page 14: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

4.1 Төслийн ажлын бүтцийн схем

Дугуй эргэх үед Encoder дугуйны эргэлтийг тоолох бөгөөд тоолсон утгаа контроллёр /PIC16F877A/ -т өгнө.

Контроллёр боловсруулалт хийгээд дэлгэцэнд хэвлэнэ. Дэлгэцэнд хэвлэхийн өмнө гарнаас тусгай зориулалтын

функцүүдээр дэлгэцэнд хэвлэх өгөгдлөө хөрвүүлж болно.

14

Page 15: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

4.2 Зарчмын схем

15

Page 16: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

4.3 Програмын блок схем

16

Page 17: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

4.4 Програмын эх код

#include "F:\tosolsource\project1.h"#include <LCDMY.C>#include "string.h"#include <math.h>#include <stdio.h>#include <stdlib.h> int16 cnt1=0,cnt2=0; int16 k, l, tmp,KEY,n; int32 x,y=0,z=0,s; int32 counter=0,tal,cnt11=0,cnt22=0; int16 data1[10]={0,0,0,0,0,0,0,0,0,0};INT CONST

START=0X0F,STOP=0XF0,SAVE=0X0D,TALBAI=0x02,CLEAR=0x03,Leng=0x05,BTNNEGJ=0X01;

INT NUL=0X00,METER,BUHEL,BUTAR;BOOLEAN RUN=FALSE,NEGJ=FALSE;

void convert(int32 data,int32 n){ for(x=0;x<n;x++) { data1[x]=data%10+48; data=data/10; } for (x=0;x<n;x++) lcd_send_byte(1,data1[n-1-x]); }#int_EXTEXT_isr(){ if (INPUT(PIN_B1)==1) counter++; else IF (COUNTER!=0) counter-- ;}void LCDSet(){ cnt1=counter/3100; cnt2=counter/31%100; lcd_gotoxy(1,2); convert(cnt1,3); lcd_putc("."); convert(cnt2,2); lcd_gotoxy(8,2); lcd_putc("m"); delay_ms(200);}char keypad(){ INT RET;

17

Page 18: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

RET=NUL; for(k=0;k<4;k++){ switch(k){ case 0: output_c(254); break; case 1: output_c(253); break; case 2: output_c(251); break; case 3: output_c(247); break; } for(l=0;l<4;l++){ switch(l){ case 0: tmp=input(PIN_A0); break; case 1: tmp=input(PIN_A1); break; case 2: tmp=input(PIN_A2); break; case 3: tmp=input(PIN_A3); break; } if(tmp != 1) { if(k==0){ switch(l){ case 0: RET=START; break; case 1: RET=STOP; break; case 2: RET=CLEAR; break; case 3: RET=Leng; break; } } else if(k==1) { switch(l) { case 0: RET=SAVE; break; case 1: RET=TALBAI; break; } } } } } RETURN RET;}void main(){ setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF);

18

Page 19: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

setup_psp(PSP_DISABLED); setup_spi(FALSE); setup_counters(RTCC_INTERNAL,RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); enable_interrupts(INT_EXT); disable_interrupts(INT_EXT); enable_interrupts(GLOBAL);

lcd_init(); SET_TRIS_A( 0x00 ); SET_TRIS_C( 0x00 ); SET_TRIS_B( 0XFF ); lcd_putc("PRESS BUTTON");while(1) { KEY=KEYPAD(); if (key==START) { WHILE(KEYPAD()!=NUL); lcd_clear(); lcd_gotoxy( 1, 1); lcd_putc("Start"); RUN=TRUE; counter=0; n=0; enable_interrupts(INT_EXT); } if (key==SAVE) {WHILE(KEYPAD()!=NUL); lcd_clear(); lcd_gotoxy( 1, 1); lcd_putc("Save"); Z=Y; Y=counter/31; } if (key==CLEAR) { WHILE(KEYPAD()!=NUL); lcd_clear(); lcd_gotoxy( 1, 1); lcd_putc("Clear"); counter = 0; tal=0; Z=0; Y=0; cnt11=0,cnt22=0; }

19

Page 20: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

if (key==BTNNEGJ) { WHILE(KEYPAD()!=NUL); NEGJ=!NEGJ; } if (key==TALBAI) { lcd_clear(); lcd_gotoxy( 1, 1); lcd_putc("Square"); lcd_gotoxy(15,1); lcd_putc("2"); tal=(Z+20)*(Y+20);

cnt11=tal/10000; cnt22=tal%10000; lcd_gotoxy(1,2); convert(cnt11,8); lcd_putc("."); convert(cnt22,4); lcd_gotoxy(14,2); lcd_putc("m"); } if(key==Leng) { lcd_clear(); lcd_gotoxy(1,1); lcd_putc("Length"); if(n<1) {if(cnt2>=81) { cnt2=cnt2+20; s=cnt2/100; cnt1=cnt1+s; } else cnt2=cnt2+20; n++; } lcd_gotoxy(1,2); convert(cnt1,3); lcd_putc("."); convert(cnt2,2); lcd_gotoxy(8,2); lcd_putc("m"); delay_ms(200); } WHILE (RUN) { KEY=KEYPAD();

20

Page 21: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

if (key==BTNNEGJ) { WHILE(KEYPAD()!=NUL); NEGJ=!NEGJ; } if (key==STOP) { lcd_clear(); lcd_gotoxy( 1 , 1); lcd_putc("Stop"); DISABLE_interrupts(INT_EXT); RUN=FALSE; } LCDSet(); } }}

21

Page 22: төсөл лхагваа

Төслийн ажил Уртын электрон хэмжүүр

22