Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

AC korektor sa Pic-om 16F877 i DS18B20

[es] :: Elektronika :: Mikrokontroleri :: AC korektor sa Pic-om 16F877 i DS18B20

[ Pregleda: 3865 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

danne
Negotin

Član broj: 19208
Poruke: 326
*.dynamic.isp.telekom.rs.



+1 Profil

icon AC korektor sa Pic-om 16F877 i DS18B2015.02.2015. u 13:20 - pre 110 meseci
Pozdrav, kupio sam knjigu "PROGRAMIRANJE MIKROKONTROLERA PicBasic-om" autora Voje Milanovica, i resio da napravim iz nje AC korektor, u knjizi je dato izgled plocice, program i sve lepo. E sad ja kupim delove napravim pcb i zaletujem sve to, isprogramiram PIC i kad resih da probam ne radi nista. 2-3 greske na pcb sam pronasao ali ove softwerske mi teze idu. Instalirao sam Proteus 8 i napravio simulaciju u njemu (doduse bez izlaznih releja i trafoa). Evo prilazem u .RAR zapakovan projekat za Proteus 8 i program, semu pa ako neko ima volje da mim pomogne

Hvala

[Ovu poruku je menjao danne dana 15.02.2015. u 17:15 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

npejcic
Nebojsa Pejcic
Nis

Član broj: 56690
Poruke: 109
*.netnet.rs.

Sajt: www.ePraktikum.iz.rs


+6 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2015.02.2015. u 14:47 - pre 110 meseci
Proveri koje config fuses treba da podesiš. Koliko vidim u HEX fajlu iz tvoje arhive, uključen je WDT, međutim u kodu nema nigde reseta istog pa je mikrokontroler non stop u resetu. Nikada nisam koristio PBP, ali pretpostavljam da on to ne radi automatski.
Znači isključi WDT prilikom programiranja, pa probaj ponovo. Takođe u HEX-u je podešen XT oscilator, to znači da možeš max 4MHz oscliator ili kristal da koristiš. Dešavalo mi se da neće da zaosciluje ako si potavio recimo 10MHz kristal a podesio XT u config fuses.
 
Odgovor na temu

danne
Negotin

Član broj: 19208
Poruke: 326
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2015.02.2015. u 16:48 - pre 110 meseci
Probao sam i to ali nista, mora da ima gresaka i u kodu, evo i copy paste .bas coda

'Program korektor napona.
'Meri mrezni napon i zavisno od rezultata merenja
'ukljucuje odgovarajuci relej i tako na autotransformatoru
'bira odgovrajuci izvod zavisno od mreznog napona.

Define ADC_BITS 10 ' Broj bita
Define ADC_CLOCK 1 ' Klok (0=Oscilator /8)

AD_Rez var word ' Rezultat AD konverzije
Napon var word ' Promenljiva za dobijanje napona
TRISA = %11111111 ' Port A je ulazni
TRISC = 0 ' Port D je izlazni
ADCON1 = %10000010 ' Port A je u analognom modu, 0 i 5V su
' referentni naponi a rezultat je desno formatiran.
Dummy var byte ' Promenljiva za 32 bitno delenje i mnozenje
symbol DQ = porte.2 ' DQ linija za termometar
symbol Greska = portb.5 'Linija LED diode greske
symbol Rucni = portb.4 'Linija za identifikaciju rucnog rada
symbol Rucni_rad = portb.2 'Linija za identifikaciju rucnog rada

temperatura Var Word ' Izracunata temperatura
temper1 Var Word ' Izracunata temperatura
count_remain Var Byte ' Ostatak
count_per_c Var Byte ' Po stepenu C

Pocetak:
'----------------MERI TEMPERATURU--------------------------------------

OWOut DQ, 1, [$CC, $44] ' Start merenja temperature
Sacekaj:
OWIn DQ, 4, [count_remain] ' Provera da li jos traje
IF count_remain = 0 Then Sacekaj
OWOut DQ, 1, [$CC, $BE] ' Procitaj temperaturu
OWIn DQ, 0, [Temperatura.LOWBYTE, Temperatura.HIGHBYTE, Skip 4, count_remain, count_per_c]
Temperatura = (((Temperatura >> 1) * 100) - 25)+ (((count_per_c - count_remain)*100) / count_per_c)
Temper1 = Temperatura / 100

If Temper1 < 70 Then Radi

High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
PortD = $00
Goto Pocetak

'-------------RAD KOREKTORA------------------------------------------
Radi:
' Procitaj 1 kanal na RA2 i prikazi

ADCIN 2, AD_Rez ' Izvrsi konverziju na RA2 i 16 bita i rezultat smesti u AD_Rez.

Dummy = AD_Rez * 5 * 100
Napon = Div32 1023
Pause 5000 ' Pauza 10 sec

' - - - - Napon 180 - 190 - - - - - - - - - - - - - - - - - -
If AD_Rez > 731 Then RE2
PortC = $01
Goto REE
' - - - - Napon 190 - 200 - - - - - - - - - - - - - - - - - -
RE2: If AD_Rez > 775 Then RE3
PortC = $02
Goto REE
' - - - - Napon 200 - 210 - - - - - - - - - - - - - - - - - -
RE3: If AD_Rez > 811 Then RE4
PortC = $04
Goto REE
' - - - - Napon 210 - 220 - - - - - - - - - - - - - - - - - -
RE4: If AD_Rez > 867 Then RE5
PortC = $08
Goto REE
' - - - - Napon iznad 220 - - - - - - - - - - - - - - - - - -
RE5: PortC = $10
Pause 2000 ' Pauza 2 sekunda
REE:
Goto Pocetak ' Kreni ponovo na merenje
'------------RUCNI RAD----------------------------
Iskljucen:
PortC = $10
Rucni = 1
Return

End ' Kraj programa

 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
31.223.159.217



+333 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2015.02.2015. u 20:53 - pre 110 meseci
Imas dosta gresaka u tvom programu.
Na semi su tranzistori na portu D, a u programu na portu C.
Drugo, imas logicku gresku kod IF naredbi.
Upalice uvijek portd.0. Neka je napon 205V, to je vece od 731.
Program na prvom IF-u upali portd.0 i ode na ree, odnosno na pocetak.
Na pocetku ti nedostaje include,
AD konvertor je na pinu RA1, tj treba biti ADCIN 1...


[Ovu poruku je menjao veselinovic dana 15.02.2015. u 22:14 GMT+1]
 
Odgovor na temu

danne
Negotin

Član broj: 19208
Poruke: 326
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2015.02.2015. u 21:37 - pre 110 meseci
Znam da ima puno gresaka, program nije moj vec iz pomenute knjige, nista polako cu da popravljam. AD konvertor je po semi na pinu RA1 ali na pcb je na RA4 tako da to treba da pise ADCIN 4, AD_Rez * 5* 100, to sam ispravio. I ovo Port D umesto port C, i DQ je na Portc.2 a ne na porte.2 tako da program zasad izgleda ovako (naravno ima jos gresaka):

'Program korektor napona.
'Meri mrezni napon i zavisno od rezultata merenja
'ukljucuje odgovarajuci relej i tako na autotransformatoru
'bira odgovrajuci izvod zavisno od mreznog napona.

Define ADC_BITS 10 ' Broj bita
Define ADC_CLOCK 1 ' Klok (0=Oscilator /8)

AD_Rez var word ' Rezultat AD konverzije
Napon var word ' Promenljiva za dobijanje napona
TRISA = %11111111 ' Port A je ulazni
TRISC = 0 ' Port D je izlazni
ADCON1 = %10000010 ' Port A je u analognom modu, 0 i 5V su
' referentni naponi a rezultat je desno formatiran.
Dummy var byte ' Promenljiva za 32 bitno delenje i mnozenje
symbol DQ = portc.2 ' DQ linija za termometar
symbol Greska = portb.5 'LED 7 dioda greske
symbol Rucni = portb.4 'LED 8 dioda rucni rad
symbol Rucni_rad = portb.2 'Linija za identifikaciju rucnog rada PRekidac

temperatura Var Word ' Izracunata temperatura
temper1 Var Word ' Izracunata temperatura
count_remain Var Byte ' Ostatak
count_per_c Var Byte ' Po stepenu C

Pocetak:
'----------------MERI TEMPERATURU--------------------------------------

OWOut DQ, 1, [$CC, $44] ' Start merenja temperature
Sacekaj:
OWIn DQ, 4, [count_remain] ' Provera da li jos traje
IF count_remain = 0 Then Sacekaj
OWOut DQ, 1, [$CC, $BE] ' Procitaj temperaturu
OWIn DQ, 0, [Temperatura.LOWBYTE, Temperatura.HIGHBYTE, Skip 4, count_remain, count_per_c]
Temperatura = (((Temperatura >> 1) * 100) - 25)+ (((count_per_c - count_remain)*100) / count_per_c)
Temper1 = Temperatura / 100

If Temper1 < 70 Then Radi

High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
PortD = $00
Goto Pocetak

'-------------RAD KOREKTORA------------------------------------------
Radi:
' Procitaj 1 kanal na RA2 i prikazi

ADCIN 4, AD_Rez ' Izvrsi konverziju na RA4 i 16 bita i rezultat smesti u AD_Rez.

Dummy = AD_Rez * 5 * 100
Napon = Div32 1023
Pause 5000 ' Pauza 10 sec

' - - - - Napon 180 - 190 - - - - - - - - - - - - - - - - - -
If AD_Rez > 731 Then RE2
PortD = $01
Goto REE
' - - - - Napon 190 - 200 - - - - - - - - - - - - - - - - - -
RE2: If AD_Rez > 775 Then RE3
PortD = $02
Goto REE
' - - - - Napon 200 - 210 - - - - - - - - - - - - - - - - - -
RE3: If AD_Rez > 811 Then RE4
PortD = $04
Goto REE
' - - - - Napon 210 - 220 - - - - - - - - - - - - - - - - - -
RE4: If AD_Rez > 867 Then RE5
PortD = $08
Goto REE
' - - - - Napon iznad 220 - - - - - - - - - - - - - - - - - -
RE5: PortD = $10
Pause 2000 ' Pauza 2 sekunda
REE:
Goto Pocetak ' Kreni ponovo na merenje
'------------RUCNI RAD----------------------------
Iskljucen:
PortC = $10
Rucni = 1
Return

End ' Kraj programa


Sad verovatno fali jos da pin 2 portaB bude ulaz a 4 i 5 izlaz i PortC treba da bude ulaz tacnije portc.2. Ovaj deo za temperaturu dali je dobar?


 
Odgovor na temu

danne
Negotin

Član broj: 19208
Poruke: 326
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2016.02.2015. u 18:57 - pre 110 meseci
u medjuvremenu drugar mi je prepravio program, pa ako vidite da nesto ne valja da i to izmenimo:

'Program korektor napona.
'Meri mrezni napon i zavisno od rezultata merenja
'ukljucuje odgovarajuci relej i tako na autotransformatoru
'bira odgovrajuci izvod zavisno od mreznog napona.

'Max ulazni napon 260V = 1024 na AD konvertoru
'1/1024 na AD konvertoru = 0.254V ulaznog napona

'160V = 630
'170V = 669
'180V = 709
'190V = 748
'200V = 787
'210V = 827
'220V = 866
'260V = 1024

'konvertovana vrednost * 0.254V = ulazni napon
'konvertovana vrednost * 0.00488V = napon na delitelju




Define ADC_BITS 10 ' Broj bita
Define ADC_CLOCK 1 ' Klok (0=Oscilator /8)

AD_Rez var word ' Rezultat AD konverzije
Napon var word ' Promenljiva za dobijanje napona
TRISA = %11111111 ' Port A je ulazni
TRISB = %00000100 ' Port B
TRISC = %11111111 ' Port C je ulazni
TRISD = %00000000 ' Port D je izlazni

ADCON1 = %10000010 ' Port A je u analognom modu, 0 i 5V su
' referentni naponi a rezultat je desno formatiran.
Dummy var byte ' Promenljiva za 32 bitno delenje i mnozenje
symbol DQ = portc.2 ' DQ linija za termometar
symbol Greska = portb.5 'Linija LED diode greske
portb.5 = 1
symbol Rucni = portb.4 'Linija za identifikaciju rucnog rada
portb.4 = 1
symbol Rucni_rad = portb.2 'Linija za identifikaciju rucnog rada
portb.2 = 1
temperatura Var Word ' Izracunata temperatura
temper1 Var Word ' Izracunata temperatura
count_remain Var Byte ' Ostatak
count_per_c Var Byte ' Po stepenu C

PortD = $00 ' Postavi port D na 0 (svi releji ugaseni)





Pocetak:
'----------------MERI TEMPERATURU--------------------------------------


OWOut DQ, 1, [$CC, $44] ' Start merenja temperature
Sacekaj:
OWIn DQ, 4, [count_remain] ' Provera da li jos traje
IF count_remain = 0 Then Sacekaj
OWOut DQ, 1, [$CC, $BE] ' Procitaj temperaturu
OWIn DQ, 0, [Temperatura.LOWBYTE, Temperatura.HIGHBYTE, Skip 4, count_remain, count_per_c]
Temperatura = (((Temperatura >> 1) * 100) - 25)+ (((count_per_c - count_remain)*100) / count_per_c)
Temper1 = Temperatura / 100

If Temper1 < 70 Then Radi

High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
PortD = $00
Goto Pocetak

'-------------RAD KOREKTORA------------------------------------------
Radi:

If portb.2 = 0 Then
Goto Iskljucen
else
portb.4 = 1
endif

' Procitaj 1 kanal na RA1 i prikazi
Pause 1000
ADCIN 1, AD_Rez ' Izvrsi konverziju na RA1 i 16 bita i rezultat smesti u AD_Rez.
Pause 1000

'Dummy = AD_Rez * 5 * 100
'Napon = Div32 1023
'Pause 5000 ' Pauza 10 sec

' - - - - Napon 179 i manje - - - - - - - - - - - - - - - - - -
If AD_Rez > 709 Then RE2
PortD = $01
Goto REE
' - - - - Napon 180 - 190 - - - - - - - - - - - - - - - - - -
RE2: If AD_Rez > 748 Then RE3
PortD = $02
Goto REE
' - - - - Napon 190 - 200 - - - - - - - - - - - - - - - - - -
RE3: If AD_Rez > 787 Then RE4
PortD = $04
Goto REE
' - - - - Napon 200 - 210 - - - - - - - - - - - - - - - - - -
RE4: If AD_Rez > 827 Then RE5
PortD = $08
Goto REE
' - - - - Napon 210 - 220 - - - - - - - - - - - - - - - - - -
RE5: If AD_Rez > 866 Then ALLOFF
PortD = $10
Goto REE
' - - - - Napon 221 i vise - - - - - - - - - - - - - - - - - -
ALLOFF: PortD = $00

'PortD = $10
'Pause 2000 ' Pauza 2 sekunda
REE:
Goto Pocetak ' Kreni ponovo na merenje
'------------RUCNI RAD----------------------------
Iskljucen:
PortD = $00
portb.4 = 0
Pause 2000
Goto Pocetak

'Return

End ' Kraj programa


I dalje mi nije jasan ovaj deo za temperaturu, dioda za gresku temperature mi gori i kad treba i kad ne treba, stim da se program izvrsava normalno
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
31.223.159.239



+333 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2016.02.2015. u 19:16 - pre 110 meseci
Prije pocetka programa stavi portb=0
Inace ovaj dio sa temperaturom je felerican, jer temp ispituje samo pri paljenju kontrolera i nikad vise.
treba ubaciti petlju da ponekad ispita i temp u radu.
Ostalo nisam gledao.
 
Odgovor na temu

milan-markovic

Član broj: 314087
Poruke: 317
*.ninet.rs.



+11 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2018.02.2015. u 16:29 - pre 110 meseci
Citat:
veselinovic: Prije pocetka programa stavi portb=0
Inace ovaj dio sa temperaturom je felerican, jer temp ispituje samo pri paljenju kontrolera i nikad vise.
treba ubaciti petlju da ponekad ispita i temp u radu.
Ostalo nisam gledao.


Sto se tice merenja temperature uvek ce biti merena temperatura kada program skoci na labelu POCETAK.
Pre ce biti problem u odabiru senzora za temperaturu jer na semi stoji DS1820 a u popisu delova DS18b20 e sad za koji je senzor pisan program to stvarno ne znam.

Pozdrav
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2018.02.2015. u 17:53 - pre 110 meseci
I DS1820 i DS18S20 imaju 9-bitnu konverziju tako da kod za merenje temperature odgovara i jednom i drugom.
Za DS18B20 se razlikuje.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

danne
Negotin

Član broj: 19208
Poruke: 326
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2018.02.2015. u 18:59 - pre 110 meseci
ja sam iz Proelektronika narucio DS18B20 kao sto pise u popisu delova, mada nebi me iznenadilo da je i to greska. Sta treba da se ispravi za pomenuti i da li je ostalo dobro, ako imate neku ideju slobodno pisite

Hvala
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2018.02.2015. u 19:40 - pre 110 meseci
http://melabs.com/samples/LABX1-16F877A/temp_DS1822.htm

Da tibaš ne bismo sve servirali "na tacni", moraš malo i sam da se potrudiš za pronalaženje odgovora na svoja pitanja.

ili

http://www.picbasic.co.uk/forum/showthread.php?t=11448

ili

http://www.picbasic.nl/framelo...cbasic.nl/dcf77_thermos_uk.htm
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

danne
Negotin

Član broj: 19208
Poruke: 326
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2018.02.2015. u 22:16 - pre 110 meseci
Ok nije bas neka "tacna" treci link nema kod. drugi za 628 onaj prvi cu da pokusam da iskoristim, a ostali kod jel dobar?
Hvala
 
Odgovor na temu

ZAS011
Uzgajivač šargarepe izakuće
Vanuatu

Član broj: 288510
Poruke: 4542

ICQ: 8713400
Sajt: www.justfuckinggoogleit.c..


+529 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2018.02.2015. u 23:16 - pre 110 meseci
Pazi, ako neko još treba i da izanalizira programkoji si prepisao iz neke knjige (ili izkombinovao dva prepisana programa) i da ti kaže da li je OK ili ne, i ti samo na kraju to da izkompajliraš i napržiš u kontroler,ne znam šta da ti dalje napišem...

Da li je deo BASIC programa napisan za 16F628 ili 16F877 ili 18F8722 ??
Objasni mi u čemu bi trebala da bude razlika između BASC programa i BASIC programa.
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
 
Odgovor na temu

danne
Negotin

Član broj: 19208
Poruke: 326
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: AC korektor sa Pic-om 16F877 i DS18B2019.02.2015. u 15:01 - pre 110 meseci
Hvala na pomoci
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: AC korektor sa Pic-om 16F877 i DS18B20

[ Pregleda: 3865 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.