báo-cáo-đồ-án-1 (1)

76
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN- ĐIỆN TỬ BÁO CÁO HỆ THỐNG NHÚNG Đề tài: ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM HIỂN THỊ GLCD 128X64 GVHD : Võ Minh Huân SVTH : Trần Anh Đề 12141058 Đỗ Văn Phú 12141169 Nguyễn Gia Bảo 12141013

Upload: giabao1993

Post on 08-Nov-2015

36 views

Category:

Documents


16 download

DESCRIPTION

dhspkt

TRANSCRIPT

Cho Em

TRNG I HC S PHM K THUTTHNH PH H CH MINHKHOA IN- IN T

BO CO H THNG NHNG ti: O KHONG CCH BNG SNG SIU M

HIN TH GLCD 128X64

GVHD : V Minh Hun

SVTH : Trn Anh 12141058

Vn Ph12141169

Nguyn Gia Bo12141013Tp.H Ch Minh, ngy 26 thng 05 nm 2015MC LC

Chng I GII THIU YU CU- MC CH TI..31.1 GII THIU...31.2 MC CH NGHIN CU..31.3 GII HN..3Chng II KHO ST S KHI......4

2.1 TM TT..4

2.2 KHO ST S KHI....4

2.2.1 THIT K S NGUYN L.....5

2.2.2 LU V CHNG TRNH...25Chng III THI CNG MCH..44

3.1 V S NGUYN L44

3.2 V PCB...45

3.3 GIA CNG, LP RP V KIM TRA MCH...48Chng IV KT QU THC HIN V KT LUN..53TI LIU THAM KHO...54

Chng 1: GII THIU YU CU GII HN CA TI1.1GII THIU Vic o lng, c bit l o lng khong cch l rt quan trng trong cuc sng. o lng khong cch gip con ngi bit c khong cch t s vt ny n s vt khc, thun tin cho vic tnh ton v xc nh cc thng s nh chiu di, chiu rng, chiu cao, din tch, th tch v.v V ti ny c th tm lc ngn gn trong cc sau: Chc nng ca thit b o khong cch: Dng o lng, kho st v tnh ton khong cch vt l trong thc t. C nhiu loi thit b o khong cch nh: Thc, s dng laser, s dng sng siu m v.v ti ny s ch yu trnh by v thit b o khong cch s dng sng siu m. ti c s dng 1 s ti liu c lin quan v c ghi r ngun. C th xem phn Ti liu tham kho.1.2MC CH NGHIN CU

ti c thc hin vi mc ch o khong cch bng cch ng dng sng siu m(sng m thanh). Cc khu x l s liu o khng cn can thip ca con ngi. ton b qu trnh o, x l s liu o v hin th cho ngi dng u c my mc m nhim nh s phi hp ca cc khi chc nng.

1.3GII HNV ang l sinh vin ang theo hc i hc nn vi ti ny ti ch c th u t cc linh kin cho thit b ph hp vi iu kin kinh t cng nh trnh kin thc m ti tch ly c cho n hin gi. Cc linh kin ti s dng trong ti ny nh sau: Vi iu khin: Kit Arduino Uno R3.

Hin th LCD: GLCD 128x64 chip iu khin ST7920.

Cm bin: Cm bin siu m HC-SR04.

Cc linh kin khc: 8 nt nhn Up, Dw, Start, Select v.v, led, in tr, buzzer.Chng 2: KHO ST S KHI2.1. TM TT:Vic phi hp o t, tnh ton, hin th cc thng s cn thit ca thit b s do cc khi chc nng m nhim. V cho vic o t v hin th c din ra ng yu cu ca ti th ti s dng 4 khi chc nng: Khi ngun.

Khi vi x l. Khi cm bin. Khi hin th. Khi nt nhn.2.2. KHO ST S KHI: d hnh dung hn vic phi hp lm vic gia cc khi chc nng trong thit b ca ti, di y l phn trnh by v s khi v chc nng c th tng khi cng nh cch thc phi hp lm vic gia cc khi.

Hnh 2.1 S khi thit b o khong cch dng sng siu m.Chc nng tng khi:

Khi ngun: c chc nng cp ngun cho ton b mch hot ng.

Khi vi x l: B x l trung tm. X l, tnh ton s liu v iu khin cc khi cm bin, hin th.

