Digitalni merac broja obrtaja (obratometar)

Sve vezano za mikrokontrolere

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

evo, to je ova sema:
http://www.sportdevices.com/rpm_reading ... ensing.gif

ali gle sta se stavlja preko kabla:
http://www.sportdevices.com/rpm_reading ... pickup.jpg

a ja sam bas video takav originalni stage6 obrtomer kod druga, i samo dve male zicice se obmotaju 2-3 kruga i radi ko sat.. u ostalom, ako bas ne bude radilo, napravicu ovo sa ne555.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

Problem moze biti oblik impulsa. Samo zato sam preporucio NE555. Kako ovo radi sa triakom, nije mi bas jasno...
Ali tako neku semu bi mogao srediti ako budes imao problema sa picem da nece da broji impulse...
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

Pa dobro, dok cekam ekran, uz njega sam narucio i temperaturni senzor DS1820 koji cu da dodam na plocu
kod koji cu koristiti uzeo sam sa adrese: http://www.rentron.com/PICX4.htm

Code: Select all

' Picbasic Pro program to read DS1820 1-wire temperature sensor
'  and display temperature on LCD



' Allocate variables
command var     byte            ' Storage for command
i       var     byte            ' Storage for loop counter
temp    var     word            ' Storage for temperature
DQ      var     PORTB.4         ' Alias DS1820 data pin
DQ_DIR  var     TRISB.4         ' Alias DS1820 data direction pin


        ADCON1 = 7              ' Set PORTA and PORTE to digital

        Low PORTE.2             ' LCD R/W line low (W)
        Pause 100               ' Wait for LCD to start


' Mainloop to read the temperature and display on LCD
mainloop:
        Gosub init1820          ' Init the DS1820

        command = $cc           ' Issue Skip ROM command
        Gosub write1820

        command = $44           ' Start temperature conversion
        Gosub write1820

        Pause 2000      ' Wait 2 seconds for conversion to complete

        Gosub init1820          ' Do another init

        command = $cc           ' Issue Skip ROM command
        Gosub write1820

        command = $be           ' Read the temperature
        Gosub write1820
        Gosub read1820

       ' Display the decimal temperature
        Lcdout $FE, $C0, 1, dec (temp >> 1),".",dec(temp.0 * 5)," stepeni C"

        Goto mainloop           ' Do it forever


' Initialize DS1820 and check for presence
init1820:
        Low DQ                  ' Set the data pin low to init
        Pauseus 500             ' Wait > 480us
        DQ_DIR = 1       ' Release data pin (set to input for high)

        Pauseus 100             ' Wait > 60us
        If DQ = 1 Then
                Lcdout $fe, 1, "DS1820 not present"
                Pause 500
                Goto mainloop   ' Try again
        Endif
        Pauseus 400             ' Wait for end of presence pulse
        Return


' Write "command" byte to the DS1820
write1820:
        For i = 1 to 8          ' 8 bits to a byte
                If command.0 = 0 Then
                        Gosub write0    ' Write a 0 bit
                Else
                        Gosub write1    ' Write a 1 bit
                Endif
                command = command >> 1  ' Shift to next bit
        Next i
        Return

' Write a 0 bit to the DS1820
write0:
        Low DQ
        Pauseus 60              ' Low for > 60us for 0
        DQ_DIR = 1         ' Release data pin (set to input for high)
        Return

' Write a 1 bit to the DS1820
write1:
        Low DQ                  ' Low for < 15us for 1
@       nop                     ' Delay 1us at 4MHz
        DQ_DIR = 1        ' Release data pin (set to input for high)
        Pauseus 60             ' Use up rest of time slot
        Return


' Read temperature from the DS1820
read1820:
        For i = 1 to 16         ' 16 bits to a word
                temp = temp >> 1        ' Shift down bits
                Gosub readbit   ' Get the bit to the top of temp
        Next i
        Return

' Read a bit from the DS1820
readbit:
        temp.15 = 1             ' Preset read bit to 1
        Low DQ                  ' Start the time slot
@       nop                     ' Delay 1us at 4MHz
        DQ_DIR = 1        ' Release data pin (set to input for high)
        If DQ = 0 Then
                temp.15 = 0     ' Set bit to 0
        Endif
        Pauseus 60              ' Wait out rest of time slot
        Return

        End
iz koda sam izbacio definisanje za povezivanje lcd-a, stavio sam da temp izbacuje u drugu liniju, i podesio ulazni pin za senzor..
nadam se da sam dobro uradio?

Code: Select all

DQ      var     PORTB.4         ' Alias DS1820 data pin
DQ_DIR  var     TRISB.4         ' Alias DS1820 data direction pin
ovo znaci da spajam data pin senzora na rb4 pin pic-a 16f84a, sto bi odgovaralo pinu 10
i jel je to to, jel treba jos nesto da se izmeni i gde da stavljam ovaj kod u moj, definisanje varijabli cu spojiti, a ovo ostalo jel ima veze sta ide iznad cega?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

Samo to, koliko vidim...
Mada ima i jednostavnijih kodova za merenje sa ds-om, jer pbp ima onewire komunikaciju...
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

Au, nesto nece da kompajlira program..
skinuo sam micro code studio 4.0
i pbp kompajler 2.6, i njega instalirao u c:/pbp
i studiju idem view > complie and program options > prvi list , complier, isao sam na find automatically, nasao sam kompajler, i otkaceni su listing file i generate listing,..
kada sam hteo da kompajliram, izbacivao je mali prozorcic gde je pisalo searching mpasm i to nije nikad pronasao.
usao sam u list asembler i iskljucio opciju use mpasm
i sad mi izbacuje gresku

RPM = BROJ * 60 /// syntax error
lcdout $FE, $80, " RPM: ", dec5 rpm, " " ; prva linija /// bad expression

