Etaisyysmittari SRF04 toteutus

Toteutus

Ihan ensin täytyy tehdä muutoksia aikaisemmin tehtyyn laskuriin.

Eli täytyy rakentaa tai olla tehtynä tämän sivun laskuri. Kun se on tehty niin sitä täytyy muuttaa, jotta sen saisi toimimaan tässä etäisyysmittarissa. Tämä muutos ei estä tämän systeemin käyttöä myöhemmin laskurina. Tätä muutosta ei olisi tarvinnut tehdä, jos olisi aikaisemmin miettinyt tuota laskurin rautapuolen tekoa tarkemmin. Eli fiksu suunnittelu säästää aikaa myöhemmin. Mutta nyt siihen muutokseen.

Muutos ei ole kovin kummoinen. Täytyy ainoastaan muuttaa PIC16f628A pinnit 6 ja 13 ristiin. Laitan tähän pienen kuvasarjan kuinka itse tein tämän muutoksen. Klikkaa kuvia niin näet ne isompana.

Ensinmäisessä kuvassa on pelkkä folio puoli. Siihen on piirretty valkoinen nuoli osoittaan mitkä pinnit pitää vaihtaa ristiin. Tarvittavat katkokset näkyy mustalla värillä ja hyppylangat keltaisella.

Toinen kuva näyttääkin miten itse tein tuon muutoksen. Eli katkaisin kaksi johdinta. Katso mustalla värillä tehdyt nuolet. Sitten tinasin nuo keltaiset hyppylangat, eli ne keltaiset viivat ensinmäisessä kuvassa. Ja kuvassa on punaisella värillä ympäröity pari pientä virhettä kun tein tuota muutosta. Eli katkaisin ensin väärän johtimen ja tinasin siihen sitten tinasillan. Samoin ehdin tinaamaan tuon hyppylangan myös väärään kohtaan. Eli kannattaa vähän katsoa, että katkaisee oikeat kohdat.

Kun tämä on tehty voidaankin siirtyä itse SFR04-anturin kytkemiseen tähän systeemiin. Tähänkin pieni kuvasarja, joka helpottaa kytkemistä.

Tässä ensinmäinen kuva, joka kertoo mikä merkitys tuon SRF04 anturin liitännöillä on.

Ensin tinasin tuon SRF04 piirilevyyn holkkiriman ja tulppasin siitä tuon ”Do not connect”-liitännän. Tämä siksi, että tällä tavalla tulee samalla estettyä tuohon holkkirimaan tehdyn toisen holkkirima liitoksen asentaminen vahingossa väärinpäin. Siitä enemmän seuraavassa kuvassa.

Tässä näkyy nyt tuon tulppauksen idea (kts. valkoinen nuoli) ja johtojen värit. Nuo johdot kiinnitin tuohon holkkirimaan liimalla, jotta itse tinaus ei rasitu ja katkea, kun johtoja väännellään. Näin ollen voi helposti irroittaa nuo johdot SRF04-anturista ja väärinpäin kytkennän mahdollisuuskin on suljettu pois. Seuraavassa kuvassa näkeekin sitten kuinka nuo johdot pitää kytkeä riviliittimeen.

Eli jos lähdetään + merkistä alkaen vasempaan päin.

Niin itse + merkkiin ei tule SRF04-anturilta mitään johtoa.

Miinus – merkkiin tulee SRF04-anturin ground eli 0V.

Ensinmäiseen N-kirjaimeen tulee SRF04-anturin 5V suply.

Sitä seuraavan N-kirjaimeen tulee taasen SRF04 anturin echo pulse output.

Sen jälkeen tulee P-kirjain joka jätetään tyhjäksi.

Viimeiseen P-kirjaimeen tulee lopuksi SRF04-anturin trigger pulse input.

Siinä onkin kytkentä sitten yksinkertaisuudessaan. Tällä tavalla SRF04-anturi saa tarvittavan käyttöjännitteen ja ohjaukset.

Koodit

Ohjelmat joilla systeemi toimii oli melkoisen helppoja tehdä. Suurin osa koodista millä sain tuon SRF04-anturin ulos antaman pulssin muutettua senttimetreiksi löytyy täältä. Eli kierrätin aikasemmin tekemäni laskurin koodia tähän projektiin.

Mutta koska en halua viedä keneltäkään keksimisen iloa, siitä miten se SRF04-anturin lukeman muuttaminen vaikkapa senttimetreiksi onnistuu. Niin en julkaise siihen asemblykoodia.

Sen sijaan julkaisen pelkän PIC16f628A-I/P tulevan HEX-koodin. Joka kaiken lisäksi toimii vain 35s kerrallaan 4Mhz kiteellä. Ja jonka jälkeen etäisyysmittaus pysähtyy. Tämän jälkeen sen mittauksen saa päälle jälleen kun katkaisee käyttöjännitteen ja kytkee sen uudelleen. Ja taas mittaus toimii sen 35 sekunttia. Niin ja täytyy vielä sanoa, että koodi on tehty 4Mhz kiteelle. Eli jos laittaa vaikkapa 8Mhz kiteen niin mittaustuloksissa ei ole enää senttimetrejä vaan senttimetrit jaetaan kahdella eli 0,5cm. Samoin kuin tuon etaisyys.hex koodin toiminta-aika lyhenee puoleen 35s.

Mutta kummiskin, että tuon koodin kehittäminen ei menisi liian vaikeeksi, niin laitan kummiskin esille asemblykoodin, joka esittää binaarilukuna SRF04-anturin antaman tuloksen. Tästä voi sitten jokainen innokas alkaa kehittämään omaa koodia.

Eli ensin se HEX-koodi PIC16f628A-I/P:lle, joka toimii noin 35s 4Mhz kiteellä. Ja muuttaa SRF04-anturin tuloksen senttimetreiksi.


etaisyys.hex

Ja sitten se lähdekoodi etaisyys.asm , joka tuottaa pelkkää binaarilukua SRF04-anturin tuloksesta. Ja tähän voit sitten laittaa jonkun muunkin kiteen kuin pelkän 4Mhz. Sillä tähän täytyy itse kehittää se koodi, joka muuntaa PIC16f628A-I/P sisäisen TMR1-laskurin 16-bittisen binääriluvun luettavaksi luvuksi.


etaisyysbin.asm.

Sama koodi käännettynä HEX-muotoon valmiiksi.


etaisyysbin.hex.

Copyright <> jyrki.k(at)innopultti.fi <> Päivitetty: 9.2.2005