Khi cm bin: o v chuyn s liu ti khi vi x l.

Khi hin th: Hin th s liu tnh ton, thng tin theo yu cu.

Khi nt nhn: Giao tip gia con ngi vi thit b.2.2.1 THIT K S NGUYN La. KHI VI X L:Khi vi x l chnh s dng trong ti ny l kit Arduino UNO R3 do sn xut. Arduino UNO R3 s dng vi x l 8-bit ATmega 328 ca Atmel. Cc dng vi x l ny cho php lp trnh cc ng dng iu khin phc tp do c trang b cu hnh mnh vi cc loi b nh ROM, RAM, Flash, cc ng vo ra digital I/O trong c nhiu ng c kh nng xut tn hiu PWM, cc ng tn hiu Analog v cc chun giao tip a dng nh UART, SPI, I2C(TWI).

Hnh 2.2 Kit Arduino Uno R3.

Di y l mt s thng s ca Kit Arduino Uno R3

Vi iu khinATmega328 (h 8bit)

in p hot ng5V DC (ch c cp qua cng USB)

Tn s hot ng16MHz

Dng tiu th30mA

in p vo khuyn dng7-12V DC

in p vo gii hn6-20V DC

S chn Digital I/O14 (6 chn PWM)

S chn Analog6 ( phn gii 10bit)

Dng ti a trn mi chn I/O30 mA

Dng ra ti a (5V)500 mA

Dng ra ti a (3.3V)50 mA

B nh flash32 KB (ATmega328) vi 0.5KB dng bi bootloader

SRAM2 KB (ATmega328)

EEPROM1 KB (ATmega328)

vic s dng kit Arduino UNO R3 c d dng hn, sau y l mt s thng tin quan trng m ngi dng cn phi bit r: Ngun: Arduino UNO c th c cp ngun 5V DC thng qua cng USB hoc cp ngun ngoi vi in p khuyn dng l 7-12V DC v gii hn l 6-20V. Thng th cp ngun bng Pin 9V l hp l nht nu nh khng c sn ngun t cng USB. Nu cp ngun vt qu ngng gii hn trn, Arduino c th s b hng.

Nhm chn nng lng trn Arduino:GND(Ground): Cc m ca ngun in cp cho Arduino UNO. Khi kt ni Arduino vi ngun v giao tip vi cc thip b khc th chn GND ca mi phn t phi c ni chung vi nhau. 5V: Cp in p 5V u ra. Dng ra ti a cho php chn ny l 500mA. 3.3V: Cp in p 3.3V u ra. Dng ti a cho php ca chn ny l 50mA. Vin(Voltage Input): cp ngun ngoi cho Arduino UNO, ta cn phi ni cc dng vi chn ny cn cc m ni vi chn GND. IOREF: in p hot ng ca vi iu khin trn Arduino UNO c th c o chn ny. p ny lun l 5V. Mc d vy ta khng c ly ngun 5V t chn ny s dng bi chc nng ca n khng phi l cp ngun. RESET: Vic nhn nt Reset trn board reset vi iu khin tng ng vi vic chn RESET c ni vi GND qua 1 in tr 10K.

Lu : Arduino UNO khng c bo v cm ngc ngun vo. Do phi ht sc cn thn, kim tra cc cc m dng ca ngun trc khi cp cho Arduino UNO. Vic lm chp mch ngun vo ca Arduino UNO s bin n thnh mt ming nha chn giy. Khuyn khch nn dng ngun t cng USB nu c th.

Cc chn 3.3V v 5V trn Arduino l cc chn dng cp ngun ra cho cc thit b khc, khng phi l cc chn cp ngun vo. Vic cp ngun sai v tr c th lm hng board. iu ny khng c nh sn xut khuyn khch.

Cp ngun ngoi khng qua cng USB cho Arduino UNO vi in p di 6V c th lm hng board.

Cp in p trn 13V vo chn RESET trn board c th lm hng vi iu khin ATmega328.

Cng dng in vo/ra tt c cc chn Digital v Analog ca Arduino UNO nu vt qu 200mA s lm hng vi iu khin.

Cp ip p trn 5.5V vo cc chn Digital hoc Analog ca Arduino UNO s lm hng vi iu khin.

