төсөл лхагваа
TRANSCRIPT
Төслийн ажил Уртын электрон хэмжүүр
Гарчиг
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
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
1. Төслийн ажлын агуулга, зорилго
1.1 Төслийн сэдэв
Уртын электрон хэмжүүр
1.2 Төслийн ажлын зорилго
Техникийн дэвшилийн асар хурдацтай өнөө үед бид бүхний хэрэглэж дадсан танил болсон зүйл бүхэн маань мөн л энэ хурдацаар хувьсан өөрчлөгдөж хэлбэр дүрс хэмжээгээ өөрчлөн тэр бүр нь хүний шинэ хэрэгцээнд зохицон нийцэж байдаг билээ. Энэхүү төслийн ажлаар алсын зайг хэмжиж болох электрон метр бүтээх юм. Компьютер техник менежментийн сургуульд үзэж судалсан хичээлүүд, өөрийн бие даан судалсан материал болон багшийн зөвлөсөн санал бодлыг нэгтгэн өөрийн сонгосон төслийн ажлаа хийж гүйцэтгэхийг зорилгоо болгон уг төслөө хийж байна.Хүний хэрэгцээ гэдэг хязгааргүй зүйл. Хэрэгцээгээ дагаад бүх зүйл нэг л мэдэхэд хуучирч түүнээс илүү ихийг хайж эрэлхийлж байдаг юм. Орчин үед хүний хэрэгцээг бүрэн хангасан, хүний хөдөлмөрийг хялбарчлах олон шинэ технологууд гарч ирж байна. Төслийн ажлаараа хийхээр зориж буй зайн электрон метр маань дан ганц зайг хэмжиж болох юм. Энэхүү метр нь дугуй түрж хэмжилт хийх ба сунгадаг метр, лазер метрээс давуу талтай юм. Учир нь лазер метр ямар нэгэн биет дээр ойлгож хэмжих учраас гадаад орчинд хэмжилт хийхэд дутагдалтай юм. Мөн сунгадаг метрээр хэмжихэд цаг хугацаа их орох, ихээхэн хэмжээний зай хэмжихэд хязгаарлагдмал байдаг. Харин энэхүү дугуйтай метр нь цаг зав хэмнээд зогсохгүй гадаад орчинд хэмжилт хийхэд илүү тохиромжтой байх ба маш их хэмжээний зайг хэмжиж болох юм. Хаана, ямар газар, ямар нөхцөлд хэмжилт хийх гэж байгаагаас шалтгаалан дугуйны хэмжээ өөрчлөгдөх юм. Жишээ нь: маш том хэмжээний буюу тариан талбай, эдлэн газар хэмжих тохиолдолд дугуй нь том байх хэрэгтэй ба жижиг хэмжээний хэмжилт хийхэд дугуй жижиг байвал илүү тохиромжтой юм. Миний энэхүү төслийн ажлаараа хийх гэж буй электрон метр маань барилгын газар хэрэглэхэд илүү тохиромжтой байх юм.
2. Онолын хэсэг
3
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
2.2.2 Оптик Encoder
Нарийвчлал өндөрсгөх зорилгоор доорх зургийн адилаар хуваалт хийдэг. Доорх хуваалтыг дугуйн гол дээр бэхэлснээр дугуй болон голын эргэлтийн хурдыг дугуйн дээрх нэг толбыг оптик мэдрүүрээр илэрхийлж болно. Ямар нэгэн хугацаанд дугуй эргэлт хийхэд хар цагаан толбоны мэдрүүрээр тоолсон тоогоор хурд болон хэдэн эргэлт хийснийг тооцоолон улмаар туулсан замын хэмжээг илэрхийлнэ.
Зураг 2
Жишээ нь: дугуйг 24 толботой болгон хуваахад 360 градусыг нэг толбо нэг толбонд 15 градус ноогдож байхаар хуваана. Ингэснээр дугуйн гол 15 градусын эргэлт хийхэд нэг мэдрэмжээр нэмэгдэх гэх мэтээр тоололт хийж нарийвчлалыг өндөр болгоно. Гэвч нэмэгдүүлдэг тоолуурын хувьд зөвхөн нэг чигт эргэлт тоолох боломжтой.
Зураг 3
5
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
Зураг 5
3. Судалгааны хэсэг
3.1 Зай хэмжих
Орчин үед зайг янз бүрийн аргаар хэмжиж байгаагийн дотор лазер ашиглан хийсэн зай хэмжигч, дугуйний эргэлтийг ашиглан хийсэн зай хэмжигч, дууны долгион ашиглан хийсэн гэх мэт арга байна.
Зураг 6
Лазер мэдрүүр ашиглан хийсэн зайг хэмжих дээ тусгаж байгаа лазер гэрлийн долгионы уртыг ашиглан хэмждэг. Тухайн лазер гэрэл нь
тусаад буцаж ойж ирэхэд хүлээж аван фазын зөрүүг тооцоолон хэмжинэ. Ийм зай хэмжигчийг ихэвчлэн ойрын зайнд хэрэглэх ба орчиноос их хамаарна.
7
Төслийн ажил Уртын электрон хэмжүүр
Зураг 7
Зураг 8Энэхүү метр нь дугуй түрж хэмжилт хийх ба сунгадаг метр, лазер метрээс давуу талтай юм. Учир нь лазер метр ямар нэгэн биет дээр ойлгож хэмжих учраас гадаад орчинд хэмжилт хийхэд дутагдалтай юм. Мөн сунгадаг метрээр хэмжихэд цаг хугацаа их орох, ихээхэн хэмжээний зай хэмжихэд хязгаарлагдмал байдаг. Харин энэхүү дугуйтай метр нь цаг зав хэмнээд зогсохгүй гадаад орчинд хэмжилт хийхэд илүү тохиромжтой байх ба маш их хэмжээний зайг хэмжиж болох юм. Хаана, ямар газар, ямар нөхцөлд хэмжилт хийх гэж байгаагаас шалтгаалан дугуйны хэмжээ өөрчлөгдөх юм. Жишээ нь: маш том хэмжээний буюу тариан талбай, эдлэн газар хэмжих тохиолдолд дугуй нь том байх хэрэгтэй ба жижиг хэмжээний хэмжилт хийхэд дугуй жижиг байвал илүү тохиромжтой юм. Эдгээр зай хэмжигч багажууд метрүүд нь бүгд дутагдалтай болон сул талтай. Жишээ нь: Дугуйтай метр хэдэн арван километр хэмжиж байхад лазер болон дууны метр нь хэдхэн арван метр хэмжинэ.
8
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
Хүснэгт 1*1. Ойролцоогоор 0.3 ms –ийн ойролцоогоор 9 А гүйдэлд асна.*2. Хамгийн их цахилгаан үйлчлэх хурд нарийвчлал ба хамгийн их үйлчлэх давтамжаар тодорхойлогдоно.
*3. Ус ба тосноос хамгаалагдаагүй.
10
Төслийн ажил Уртын электрон хэмжүүр
Зураг 10 Хүснэгт 2
Гаралтын maximum гүйдэл нь 20 mA байна. Z гаралт нь нэг бүтэн эргэхэд нэг импульс шиднэ.
Зураг 11
H ба L нь гаралтын хүчдэлийн төвшинг зааж байна. Цагийн зүүний дагуу A ба B гаралт нь 1/4 Т +- 1/8 Т , цагийн зүүний эсрэг бол B нь A -ийн ардаас 1/4 Т +- 1/8 Т хоцорч явна .
Зураг 12
11
Төслийн ажил Уртын электрон хэмжүүр
4 – dia тойрог тусгаарлагдсан кабел 5-н дамжуулагч утастай. Дамжуулагч утасын дамжиж өнгөрөх хэсэг 0.14 мм2 , тусгаарлагчийн диаметр нь 0.9 мм байна. Стандарт урт нь 500 мм
3.3 LCD дэлгэц
3.3.1 Төслийн ажилдаа хэрэглэхээр 16char x 2 line ба C1602A дэлгэцийг сонгож авсан. Гадаад овор хэмжээ нь:
Зураг 13
Хүснэгт 3
Тооцоо:
12
Төслийн ажил Уртын электрон хэмжүүр
Дугуйны радиус нь: 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
Төслийн ажил Уртын электрон хэмжүүр
4.1 Төслийн ажлын бүтцийн схем
Дугуй эргэх үед Encoder дугуйны эргэлтийг тоолох бөгөөд тоолсон утгаа контроллёр /PIC16F877A/ -т өгнө.
Контроллёр боловсруулалт хийгээд дэлгэцэнд хэвлэнэ. Дэлгэцэнд хэвлэхийн өмнө гарнаас тусгай зориулалтын
функцүүдээр дэлгэцэнд хэвлэх өгөгдлөө хөрвүүлж болно.
14
Төслийн ажил Уртын электрон хэмжүүр
4.2 Зарчмын схем
15
Төслийн ажил Уртын электрон хэмжүүр
4.3 Програмын блок схем
16
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
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
Төслийн ажил Уртын электрон хэмжүүр
22