sta sada?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

Vidi gde je greska...
Daj ceo kod, sta si tacno pisao, pa da vidim sta se desava... Verovatno RPM nisi definisao kao promenljivu...
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

evo stiglo mi je, i sklopio sam ga. medjutim, kada sam krenuo da programiram pic, shvatio sam da sam narucio pic 16f648a , ali pogledao sam pinout, i sve je identicno kao i 16f84a

kod sam popravio, samo sam ponovo definisao rpm i sad imam hex fajl.
ali kada se ukljuci, i podesim osvetljenje lcd-a, na lcd u sijaju sva mesta za slova 16x2, i svi su skroz ispunjeni tackama.
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

evo i slike..
nemogu reci da sam profesionalno odradio jer sam se pred kraj uspanicio i poceo zice da ubacujem, ali sve je spojeni po shemi 100%

ovako se ponasa ekran kada sve ukljucim a potenciometar je sa oznakom 223 (22k) i ekran ovako radi samo kada je skroz odvijen i cim se malo zavrne ekran se stisava i nista ne prikazuje
http://img210.imageshack.us/img210/4435/dscn2370a.jpg

http://img341.imageshack.us/img341/5549/dscn2368v.jpg

http://img18.imageshack.us/img18/895/dscn2367bd.jpg
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

Tu je 22K puno, ja obicno stavim otpornik 2K prema masi. Ali to je za displeje sto ja nabavljam, kod svakog proizvodjaca je drugacije...
A sto se tice datasheeta, moras detaljnije gledati. Npr za pin 1 na F684 pise RA2/AN2/VREF, a kod F84 pise RA2. Sto znaci da ima neke razlike. Trebas pogasiti analogne pizdarije. Mislim na komparatore, ADC, i slicno...
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

ubacio sam ovo

Code: Select all

CMCON     = 7          ' PortA = digital I/O
VRCON     = 0          ' A/D Voltage reference disabled
ali opet isto
ko zna sta bi moglo biti, mozda problem nije uopste u mikrokontroleru.. zato da bio siguran ipak cu sacekati da nabavim 16f84a
a koji da narucim, u kelc u imaju dve verzije, jedan je sa 4mhz osc, a drugi je 20 mhz?
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

Ok. Mada verovatno ima i nesto sa ADCON, ne da mi se kopati po datasheetu...
Naruci jeftiniji :) Jer ionako ces ga vozati na 4MHz.
kuki21
Posts: 17
Joined: 04-12-2008, 20:52

Re: Digitalni merac broja obrtaja (obratometar)

Post by kuki21 »

Napravi sam obrtomjer po pedjinoj shemi .Međutim displey je cc to sam riješio sada me zanima mogu li umjesto sn 74ls47 koji je po datash. za ca upotrijebiti sn 74ls42 za njega nemogu skužiti kakđ radi iz datash pošto mi je engl.loš. Pa molim ta pedja i svi drugi pomoć je dobrodošla.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

74LS42 ne moze da ide... Tebi treba dekoder za sedmo segmentni displej...
kuki21
Posts: 17
Joined: 04-12-2008, 20:52

Re: Digitalni merac broja obrtaja (obratometar)

Post by kuki21 »

meni znaći treba ls7448 ili 74248 jer je displey cc
User avatar
puknuti
Odlično uznapredovao
Odlično uznapredovao
Posts: 670
Joined: 11-06-2007, 21:26
Location: Samobor
Contact:

Re: Digitalni merac broja obrtaja (obratometar)

Post by puknuti »

Jel može netko to napraviti i koliko novaca?
Dakle brojač okretaja koji se "dodirne" na visokonaponski kabel sviječice
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

Evo sad sam stavio 16f84a i opet ista situacija..

Ne znam sad sta jos mogu da probam, kako se programira pic16f84a, ja sam ga programirao sa pickit 2 programatorom i pickit 2 v2.61 program. U programu je cekiran kvadratic VDD Pickit 2 /MCLR a kvadratic ON nije cekiran (pored toga pise 5v) onda sam samo isao na auto import hex + write device i na kraju mi izbaci da je propgramiran ok.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

Vidi dali ti je oscilator dobro podesen, treba da bude xt ili hs...
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

Gde to da vidim, nisam nigde nasao?
Mozda treba da izmenim onu OSCAL vrednost, ono na pocetku ili na kraju hexa.
I mozda treba da definisem u kodu da se koristi externi oscilator.

evo krajnji kod, mozda jos nesto nije u redu, nejasno mi je ovo TRISA=0 , zasto je jednako nuli ako se koriste portovi a za lcd?

Code: Select all

TRISB.1=1
TRISA=0
BROJ VAR WORD
RPM VAR WORD
pause 500       
lcdout $FE, 1
POCETAK:
COUNT PORTB.1,1000,BROJ ' broji impulse na pinu RB1, u periodu od 1S i rezultat  smesta u "BROJ"
lcdout $FE, $80, "RPM=", dec rpm ; ispisuje na LCD-u RPM= i broj prikazuje kao decimalnu velic(inu
pause 10     
GOTO POCETAK
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Digitalni merac broja obrtaja (obratometar)

Post by pedja089 »

Pa da bi port bio izlazni...
Probaj smanjiti pull up na porta.4
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Digitalni merac broja obrtaja (obratometar)

Post by frwgrg »

stavio sam na pin 3 otpornik 2k2 prema masi, ali osvetljenje ekrana je isto. probao sam pin 5 ekrana na masu da stavim na kratko i samo se ekran malo zatamnio. pull up sa porta a.4 sam zamenio potenciometrom i okretao sam ga od 0 do 10 k oma, i isto opet.
Post Reply