Cng dng in qua mt chn Digital hoc Analog bt k ca Arduino UNO vt qu 40mA s lm hng vi iu khin. Do nu khng dng truyn nhn d liu, th phi mc mt in tr hn dng.

B nh: Vi iu khin Atmega 328 tiu chun cung cp cho ngi dng: 32KB b nh Flash: nhng on lnh ta lp trnh s c lu tr trong b nh Flash ca vi iu khin. Thng th s c khong vi KB trong s ny s c dng cho bootloader(Chng trnh h tr cho vic Upload chng trnh ln vi iu khin Atmega328 trn Kit Arduino).

2KB cho SRAM(StaticRandomAccessMemory): gi tr cc bin ta khai bo khi lp trnh s lu y. Khai bo cng nhiu bin th cng cn nhiu b nh RAM. Khi mt in, d liu trn SRAM s b mt.

1KB EEPROM(ElectricallyErasebleProgrammableReadOnlyMemory): y ging nh mt chic cng mini ni c th c v ghi d liu ca mnh vo y m khng b mt khi cp in ging nh d liu trn SRAM.

Cc cng vo/ra: Arduino UNO c 14 chn digital dng c hoc xut tn hiu. Chng ch c 2 mc in p l 0V v 5V vi dng vo/ra ti a trn mi chn l 40mA. mi chn u c cc in tr pull-up t c ci t ngay trong vi iu khin ATmega328 (mc nh th cc in tr ny khng c kt ni).Mt s chn digital c chc nng c bit nh sau:

chn Serial: 0 (RX) v 1 (TX): dng gi (transmit TX) v nhn (receive RX) d liu TTL Serial. Arduino Uno c th giao tip vi thit b khc thng qua 2 chn ny. Kt ni bluetooth thng thy ni d hiu chnh l kt ni Serial khng dy. Nu khng cn giao tip Serial, khng nn s dng 2 chn ny nu khng cn thit

Chn PWM (~): 3, 5, 6, 9, 10, v 11: cho php ta xut ra xung PWM vi phn gii 8bit (gi tr t 0 28-1 tng ng vi 0V 5V) bng hm analogWrite(). Ni mt cch n gin, ta c th iu chnh c in p ra chn ny t mc 0V n 5V thay v ch c nh mc 0V v 5V nh nhng chn khc. Chn giao tip SPI:10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoi cc chc nng thng thng, 4 chn ny cn dng truyn pht d liu bng giao thc SPI vi cc thit b khc.

LED 13: trn Arduino UNO c 1 n led mu cam (k hiu ch L). Khi bm nt Reset, ta s thy n ny nhp nhy bo hiu. N c ni vi chn s 13. Khi chn ny c ngi dng s dng, LED s sng.

Arduino UNO c 6 chn analog(A0-A5) cung cp phn gii tn hiu 10bit(0 - 210-1) c gi tr in p trong khong(0V-5V). Vi chn AREFtrn board, ta c th a vo in p tham chiu khi s dng cc chn analog. Tc l nu ta cp in p 2.5V vo chn ny th ta c th dng cc chn analog o in p trong khong t 0V 2.5V vi phn gii vn l 10bit. c bit, Arduino UNO c 2 chn A4 (SDA) v A5 (SCL) h tr giao tip I2C/TWI vi cc thit b khc.b. KHI CM BINCm bin siu m c s dng trong ti ny l cm bin HC-SR04

Hnh 2.3 Cm bin HC-SR04.

HC-SR04 l module cm bin siu m dng o khong cch bng sng siu m. Sng siu m l sng m thanh thuc nhm sng c hc vi tc lan truyn trong khng kh khng cao, li dng iu ny m ngi ta c th o t khong cch da trn sng ny.

Nguyn l nh sau, u tin my s pht i mt chm sng siu m, khi lan truyn nu gp c vt cn sng s di v my thu, t thi gian pht i v nhn v ca chm sng ny ngi ta s tnh c khong cch ca vt cn.

Hnh 2.4 Nguyn l truyn v phn x sng m thanh.

Trn cm bin c 4 chn: VCC: Ngun cp cho cm bin 5V.

GND: t.

Trigger: Pin cho cc pht ---- ni trc tip vo chn ca vdk.

Echo: Pin cho cc thu ---- ni trc tip vo chn ca vdk.

Qu trnh hot ng ca cm bin l qu trnh ly thi gian sng m truyn i v di tr li tnh ton khong cnh theo cng thc S=V.t (V: Tc m thanh, S: Khong cch cn o,t=T/2 vi T l thi gian sng m truyn i v di li).

Hnh 2.5 Nguyn l hot ng cc chn cm bin HC-SR04

Khi bt u th vi iu khin s pht 1 xung vo pin Trigger c rng l 10us.

Sau khi c xung kch vo chn Trigger th cc pht ca cm bin s pht ra 8 xung ca sng m thanh ( v= 340m/s).

Ngay sau pin Echo vi iu khin s ko ln cao v i sng m thanh phn x li. khi gp sng phn x th pin Echo s c ko xung thp. Nh vy, thi gian pin Echo mc cao s chnh l thi gian sng m thanh i v v trn qung ng t cm bin ti vt cn.

Gii hn khng gian hot ng ca cm bin HC-SR04:

Hnh 2.6 Gii hn khng gian hot ng ca cm bin HC-SR04

Cm bin HC-SR04 hot ng n nh v chnh xc nht trong tm 30 gc hnh nn tnh t ng thng vung gc vi mt phng cha 2 mt thu v nhn ca cm bin. Cm bin HC-SR04 o c khong cch ti a chnh xc v n nh nht vi gii hn khong cch >= 3m tnh t mt cm bin n vt cn xc nh khon cch.c. KHI KHI HIN TH

Vic theo yu cu ca ti, khi hin th s s dng 1 LCD Graphic(GLCD) 128x64 pixel. y ti s s dng GLCD 128x64 pixel chip iu khin ST7920. Hnh dng thc v s chn GLCD 128x64 ST7920:

Hnh 2.7 Hnh dng thc v s chn GLCD 128x64 ST7920

Cc loi vng nh ca GLCD ST7920: CGROM (Character Generation ROM) : ROM dung lng 2M-bits cha font ch Trung Quc dng 16x16.

HCGROM (Half Height CGROM): ROM dung lng 16K-bits cha font ca 168 k t dng 16x8 nh trong hnh 2.8

Hnh 2.8 Cc k t 16x8 vng nh HCGROM CGRAM (Character Generation RAM) : RAM kch thc 64x16 bits cho php ngi dng t to k t ring dng 16x16.

Hnh 2.9 Cch to k t trong CGRAM

IRAM (ICON RAM) : RAM to icon 240 im dng 15x16. DDRAM (Display Data RAM): RAM lu d liu hin th ra mn hnh.

Hin th fonts ca HCGROM: ghi 2 bytes vo DDRAM hin th 2 k t dng 16x8, ni byte l 1 k t. Cc byte c ghi phi nm trong phm vi 02H7FH.

Hin th fonts ca CGRAM: ghi 2 bytes vo DDRAM hin th mt k t dng 16x16. Ch c php ghi 4 gi tr sau 0000H,0002H,0004H,0006H.

Hin th fonts ca CGROM: ghi 2 bytes vo DDRAM hin th mt k t. A140H D75FH l m BIG5, A1A0HF7FFH l m GB.

Ch : Lun ghi byte cao trc v byte thp sau.

Hnh 2.10 Cch ghi d liu vo vng nh DDRAM.

GDRAM (graphic display RAM) : Vng nh hin th nh gn 64x256 bits. Cc bc ghi d liu hin th ln GDRAM:

t t a ch hng dc (Y).

t a ch hng ngang (X).

Ghi D15-D8 vo GDRAM ( byte th 1).

Ghi D7-D0 vo GDRAM (byte th 2 ).

a ch GDRAM s t ng tng ln 1 chun b ghi 2 bytes tip theo.

Hnh 2.11 T chc vng nh GDRAM.

Tp lnh:

Nhm lnh 1 (Khi RE=0: nhm lnh c bn)

Hnh 2.12 Nhm lnh c bn.

Nhm lnh 2 (Khi RE=1: nhm lnh m rng)

Hnh 2.12 Nhm lnh m rng.

d. KHI NT NHN

Cc nt nhn giao tip gi thit b vi con ngi s c s dng trong ti l cc nt nhn 2 chn.

Vic giao tip vi nt nhn s gip ngi s dng thit b c th iu khin, tng tc vi thit b c d dn hn.

Bn cnh vic to thm giao tip nt nhn s d dng hn trong vic pht trin ti sau ny.

Hnh 2.13 Hnh dng thc nt nhn 2 chn.

e. KHI NGUNTheo nh phn thng tin v Kit iu khin Arduino nu trn. V khng thng xuyn dng ngun USB nn trong ti ny ti s s dng khi ngun vi u ra 9V DC, dng ra 500mA vi IC n p 7809. p ng ng vi yu cu ngun vo cho Kit Arduino. c th to c khi ngun trn, ti la chn c linh kin nh sau:

Ic n p 7809:

Hnh 2.14 Hnh dng thc v s chn dng IC n p 78XX.

Hnh 2.15 DataSheet IC n p 7809.

Cu diode:

Hnh 2.16 Hnh dng thc v s chn cu Diode RS507.

Hnh 2.17 DataSheet cu Diode RS50X

T in:Cc t in c s dng bao gm: T ha 2200uF/50V, t ha 100uF/25V, t gm 104. Chc nng chnh l lc ngun.f. S NGUYN L CHO TON MCH

Hnh 2.18 S nguyn l ton mch.

Gii thch tm gn cho s nguyn l: GLCD 128x64 ST7920 giao tip SPI vi Arduino thng qua 3 chn(c nh ngha trong th vin iu khin s gii thiu phn sau:

E(GLCD)(PinA4(Arduino).

RS(GLCD)(PinA3(Arduino).

R\W(GLCD)(PinA2(Arduino).

PSB ni Mass: Giao tip SPI.

Cc chn khc kt ni ng vi datasheet.

Cm bin HC-SR04 giao tip vi Arduino thng qua:

TriggerPin(Pin12(Arduino). EchoPin(Pin13(Arduino). Cc chn khc kt ni theo datasheet.

H thng nt nhn s giao tip theo trnh t sau: Button(a,b,up,down,left,right,select,start)(ArduinoPin(2,3,4,5,6,7,8,9). V qu trnh iu khin s dng tr ko ln(PULL_UP) trong vi iu khin nn khng cn s dng in tr ko ln ngoi. Led v buzzer giao tip theo th t Pin10 v Pin11 trn Arduino.

2.2.2 LU V CHNG TRNH a. GII THIU YU CU IU KHIN

Yu cn quan trng nht l yu cu o v hin th khong cch ln GLCD.

Ngoi ra trong qu trnh thc hin ti ti thm mt s yu cu iu khin khc c hng m rng hn cho thit b:

Cho php chn ch o bng giao din Menu bao gm: o khong cch, o din tch. Nhn Up, Down, L, R chn ch . Nu chn ch no th nhn Start bt u, thot th nhn B. mi ch u c chn n v o l Mt, Cm hay Dm bng nt A. Trong ch o khong cch: Nu khong cch di khong cch t(iu chnh khaorng cch t bng nt Up, Down, L, R) th s bo ng bng Buzzer v Led v hin ch WARING!! trn GLCD. Trong ch o din tch, khi o khong cch th nht. Mun ly khaorng cch th nhast th nhn Select ln 1, mun ly khaorng cch th 2 v tnh din tich th nhn Select ln 2.

b. GII THIU TRNH BIN DCH ARDUINO IDE

Cc thit b da trn nn tng Arduino c lp trnh bng ngn ring. Ngn ng ny da trn ngn ng Wiring c vit cho phn cng ni. V Wiring li l mt bin th ca C/C++. Mt s ngi gi n l Wiring, mt s khc th gi l C hay C/C++. Ring ti th gi n l ngn ng Arduino, v i ng pht trin Arduino cng gi nh vy. Ngn ng Arduino bt ngun t C/C++ ph bin hin nay do rt d hc, d hiu. Nu hc tt vic lp trnh vi ngn ng C c hc mn K thut lp trnh giao tip th vic lp trnh Arduino s rt d dng.

lp trnh cng nh gi lnh v nhn tn hiu t mch Arduino, nhm pht trin d n ny cng cp n cho ngi dng mt mi trng lp trnh Arduino c gi l Arduino IDE (IntergratedDevelopmentEnvironment) nh hnh di y.

Hnh 2.19 Arduino IDE v10.6.

c. GII THIU V TH VIN IU KHIN GLCD U8GLIB V CHUN GIAO TIP SPI

Th vin iu khin GLCD U8glib:

Th vin U8glib l th vin h tr iu khin rt nhiu chng loi GLCD cho Arduio c cng ng trn https://code.google.com/p/u8glib/ pht trin.

i vi GLCD ST7920, th vin U8glib c h tr c 2 cch thc giao tip l: Giao tip song song 8 ng, v giao tip theo chun truyn thng SPI. Trong ti, v l do Arduino khng chn giao tip nn ti chn cch giao tip theo chun truyn thng SPI. Cch s dng th vin U8glib:

Download: Th vin U8glib c download ti https://code.google.com/p/u8glib/

Hnh 2.20 a ch download U8glib.

Add th vin vo trnh bin dch Arduino IDE:

Sau khi download File th vin U8glib v my, ta tin hnh gii nn file.

Bt trnh bin dch Arduino IDE chn: Sketch(ImportLibrary(AddLibrary(Chn th mc th vin U8glib va gii nn lc trc(OK. Chy Demo th vin:

Kt ni GLCD vi Arduino ng theo s nguyn l trnh by trn.

Trong Arduino IDE chn: Example(U8glib(Hello Wold. Lc ny 1 chng trinh Demo cho hin th ch Hello World trn GLCD s xut hin.

Trong dy m b b bng du // ca chng trnh Demo, hy tm dng m U8GLIB_ST7920_128X64_1X u8g(18, 16, 17); v b // u dng m . Cc dng m b b bi // l cc dng m nh ngha thit b v chun giao tip. y thit b GLCD ta dng c tn l ST7920 v giao tip SPI nn ta phi chn ng dng m tng ng. Chun giao tip truyn thng SPI:SPI (Serial Peripheral Bus) l mt chun truyn thng ni tip tc cao do hang Motorola xut. y l kiu truyn thng Master-Slave, trong c 1 chip Master iu phi qu trnh tuyn thng v cc chip Slaves c iu khin bi Master v th truyn thng ch xy ra gia Master v Slave. SPI l mt cch truyn song cng (full duplex) ngha l ti cng mt thi im qu trnh truyn v nhn c th xy ra ng thi. SPI i khi c gi l chun truyn thng 4 dy v c 4 ng giao tip trong chun ny l SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) v SS (Slave Select).SCK:Xung gi nhp cho giao tip SPI, v SPI l chun truyn ng b nn cn 1 ng gi nhp, mi nhp trn chn SCK bo 1 bit d liu n hoc i. y l im khc bit vi truyn thng khng ng b m chng ta bit trong chun UART. S tn ti ca chn SCK gip qu trnh tuyn t b li v v th tc truyn ca SPI c th t rt cao. Xung nhp ch c to ra bi chip Master.

MISO Master Input / Slave Output:nu l chip Master th y l ng Input cn nu l chip Slave th MISO li l Output. MISO ca Master v cc Slaves c ni trc tip vi nhau..

MOSI Master Output / Slave Input:nu l chip Master th y l ng Output cn nu l chip Slave th MOSI l Input. MOSI ca Master v cc Slaves c ni trc tip vi nhau.

SS Slave Select:SS l ng chn Slave cn giao tip, trn cc chip Slave ng SS s mc cao khi khng lm vic. Nu chip Master ko ng SS ca mt Slave no xung mc thp th vic giao tip s xy ra gia Master v Slave . Ch c 1 ng SS trn mi Slave nhng c th c nhiu ng iu khin SS trn Master, ty thuc vo thit k ca ngi dng.

Trn Kit Arduino UNO, cc chn giao tip theo chn SPI tng ng l: Pin SPI(SCK,MOSI,MISO,SS)(PinArduino(13,11,12,10). Tuy nhin, v th vin h tr iu khin GLCD nh ngha cc chn SPI khc nn ta s s dng chn SPI theo ng nh th vin U8glib nh ngha nh sau: SPIArduino(SCK=PinA4,MOSI=PinA2,SS=PinA3)(PinGLCD(E,RS,R\W).d. LU

Lu chng trnh chnh:

Chng trnh con menu:

Chng trnh con o khong cch

Chng trnh con o din tch hnh ch nht

e. CHNG TRNH

Chng trnh o khong cch bng sng siu m hin th GLCD theo ng yu cu iu khin:

#include "U8glib.h"

U8GLIB_ST7920_128X64_4X u8g(18, 16, 17);

// SPI Com: SCK = en = 18 = PIN A4, //MOSI = rw = 16 = PIN A2, CS = di = 17 = PIN A3

//TH VIN U8GLIB L TH VIN H TR HIN TH GLCD 128X64 C 2 //CCH GIAO TIP: SONG SONG, V SPI...

// Y CHN GIAO TIP SPI TIT KIM CHN ARDUINO( CH GIAO //TIP N CNG NN CH S DNG MOSI-"CH GI,T NHN V HIN //TH")

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

const int A=2,B=3,UP=4,DW=5,L=6,R=7,ST=8,SL=9,LED=10,BZ=11;

const int trig=12;

const int echo=13;

unsigned long t_echo;

float kc=0;

float d1,d2,dt;

int br;

float gia_tri_an_toan=5;

unsigned int i;

unsigned mode = 1;

int cot=5;

String a="";

String kc_an_toan, bd, s_d1, nutB, nutVang, string_mode="(cm)";

String c;

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvoid setup()

{

//Serial.begin(9600);

pinMode(A, INPUT_PULLUP);

pinMode(B, INPUT_PULLUP);

pinMode(UP, INPUT_PULLUP);

pinMode(DW, INPUT_PULLUP);

pinMode(L, INPUT_PULLUP);

pinMode(R, INPUT_PULLUP);

pinMode(ST, INPUT_PULLUP);

pinMode(SL, INPUT_PULLUP);

pinMode(trig,OUTPUT);

pinMode(echo,INPUT);

pinMode(LED, OUTPUT);

pinMode(BZ, OUTPUT);

digitalWrite(LED,HIGH);

delay(100);

digitalWrite(LED,LOW);

gioi_thieu();

delay(5000);

u8g.setFont(u8g_font_6x12);

}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvoid loop()

{

menu();

if(cot==5)

dokhoangcach();

else dodientich();

}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvoid nut_mode()//nutA

{

if(digitalRead(A)==LOW)

{

tone(BZ,2300,50);

mode++;

if(mode>3) mode=1;

while(digitalRead(A)==LOW);

if(mode==1)string_mode="(cm)";

else if(mode==2)string_mode="(dm)";

else string_mode="(m)";

delay(50);

}

}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvoid menu()

{

//bd="";

kc_an_toan="";

s_d1="";

digitalWrite(LED,LOW);

nutB="";

nutVang="";

while(true)

{

nut_up_menu();

nut_down_menu();

u8g.firstPage();

do{

u8g.drawFrame(9,cot,110,13);

u8g.drawStr(22,14,"Do khoang cach");

u8g.drawStr(18,34,"Do dien tich hcn");

u8g.drawStr(0,60,"UP,DW Start");

}while(u8g.nextPage());

if(digitalRead(ST)==LOW) {tone(BZ,2300,50);while(digitalRead(ST)==LOW);break;}

}

}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvoid nut_up_menu()

{

if((digitalRead(UP)==LOW)|(digitalRead(L)==LOW))

{

tone(11,2300,50);

cot -=20;

if(cot30) cot=25;

while((digitalRead(DW)==LOW)|(digitalRead(R)==LOW));

delay(50);

}

}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvoid nut_up_kc()

{

if((digitalRead(UP)==LOW)|(digitalRead(L)==LOW))

{

if(digitalRead(L)==LOW)

{

tone(11,2300,50);

gia_tri_an_toan -=0.01;

}

else

{

tone(11,2300,50);

gia_tri_an_toan ++;

}

while((digitalRead(UP)==LOW)|(digitalRead(L)==LOW));

delay(50);

}

}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvoid nut_down_kc()

{

if((digitalRead(DW)==LOW)|(digitalRead(R)==LOW))

{

if(digitalRead(R)==LOW)

{

tone(11,2300,50);

gia_tri_an_toan +=0.01;

}

else

{

tone(11,2300,50);

gia_tri_an_toan --;

}

if(gia_tri_an_toan