[ branko_g @ 29.05.2008. 10:01 ] @
To pitam jer vidim da je forum prilično zapušten, ni moderator se ne javlja često, niti daje neke priloge
u smislu da da neke korisne linkove ili postavi svoj kod kao osnovu za neki projekat.
Ovako se sve svodi na priloge: "Treba mi hitno za Diplomski, rešenje..." ili "Ljudi pomagajte, ne radi mi.."
Ja sam imao predstavu da ovakav forum pre služi kao platforma za izmenu iskustava, ili jednostavno za
odgovore na KONKRETNA pitanja onih koji su počeli OZBILJNO da se bave ovom temom pa im nedostaje iskustva
i traže neki konkratan predlog.

Znači još jednom: Ima li nekog koji "krstari" ovim forumom a hteo bi da nauči nešto o arhitekturi uC-a i
kako se oni programiraju. Pod "programiranjem" ne podrazumevam "Flash-ovanje" nego stvarno pisanje koda
u nekom uobičajnom programskom jeziku(C, Basic, Assembler) koji na kraju radi ono za šta je napisan.

Radim sa AtmelAVR( 8bit) i Texas instruments MSP430(16bit) procesorima.
Za dizajn pločica koristim Eagle i Target Software.

P.S. Ovu moju temu shvatite kao pokušaj da forum pokrenem u pravcu za koji smatram da će svojom
edukativnom funkcijom privući pažnju mladih ludi koji najzad žele da proniknu u (nimalo lak) svet elektronike i
programiranja. Sa svojim iskustvom i znanjem stojim vam na raspolaganju.
[ korak @ 29.05.2008. 11:24 ] @
Slazem sa sa tvojom konstatacijom u vezi teme foruma. Zaista ne opravdava svoje postojanje.

Iako radim, zadnjih godina, iskljucivo sa MC9S08 motorolinom familijom, interesuju me i druge familije MCU-ova i razna hardverska i softverska resenja kod njih. Nazalost toga gotovo da nema. Familija koju koristim MC908 i MC9S08 ima oko 200 tipova i tu se moze naci zaista sve sto moze da zatreba za skoro svaku aplikaciju. Svako misli da je njegov izbor najbolji, ali i tvoj izbor je vrlo razuman i dobar. Ja, medjutim, imam problem sto Motorola nema jeftinih razvojnih sistema, sve sto vredi mora da se kupi. Zato sam morao sam da napravim svoj razvojni sistem.

Vazan aspekt u izradu mikrokontrolerski kontrolisanog uredjaja je razvoj softvera. Tu vlada potpuni haos. Vidim da se koristi BASIC ???, i C kompajleri sumnjivih vrednosti. Od meni poznatih cenim samo C kompaklere Keil i Metrowerks CodeWarrior. Za projektovanje PCB-a koristim OrCad. Dakle, ono sto koristim se vrlo malo (ili ni malo) ne preklapa sa onim sto koriste ostali ucesnici foruma.

Kada je u pitanju razvojni sistem, tu sam vrlo skrt. Ne mogu da podnesem da, cak i dobar C kompajler, generise 20-tak posto duzi kod i vise od toga sporiji kod. Cesto puta su u C-u uradjene neke funkcije (na primer za SCI) na nacin koji meni ne odgovara. Zato se traganju za optimalanim razvojnim sistemom bavim vise godina. Sada sam pred zavrsetkom treceg asemblerskog kompajlera koji je slican sa predhodna dva, ali se razlikuje u toma sto su predhodni bili jednoprolazni, a ovaj je tro prolazni. Asembler je u svemu isti kao PASCAL samo sto su paskal iskazi dodele zamenjeni asemblerskim naredbama. Posebnu paznju sam posvetio modulima i makroima. Pomocu makroa, asembler se moze podici na visi nivo i pribliziti se visim programskim jezicima. Posanje softvera u ovakvom asembleru je skoro isto efikasno kao u C-u. Jedina mana mu je sto nije prenosiv na neku drugu familiju MCU-ova. No, nisam u stanju da radim sa vise familija i da posedujem vise razvojnih alata, jer to kosta a kod nas situacija nije povoljna za takav pristup.

Ono sto je vazni, 90% kompajlera je nezavisno od familije NCU-a, i samo sa manjim izmenama moze se napisati i za bilo koji drugi MCU.

Mozda uludo ovo pisem jer ca zainteresovati samo mali broj ljudi. Mozda je bolje da se posvetimo nekim internim blokovima MCU. Na primer otvorimo temu tajmeri, i u njoj predstavimao svoja iskustva sa koriscenjem te jedinice.

Pozdrav
[ _str_ @ 29.05.2008. 12:40 ] @
branko_g, mene interesuje msp430, znaci kako flash-ujes kontroler (jtag?) , na ploci (direkt) ili koristis namenski programator i koji softver koristis?
Kakva je situacija pri nabavci na domacoj elektro sceni? Koje modele najcesce koristis?
[ branko_g @ 29.05.2008. 13:29 ] @
@_str_
Da koristim JTAG adapter za paralelni port(Windows XP) i čipove programiram na ploči na kojima je standardni
14-to pinski JTAG konektor, kao na TI razvojnim pločicama. Za Flash-ovanje koristim MSPFET:
http://kurt.on.ufanet.ru/
Kao editor programskog koda koristim SciTe:
http://scintilla.sourceforge.net/SciTEDownload.html
a kompajler(C) je MSPGCC:
http://sourceforge.net/project/showfiles.php?group_id=42303
Naravno sve kao Free Software ili pod GPL-om.

Inače programirao sam MSP430F149 a napravio sam i Header Board za taj uC u obliku većeg DIL kućišta
na kome se pored uC nalazi i kvarz od 8MHz i 32kHz, JTAG konekcija i improvizovani RS232 interfejs
sa 74HC14 i DB9 konektorom za direktan priključak na PC.
Ta se pločica onda utakne na ciljni sistem.
[ korak @ 29.05.2008. 14:31 ] @
branko_g,
da li Texas I. ima i druge tipove ovo MC-a sa bogatijim internim hardverom. Inace, ovakav kakav je idealan je za baterijsko napajanje.

Pozdrav.
[ Struja01 @ 29.05.2008. 15:09 ] @
Ne znam za ostale pocetnike, ali meni je ovaj forum dosta pomogao da se upoznam sa mikrokontrolerima. Poceo sam negde krajem novembra 2007 godine i do tada mi se cinilo nemoguce da savladam neke osnovne stvari, ali eto uspio sam. Takodje dok sam se raspitivao primecivao sam, ili se to meni samo cinilo da forumasi ipak ne zele konkurenciju, pa cesto ne pomazu mnogo pocetnicima. To i donekle i treba tako, i mnogi mi ne pomazu dok im ne dam dio koda ili nesto tako slicno, uglavnom mi trebamo da se potrudimo da naucimo, ali to je veoma tesko pocetnicima , znam po sebi. Pocetnicima savetujem da procitaju sve teme ovoga foruma, i naucice mnogo toga. Bilo bi dobro kada bi se postavile jos neke TOP teme u kojima se objasnjavao postupak rada sa mikrokontrolerom, koji izabrati programski jezik, mnogo toga...

Bilo bi dobro postaviti projektke sa kodovima, ali primetio sam da se moj nacin pisanja programa, razlikuje od nacina nekog drugog, ali sve je isto , ako neko razumije sta hocu da iskazem. :) Ja programiram u PIC Basic-u, mislim da je idealan za pocetnike i da bi kasnije trebali da predju na Asembler. Radim sa PIC16F877A, doduse skoro sve sam do sada programe isprobavao u simulatoru. Pre neki dan uspio sam napraviti eksperimentalno kolo za PIC16F887A. Kada uradite neki projekat koji ste sebi zacrtali sa mikrokontrolerom, naucicete da programirate i mnogo toga ce vam biti lakse, barem meni. Meni je prvi projekat bio semafor i uspio sam uraditi, doduse ne onako kako sam ja zamislio ali tesko je skolipiti i hardver i softver, mnogo je lakse bilo na simulatoru. Uradio sam ga sa PIC16F627 koji ima interni oscilator, sto mnogi MCU-i nemaju.



Citat:
korak: Slazem sa sa tvojom konstatacijom u vezi teme foruma. Zaista ne opravdava svoje postojanje.
Mozda uludo ovo pisem jer ca zainteresovati samo mali broj ljudi. Mozda je bolje da se posvetimo nekim internim blokovima MCU. Na primer otvorimo temu tajmeri, i u njoj predstavimao svoja iskustva sa koriscenjem te jedinice.
Pozdrav

Moja preporuka je da onaj ko hoce da nauci da programira MCU-ove kupi knjigu u kojoj ce naci dosta primera, sve je na nasem jeziku, upoznace se sa osnovnim stvarima. Jedino sto bismo mi mogli da doprinesemo jeste da razmenujemo iskustva, posebno ovi stariji da okace neke svoje projekte, slike hardwera, kod.... to bi pomoglo mnogima, pa mozda i taj isti program npr iz asemblera napisati u basic-u ili u C-u. Vidjeti kako to izlgleda i u drugom programskom jeziku. Na taj nacin uocili bismo mnoge nedostatke i saznali jos mnogo toga.

[ branko_g @ 29.05.2008. 15:15 ] @
@korak
Pa od tih "starijih" varijanti postoji i 430F169 sa 12bitnim D/A konvertotom i I2C interfejsom.
Da li ima nešto novije ne znam, pogledaj sajt proizviđača.
Inače "bogatije" je rastegljiv pojam. Ja koristim taj uC zbog odličnog 12bit ADC-a i mogućnosti
generisanja do 10PWM signala, 2 USART-a, eksternih Interrupt-a na 16 pinova, Hardware Multiplier...
Za "male" stvarčice prava stvar. Ipak nije to "krstarica " nego "mali torpedni čamac".
Ipak je to arhitektura koja ima skoro 10 godina, verovatno je došlo i do daljeg proširenja familije.
Kao što rekoh, pogledaj sajt TI-a.

P.S Hteo bih da pohvalim i izuzetnu podršku od strane TI-a. Postoje primeri korišćenja(kao Source Code) svih periferija
pisanih na Assemblereu i C-u. To uveliko olakšava prve korake u radu sa ovim.
Pri instalaciji MSPGCC se svi ovi primeri( i drugi) nalaze u direktorijumu "exsamples", vredi pogledati.
[ pctel @ 29.05.2008. 16:35 ] @
Meni yvuci kao utopija ideja o forumu kao mestu za ucenje. Forum generalno nije mesto gde sednes pa naucis neku oblast necega. Za ucenje treba pribaviti detaljne i pazljivo sistematizovane tekstove, a forum je tu da priskoci u pomoc gde zapne.
[ branko_g @ 30.05.2008. 07:00 ] @
Citat:
Meni zvuci kao utopija ideja o forumu kao mestu za ucenje.

Grešiš !
Pogledaj uostalom (nemački) forum sa isključivom temom
Elektronika-Mikrokontroleri-Programiranje:

http://www.mikrocontroller.net/

Skoro sve što sam naučio o mikrokontrolerima i njihovom programiranju zahvaljujem tom forumu.
U toku jednog sata bude i 40-50 pitanja i odgovora sa tom tematikom.
Samo podforum "Kolekcija Koda" ima nekoliko hiljada primera Source-koda za različite platforme
počev od PC-a pod Widows-om i Linuksom pa do malih 8-bitnih kontrolera.
Priznajem da sam i sam koristio različite primere tu pronađene, samo sam ih prilagodio mom Hardware-u.
[ Struja01 @ 30.05.2008. 08:01 ] @
Steta sto neki neznaju njemacki
[ _str_ @ 30.05.2008. 09:45 ] @
branko_g, zahvaljujem za adrese, malo sam pogledao i deluje interesantno. Nasao sam kod nas msp430f1232 pa cu verovatno njega pazariti i uz pomoc prigodnog lcd-a pokusati naciniti sat sa alarmom. Dali si koristio Code Composer sa TI sajta?
U praksi ne koristim ADC i jos nisam imao zadatak koji ne moze odraditi avr ali je ipak rec o 8bit kontroleru pa sam kao rezervu odabrao arm7 i lpc2xxx. Pojava xmega serije ce verovatno odloziti moj prelazak na nesto vise od 8bita, bar za neko vreme. Ima neka poslovica u stilu " ne menjaj konja koji pobedjuje " te se i ja pridrzavam toga ali uvek treba imati rezervnog "Dorata" u stali.
m_regodic je spomenuo slike, pa obecavam da cu nesto uslikati i postaviti ovde a do tada veliki pozdrav za prisutne!
[ branko_g @ 30.05.2008. 10:37 ] @
@_str_
Citat:
Dali si koristio Code Composer sa TI sajta?

Šta je to?
Iskreno rečeno ja sam skeptičan kada su u pitanju programerska okruženja koja nudi sam proizvođač(uopšteno),
a naročito ako ima neku vrstu automatske generacije koda(Code Wizard ili slično).
Iz jednog jednostavnog razloga:
-Najbolje je pisati programe(moje mišnjenje) u ANSI-C standardu, i to tako da postoji jedna apstrakcija
mašine, regulatora ili već šta se programira, koja je potpuno nezavisnaod primenjenog procesora.
Znači čist C-kod sa funkcijama, na primer "motor_on(pravac, brzina); motor_brake()..."
Tek u funkcijama koje su u softverskom smislu drajveri stoji konkretno implementirano kako se taj motor
konkretno upravlja, i pri eventualnom prelasku na neku drugu hardversku arhitekturu ostaje da se prilagode
samo te funkcije.
Pod hardverskom arhitekturom ne podrazumevam samo sam mikrokontroler, nego i prateću elektroniku za upravljanje
i akvizaciju podataka. U jednom projektu je motor jednosmeran na 24V, a u drugom je možda asinhroni, veće snage.
Ostatak koda u kome je funkcionalitet(State Mashine i druga čuda) ostaje nepromenjen.
.
.
I koje programsko okruženje koristiš za AVR?

@milovan_regodic
Pa ni ja ne bih znao nemački da nisam morao :-)
Moja misao je bila dati taj sajt kao primer kako se to uspešno radi.
E sad da ne bih mnogo teoretisao spremicu neke stvari u vezi AVR i MSP430 kontrolera i postaviti kao
posebne teme gde ću objasniti prve korake u radu. Naravno i šeme i izgled pločica ciljnog sistema ne sme da fali,
za one koji to hoće isto tako da naprave kao i ja. Source-kod se podrazumeva.


P.S. Da se razumemeo nisam ja nikakav programerski guru, iako se već dugo profesionalno bavim elektronikom
tek sam od pre 2-3 godine počeo da se ozbiljnije bavim i programiranjem. Našao sam dobre primere projekata
kao Source-kod, odštampao ih i poneo na odmor kao lektiru. Tako je to počelo.

Pozdrav Branko
[ madwolf @ 30.05.2008. 16:06 ] @
Ok ljudi, jeste da je forum malo zamro, ali mislim da ima nas koji se itekako interesujemo za ovu oblast. Pre nekog vremena ljudi su trazili linkove na textove za ARM7TDMI-S kontrolere, ja sam poslao maltene sve sto sam iscackao na internetu. Trenutno radim na faxu malko sa TI DSP-jem, ali "privatno" me mnogo vise interesuje ARM. Skoro sam bio na jednom seminaru na sajmu tehnike, u pitanju je firma Luminary Micro, prave MCU zasnovane na ARM Cortex M3 jezgru - najnovije stvari :). Iako vrlo mlada firma, napravili su pravi bum. Dobio sam i prezentacije, pa ako nekoga interesuje neka mi posalje PP. Nazalost (mora da se zavrsava fax), nisam jos krenuo u programiranje ovih LM MCU, za sada samo cituckam i cekam da mi stignu kitovi, koji su dosta jeftini (kod nas mogu da se nabave preko Tagora). Evo sta je mene privuklo kod Cortexa... Imaju serije MCU-ova koji su specijalizovani za motion control, usb, ethernet itd. Imaju npr i interfejse za kvadraturne enkodere. Kitovi su jeftini, sav sors je otvoren i svi primeri naravno (a ne kao kod nekih koji drze sav kod zatvoren i "kao" dizu sebi cenu). Na primer - ja bih zeleo da naucim u skorijoj buducnosti CAN i Etherenet - kako funkcionise, ali da ne potrosim mnooogo vremena. A ova firma nudi lepo dev kit, imas primere, jako lepo sve dokumentovano, i sednes da naucis. Poenta moje price je kako da sto bezbolnije naucis nesto novo :) I da, ovo je vrh meni bio: dev plocica moze da sluzi kao programator. A cijena MCU - prava sintica: kostaju kao i danasnji 8b/16b MCU. Nisam naveo sve detalje, mnogo ih ima na samom sajtu...

Inace, za Code Composer. Ja koji inace imam dosta zivaca da poteram da nesto proradi, sa CCStudiom sam izgubio zivce. Bar kad se radilo o programiranju DSP-a, ako je to bila prica ranije (sad kad sam ispisao vidim da ovo nije bila tema ali ajde zatrebace nekom). A onda sam naleteo na sajt:

http://www.codeskin.com/

O cemu se tu radi? Likovi su napravili RS232 programator za C2000 familiju DSP-jeva i plagin za Eclipse okruzenje (koje je sasvim pristojno i naravno besplatno). Jedino sto treba da se doda u celu pricu je kompajler, koji se nalazi u CCStudiu (daju se putanje). Na taj nacin se zaobilaze JTAG programiranje i "kompleksno" CCS okruzenje. Kazem "kompleksno" jer jos uvek nisam odustao, samo cekam povoljan trenutak :) za nastavak... Sa druge strane, CCStudio ima svojih prednosti, jer se jako lako vrsi incijalizacija periferija - putem menija. A ovako, zaobilazno, mora sve da se rucno odradi. Iako se to radi jednom, moze da bude dosadno i pipavo.

Eto toliko za sada :)

Pozdrav,
Milan.
[ _str_ @ 01.06.2008. 22:20 ] @
Za avr koristim avrstudio, winavr i kao flash ponyprog. Za izradu pcb-a diptrace.
Evo nekoliko slika "black box"a u fazi izrade...
[ branko_g @ 01.06.2008. 22:53 ] @
@_str_
Fino urađeno, nema šta.
Ali ne razumem zašto ti treba ponuprog? Zar ne možeš Flash-ovati iz AVRstudija ili WinAVR?
Daj da pogađam: koristiš onaj adapter za RS232?
[ _str_ @ 02.06.2008. 00:27 ] @
Jeste rs232, komp u radionici je neki p3 i izmedju ostalog programira i seriske eeprome a tu je jos i stvar navike...
[ Brelak @ 22.07.2008. 21:08 ] @
Ne znam kad je postavljena tema ali ja imam potrebu da naucim sto vise o mikrokontrolerima.ja sam na elektronskom fakultetu u nisu i programiranje (c++) mi ide ali me mnogo vise interesuje programiranje u oblasti mikrokontrolera.hteo bih da nabavim semu za pic16f84a koja bi mogla da zadovolji moje skromne potrebe i ono sto bi mi trebalo da mogu kuci da programiram.

PS:ideja nikad dosta...hehehe:D
[ branko_g @ 23.07.2008. 09:20 ] @
@Brelak

Možda je ipak bolje da počneš sa "nešto" većim od PIC 16F84?
Ja sam na primer poslušao savet od madwolf-a i kupio od Tagora( www.tagor.rs )
LuminaryMicro LM3S8962 Evaluation Kit:
http://www.luminarymicro.com/p...n_ethernet_evaluation_kit.html

Izuzetno dobra podrška od strane LuminaryMicro mi je omogućila da najzad na jednostavan
način napravim prve korake u svetu modernih 32bitnih mikrokontrolera.
Na taj način si sigurno oslobođen početničkih frustracija i brzo ćeš doči do prvih rezultata.
S druge strane imaš otvorene mogućnosti i za zahtevnije projekte jer na pločici postoji
i priključak za Ethernet, MicroSD, CAN-Bus...
Izvorni kod koji ide uz ovaj kit je od velike pomoći pri pisanju sopsvenih programa.

Pozdrav Branko
[ Vinse @ 23.07.2008. 09:53 ] @
Ovo je odlicna tema, mada je meni forum i dosada bio zanimljiv.

Ja sam pocetnik i opredelio sam se za familiju PIC-ovih mikrokontrolera. Radio sam vec na faksu MPLABu asembler, ali ono znate kako to ide provezbao primere i spremio ispit. Hocu reci da znam osnovne principe, nazalost nista vise. Mada za pocetnika to je sasvim okej. Nedavno sam kupio Mikroelektronikin razvojni sistem easypic5 i malo isprobavao primere (mislim da milovan_regodic govori o ovome).

Taj simulator je ok zamisljen, ali ja bih hteo da isprogramiram nesto, zatim napunim mc i onda da ga lepo stavim na breadboard npr. sa ostalim komponentama (oscilatorom, napajanjem) i ako sve radi da ga zalemim i imam svoj projekat. Mislim da je to ono sto fali svakom pocetniku, da ga neko provede od pocetka do kraja. Ako vec ima zainteresovanih za pomoc pocetnicima, a ima vidi se iz pocetka topica, onda mislim da bi ovo bila prava stvar.

Evo mozda mogu da predlozim projekat, nesto prosto: npr mikrokontroler koji sam pali svetlo na terasi u zavisnosti od spoljnog osvetljenja.
[ tasa5 @ 23.07.2008. 10:33 ] @
Ko ne zna, sa radom je poceo i sajt www.automatika.co.yu i tamo mozete naci nesto o mikrokontrolerima. Za sad ima malo toga ali bice vise, tek je poceo sa radom.
[ Vinse @ 23.07.2008. 11:03 ] @
Mislim da me niste dobro razumeli. Hvala na linku, ali imam i ja link i linkova. Ima i google zilion linkova. Postoji i knjiga od Predka koji je svetski autoritet u oblasti, ali nama treba praksa, znaci prakticno nesto.
[ korak @ 23.07.2008. 12:07 ] @
Nesto prakticno, znaci nesto konkretno.
Pa podjimo od neceg konkretnog.
Lopta je kod tebe.

Pozdrav.
[ Vinse @ 23.07.2008. 13:08 ] @
mislio sam da vi, koji ste iskusniji objasnite nama koji smo pocetnici. Naravno ako hocete.
[ branko_g @ 23.07.2008. 15:30 ] @
@Vinse
Citat:
Evo mozda mogu da predlozim projekat, nesto prosto: npr mikrokontroler koji sam pali svetlo na terasi u zavisnosti od spoljnog osvetljenja.


Eto primera koji možeš sam da realizuješ sa svojim EasyPIC-om. ja sa PIC-om još nisam
imao posla. Ali evo nekih saveta koji važe za sve mikrokontrolere:
Hardware:
1.Portpin koji je konfigurisan kao izlaz preko odpornika uključuje neki Solid-State relej, koji opet uključuje i
isključuje osvetljenje.
2.spoj na red otpornik od 100k i jedan foto-optornik. Fotooptpornik jednim krajem ide na +5V, "srednji" deo
ide na ulaz ADC-a, i drugi kraj otpornika od 100k ide na masu(0V).
Što je više svetla koje pada na foto-otpornik manji mu je otpor, a napon na ADC-u raste.

Software:
1. Inicijalizuj Portpin kojim ćeš upravljati uključenjem svetla kao izlaz.
2. Inicijalizuj ADC i startuj ga.
3. Uporedi rezultat konverzije sa nekom fiksnom vrednošću koju si odredio u programu
i ako je ona manja uključi osvetljenje, u suprotnom ga drži isključenim(ovo treba da je jedna beskonačna petlja).

Na osnovu ovoga napravi hardver i program i ako ima nekih problema javi se.
Na ovaj način ćeš(moje mišljenje) najviše naučiti o hardveru bliskom programiranju.

Pozdrav Branko
[ vladabajic @ 24.07.2008. 09:29 ] @
konkretno, ovaj primer je lakse uraditi sa fotootpornikom, jednim tranzistorom i releom...
ja sam mislio da napravim lemilicu. treba da ima display (3 x 7-seg. disp), nekoliko tastera za podesavanje, i tri memorisane temperature koje se najcesce koriste (+ poslednja podesena). upotrebio bih legendarni 16f84, i a/d conv.
bez drajvera za displej. port b bi bio i ulazni i izlazni, u zavisnosti da li cita tastere ili prikazuje na displeju. iako mi je u pocetku delovalo jednostavno, ispostavilo se da bas i nije. obuhvaceno je dosta toga: multiplex, interapti, tajmeri...
ako ovo nekog resuje, mozemo malo prodiskutovati.

pozdrav
[ sander @ 24.07.2008. 11:27 ] @
Mozda to ovo moze pomoci:

http://epraktikum.co.yu/projekti/reg_lem/reg_lem.php

Pozdrav.
[ vladabajic @ 24.07.2008. 12:49 ] @
znam za ovaj projekat, ali nisam na tako nesto mislio. oni su napravili "dimer" sa PIC-em i displejem...
temperatura se regulise pomocu pwm-a i ne verujem da se na displeju moze ocitati realna temperatura
drugo, upotrebili su displej drajver :-)
ok, ovo radi, ali ja hocu pravu kontrolu. termo par K-tipa, za koji se znaju vrednosti napona u odnosu na temperaturu i pravo stanje na displeju + memorisanje. moze sve ovo i lakse da se uradi, ali je ovde sadrzano dosta stvari koje se trebaju znati o pic-u da bi se napisao program.

u svakom slucaju, sender, hvala na pomoci...

pozdrav
[ Vinse @ 24.07.2008. 13:16 ] @
zahvaljujem. Znaci sada treba da nabavim materijal. Relej mi treba da kontrolisem 220V prekidac digitalnim signalom od par volti ? d/n

Koristio bih 16f48.
[ branko_g @ 24.07.2008. 13:50 ] @
Citat:
zahvaljujem. Znaci sada treba da nabavim materijal. Relej mi treba da kontrolisem 220V prekidac digitalnim signalom od par volti ? d/n


Preporučio bih ti da umesto releja(mehaničkog) ipak koristiš Solid-State relej(poluprovodnički)kao na primer S202S12 od Sharp-a(potraži Datasheet).
Kod mehaničkog releja se javljaju jaki naponski špicevi i promenljivo magnetno polje koje može da
prouzrokuje smenje pa i reset tvog PIC-a, pogotovu ako sve napraviš na nekoj raster pločici.
Na taj način si ako to ne radi barem isključio relej kao izvor smetnji i možeš mirne savesti da tražiš grešku u tvom
programu ili u ulaznom delu sa foto-otpornikom.
Solid state relej ima sa upravljačke strane samo jednu infra crvenu diodu, a sa druge strane jedan opto-trijak
kojim ukuljučuješ potrošač.
Znači:
Deo koji upravlja Solid-State relejom: PIC-izlaz--|220oma|---|LED>---+Solid State-GND
Deo koji upravlja osvetljenjem: L(230V)---|Sijalica|---~Solid-State~--N(230V).

Na red sa ulazom SS-releja je stavljena i jedna LED-dioda koja signalizira da li je izlaz PIC-a aktivan ili ne.
Za početak ne bih priključivao 230V nego bih gledao da li LED dioda na ulazu SS-a radi kako je predviđeno,
pa tek ako to funkcioniše priključio osvetljenje.

Pozdrav
[ Struja01 @ 24.07.2008. 14:38 ] @
@Vinse
Probaj da nacrtas semu po onome kako je "branko_g" objasnio, pa je postuj ovde.
[ grabik @ 24.07.2008. 20:07 ] @
Citat:
vladabajic: znam za ovaj projekat, ali nisam na tako nesto mislio. oni su napravili "dimer" sa PIC-em i displejem...
temperatura se regulise pomocu pwm-a i ne verujem da se na displeju moze ocitati realna temperatura
drugo, upotrebili su displej drajver :-)
ok, ovo radi, ali ja hocu pravu kontrolu. termo par K-tipa, za koji se znaju vrednosti napona u odnosu na temperaturu i pravo stanje na displeju + memorisanje. moze sve ovo i lakse da se uradi, ali je ovde sadrzano dosta stvari koje se trebaju znati o pic-u da bi se napisao program.

u svakom slucaju, sender, hvala na pomoci...

pozdrav


Koji programski jezik koristis?

Zasto 16F84 ,nema ADC a dosta je i skup jer je zastario, uzmi neki 18F kojima je cijena ista kao i 16F a imaju 10bitni ADC, ili jos bolje neki DSPIC sa 12bitnim adc-om koji bi kostao kao ADC i 16F84 zajedno.
Koliko me sjecanje sluzi mislim da weller koristi u svojim lemilicame 16C pic sa adc, OP,LM35 , opto trijak i jos neke sitnice

Sta je "displej driver"?

[ vladabajic @ 24.07.2008. 22:45 ] @
e bas tako sam i ja zamislio svoju lemilicu. adc, jedno op i da li opto trijak ili optokapler sa releom. to cu jos videti.
radio bi u asembleru, samo sto jos moram da savladam neke stvari u tom slucaju, npr.mnozenje za zarezom i izdvajanje decimalnog mesta...
mogao bi to lako uraditi u picbasicu, al' mi nije gust. ocu da savladam asembler :-)

displej drajver je onaj shift registar koji sluzi da smanji broj izlaza pica a da ganja displej (ne znam strucno da ti objasnim) :-)
[ grabik @ 25.07.2008. 13:20 ] @
Citat:
vladabajic: e bas tako sam i ja zamislio svoju lemilicu. adc, jedno op i da li opto trijak ili optokapler sa releom. to cu jos videti.
radio bi u asembleru, samo sto jos moram da savladam neke stvari u tom slucaju, npr.mnozenje za zarezom i izdvajanje decimalnog mesta...
mogao bi to lako uraditi u picbasicu, al' mi nije gust. ocu da savladam asembler :-)

displej drajver je onaj shift registar koji sluzi da smanji broj izlaza pica a da ganja displej (ne znam strucno da ti objasnim) :-)


Ako si mislio da pises program sa pokretnim zarezom(pretpostavljam da mislis na PID upravljanje grijaca na lemilici) onda ce tu biti malo "teze" , prvo da napises u asembleru a onda i to sve da strpas u 1k programske memorije 16f84, ne znam za sta drugo ti treba racunanje sa pokretnim zarezom kad imas samo tri LCD karaktera a regulises lemilicu. Osim ako to od vas traze na faksu, a i koji je to faks kad su se uhvatili kao pijan plota samo za 16f84:)
[ vladabajic @ 25.07.2008. 15:06 ] @
nije fax u pitanju, uvatio sam se ja. zasto? pa necu sebi na puno da olaksavam. naucicu da idem linijom lakseg otpora, a to nekad nece biti moguce... elem 16f84 zato sto hocu maximalno da iskoristim njegove mogucnosti :-).
mozda sam se lose izrazio kada sam rekao da mnozim sa pokretnim zarezom. naime, ako upotrbim neki 8-bitni adc za merenje temperature, onda ce mi on dati za skoro 0 za neku malu vrednost temperature tj na termoparu, a kada ta temperatura bude npr 450°C on ce mi dati vrednost 255. e sad, da bih ja prikazao na disp. 450°C treba da pomnozim 255x1,76... ovo do sada jos nisam radio a voleo bih da savladam. takodje me malo muci i izdvajanje decimalnog mesta za prikaz na displeju, posebno sto je u pitanju broj veci od 8 bita.
al ja sam prilicno uporan, pa cu, nadam se, dovesti sve na svoje mesto.
ako neko ima neki predlog ili sugestiju, samo napred.
za sada toliko... pozdrav
[ grabik @ 25.07.2008. 20:49 ] @
Citat:
vladabajic: nije fax u pitanju, uvatio sam se ja. zasto? pa necu sebi na puno da olaksavam. naucicu da idem linijom lakseg otpora, a to nekad nece biti moguce... elem 16f84 zato sto hocu maximalno da iskoristim njegove mogucnosti :-).
mozda sam se lose izrazio kada sam rekao da mnozim sa pokretnim zarezom. naime, ako upotrbim neki 8-bitni adc za merenje temperature, onda ce mi on dati za skoro 0 za neku malu vrednost temperature tj na termoparu, a kada ta temperatura bude npr 450°C on ce mi dati vrednost 255. e sad, da bih ja prikazao na disp. 450°C treba da pomnozim 255x1,76... ovo do sada jos nisam radio a voleo bih da savladam. takodje me malo muci i izdvajanje decimalnog mesta za prikaz na displeju, posebno sto je u pitanju broj veci od 8 bita.
al ja sam prilicno uporan, pa cu, nadam se, dovesti sve na svoje mesto.
ako neko ima neki predlog ili sugestiju, samo napred.
za sada toliko... pozdrav


16f84 je zastareo i njegova zamjena je 16f627 i 16f628 koji su modernizovani, puno jeftiniji i potpuno kompatibilni sa 16f84.

Ako hoces da kontrolises i zarez treba ti 8 pinova + 3 pina ako imas tri karaktera u displeju + najmanje 2 pina za vanjski adc + jos jedan pin za izlaz za kontrolu grijaca + opciono jos tri pina za tipke a mozes da koristis i one koje vec koristis za kontrolu displeja ali to komplikuje PCB a takodje i vanjski ADC, kad se sve izracuna uzmes recimo 16f876 koji ima vise pinova , 10bitni adc vise memorije vise tajmera i napravis to kako treba , istu procesorsku jedinicu ima i 84 kao i 876 ili slican samo sto ima vise memorije i vise periferijskih uredjaja u pic-u. A rekao sam i prije da je sam veler upotrijebio mikrokontroler iz iste grupe sa 4k memorije i 10bitnim adc-om.
[ Stojan Trifunovic @ 26.07.2008. 07:37 ] @
Postoje Microchipovi datasheetovi (Aplication Note) iz kojih mozete iskopirati kod za mnozenje, ali smatram da Vam to ipak nije potrebno.
Nisam radio sa termoparovima, pa cu pretpostaviti da im je karakteristika linearna. U tom slucaju, takvo mnozenje bi bilo najprakticnije resenje.
Medjutim, mora li se bas primenjivati mnozenje sa pokretnim zarezom? Postoji li nesto prakticnije?

Verovatno bi bilo dovoljno sledece:
Za maksimalnu temperaturu 8-bitni A/D konvertor vraca vrednost 255. Znaci, da bi se broj 255 konvertovao u (otprilike) 450 stepeni moglo bi se uz zadrzavanje linearnog opsega uraditi sledece:

255 + (255/2) + (255/4)

To daje ravno 447 stepeni. Razlika od 3 stepena moze u ovom slucaju biti potpuno zanemarljiva.

Za dalju linearizaciju i drugacije temperature mogli bi uvesti i vece podele (255/8 , 255/16...).

Deljenje sa dva realizujete rotacijom, uz prethodno brisanje Carry flaga. Sabiranje registara (sa dvobajtnim rezultatom) daleko je brze i jednostavnije od mnozenja. Na kraju Vam ostaje jedino binary2BCD konverzija, za koju takodje imate gotov kod u Microchipovim Aplication Note.

I poslusajte Grabika. Uzmite PIC sa integrisanim A/D konvertorom i dovoljnim brojem pinova za direktan pogon LED displeja. Na taj nacin, od spoljnog hardvera morali biste dodati jedino 3 tranzistora (za multipleks displeja), solid state relej i eventualno jedan ulaz za detekciju prolaska napona kroz 0 (ako zelite izuzetno preciznu - faznu regulaciju napona). Tastaturu za stelovanje temperature mozete povezati u mrezi paralelno izlazima za segmente LED displejima.
[ Struja01 @ 26.07.2008. 09:19 ] @
Takodje mozete da koristite kolo SAA1064 za I2C komunikaciju, na njega povezes displej i onda sa njega na mikrokontroler. Ustedeo bi na pinovima mikrokontrolera.
[ vladabajic @ 26.07.2008. 12:05 ] @
e ovo se pretvara u pravu diskusiju :-) bas mi je drago...
elem
Citat:
grabik: 16f84 je zastareo i njegova zamjena je 16f627 i 16f628 koji su modernizovani, puno jeftiniji i potpuno kompatibilni sa 16f84.


u potpunosti se slazem sa tobom po ovom pitanju. i bilo bi lakse uraditi ovo sa pic-om koji ima intergrisani adc, naravno.
ali ako upotrebim spoljni adc, imam vise posla i pisanja koda, sto samim tim znaci da cu vise i nauciti...
posle je lako zameniti 16f84 sa nekim jeftinijim a boljim uz malu prepravku koda. (ako dodje do serijske proiozvdnje, u sta cisto sumnjam :-))

Citat:
Stojan Trifunovic
Za maksimalnu temperaturu 8-bitni A/D konvertor vraca vrednost 255. Znaci, da bi se broj 255 konvertovao u (otprilike) 450 stepeni moglo bi se uz zadrzavanje linearnog opsega uraditi sledece:

255 + (255/2) + (255/4)

To daje ravno 447 stepeni. Razlika od 3 stepena moze u ovom slucaju biti potpuno zanemarljiva.

Za dalju linearizaciju i drugacije temperature mogli bi uvesti i vece podele (255/8 , 255/16...).


e o ovome nisam razmisljao. svaka ti cast stojane. uproscavanje koda samim tim i stednja memorije. a ta 3 stepena su zaista zanemarljiva, posto nije u pitanju neki laboratorijski instrument.


Citat:
Stojan Trifunovic

I poslusajte Grabika. Uzmite PIC sa integrisanim A/D konvertorom i dovoljnim brojem pinova za direktan pogon LED displeja. Na taj nacin, od spoljnog hardvera morali biste dodati jedino 3 tranzistora (za multipleks displeja), solid state relej i eventualno jedan ulaz za detekciju prolaska napona kroz 0 (ako zelite izuzetno preciznu - faznu regulaciju napona). Tastaturu za stelovanje temperature mozete povezati u mrezi paralelno izlazima za segmente LED displejima.


ne bi trebalo da fali ni jedan pin, cak bi mozda ostao i jedan viska za svetlosnu ili zvucnu signalizaciju kada se lemilica pali i gasi

led disp=7pina
multiplex=3pina
za grejac=1pin
za adc=1pin
za tastaturu isti pinovi kao i za displej
------------------
12 od 13 i/o kod 16f84 znaci imam i jedan viska...
nadam se da ne gresim sto necu da iskoristim pic sa int adc :-))


@ milovan_regodic:
nije mi u cilju da smanjim broj pinova. u ovom slucaju mi to nije potrebno. bas naprotiv, da maksimalno iskoristim svaki pin ovog kontrolera kao i njegovu memoriju. zato sam i zamislio memorisanje tri temperature koje se recimo najcesce koriste i zadnja temperatura sa kojom je radjeno.
[ grabik @ 26.07.2008. 16:11 ] @
Citat:
vladabajic:

ne bi trebalo da fali ni jedan pin, cak bi mozda ostao i jedan viska za svetlosnu ili zvucnu signalizaciju kada se lemilica pali i gasi

led disp=7pina
multiplex=3pina
za grejac=1pin
za adc=1pin
za tastaturu isti pinovi kao i za displej
------------------
12 od 13 i/o kod 16f84 znaci imam i jedan viska...
nadam se da ne gresim sto necu da iskoristim pic sa int adc :-))



ja bih malo ispravio kalkulaciju
za adc 2 pina.

Ovo kako si ti gore zamislio samo da radis ON/OFF regulaciju mozes napraviti i bez uC treba ti samo komparator i recimo icl7106.

Kako ces povezati 16f84 sa LED i tipkama , koji tajmer ces da koristis i koju brzinu osvjezavanja, da bi pojednostavio komunikaciju pozeljno je da citav port koristis za displej, za multipleks nije bitno. Daj nesto konkretno a ne samo suhu teoriju:)
[ vladabajic @ 26.07.2008. 17:20 ] @
Citat:
grabik: ja bih malo ispravio kalkulaciju
za adc 2 pina.


onda nista od onog zvucnog signala (bar ne sa tim 'slobodnim' pinom) :-)))

Citat:
grabik:
Ovo kako si ti gore zamislio samo da radis ON/OFF regulaciju mozes napraviti i bez uC treba ti samo komparator i recimo icl7106.


pa tako nesto sam vec napravio i radi odlicno, samo bez displeja.
sada hocu punu kontrolu i sa memorisanjem temperatura, to sam vec rekao.


Citat:
grabik
Kako ces povezati 16f84 sa LED i tipkama , koji tajmer ces da koristis i koju brzinu osvjezavanja, da bi pojednostavio komunikaciju pozeljno je da citav port koristis za displej, za multipleks nije bitno. Daj nesto konkretno a ne samo suhu teoriju:)


pa evo kako sam ja to zamislio:
po ukljucenju lemne stanice displej pokazuje zadnju temperaturu sa kojom je radjeno (na kratko) i greje do te temperature, pokazujuci trenutnu temperaturu vrha na displeju. temperaturu mozemo zadavati sa tri tastera za memorije 1,2 i 3. takodje moze i trenutna temperatura da se menja sa dva tastera +/- i treba da ostane u memoriji (recimo kao cetvrta). naravno, postoji i jedan 'set' taster. one tri memorisane temperature takodje treba da budu promenljive prema potrabama korisnika. sofverski spreciti iskrenje kontakata tastera.

displej bih uzeo sa zajednickom anodom, a tastere prema istom portu vezao preko dioda da ne bi doslo do palenja nekog od segmenta prilikom pritiska tastera (kada je displej aktivan).
ne razumem pitanje vezano za tajmer! f84 ima samo jedan.
za osvezavanje nisam siguran ali mislim da je 20/s sasvim dovoljno.

algoritam jos nisam napravio, jer sam na ovu ideju dosao pre neki dan. od nedelje cu se baviti time.
mislim da je projekat dosta ozbiljan (za mene) i da ce biti dosta posla i ucenja oko njega, ali verujem da cu uspeti...

nadam se da sam bio dosta konkretan...

pozdrav
[ grabik @ 26.07.2008. 19:29 ] @
Citat:
vladabajic: pa evo kako sam ja to zamislio:
po ukljucenju lemne stanice displej pokazuje zadnju temperaturu sa kojom je radjeno (na kratko) i greje do te temperature, pokazujuci trenutnu temperaturu vrha na displeju. temperaturu mozemo zadavati sa tri tastera za memorije 1,2 i 3. takodje moze i trenutna temperatura da se menja sa dva tastera +/- i treba da ostane u memoriji (recimo kao cetvrta). naravno, postoji i jedan 'set' taster. one tri memorisane temperature takodje treba da budu promenljive prema potrabama korisnika. sofverski spreciti iskrenje kontakata tastera.

displej bih uzeo sa zajednickom anodom, a tastere prema istom portu vezao preko dioda da ne bi doslo do palenja nekog od segmenta prilikom pritiska tastera (kada je displej aktivan).
ne razumem pitanje vezano za tajmer! f84 ima samo jedan.
za osvezavanje nisam siguran ali mislim da je 20/s sasvim dovoljno.

algoritam jos nisam napravio, jer sam na ovu ideju dosao pre neki dan. od nedelje cu se baviti time.
mislim da je projekat dosta ozbiljan (za mene) i da ce biti dosta posla i ucenja oko njega, ali verujem da cu uspeti...

nadam se da sam bio dosta konkretan...

pozdrav


Mislim da previse komplikujes sa tim memorisanim temperaturama, sto jednostavnije to bolje, dve tipke sa kojima namjestas temperaturu kad odpustis neku tipku ta se temperatura memorise. Eventualno napravis da kada neku tipku drzis recimo dok se vrijednost mjenja do recimo deset razlike i onda se brojevi puno brze prebacuju, za fino i ujedno i brzo namjestanje temperatura.

Ovo da pokazuje setovanu temperaturu kod ukljucenja je OK.

Mozes umjesto diode upotrebiti i otpornik, da kad pritisnes tipku ne svijetli ili se ne gasi segment na displeju zavisno da li spajas pin na Vss ili Vdd.

20 puta u sekundi je sporo displej ce ti treperiti nemoj ici ispod 50 u sekundi a moze i vise.

Koji adc ces upotrijebiti?



[ vladabajic @ 26.07.2008. 23:44 ] @
pa mozda jesam malo preterao sa zahtevom, al opet ponavljam, vise cu nauciti :-)
zato sam i ubacio tri memorije a ne samo jednu.
ovo za brzo brojanje sam i mislio staviti, ili da ide po 5 ili 10...
ako stavim 50/s osvezavanje to je na svakih 20 ms da se prikazu sva tri displeja. valjda ce postici tu brzinu sobzirom da ce biti jos dosta koda...
e sto se tice adc-a, nemam pojma koji cu staviti, jer nikad nisam radio sa njima i ta materija mi je nepoznata.
ako si radio nesto slicno, mozes mi predloziti neki koji se cesto koristi u slicnim projektima.
za sada toliko
pozdrav i hvala na savetima
[ grabik @ 27.07.2008. 22:43 ] @
Citat:
vladabajic: pa mozda jesam malo preterao sa zahtevom, al opet ponavljam, vise cu nauciti :-)
zato sam i ubacio tri memorije a ne samo jednu.
ovo za brzo brojanje sam i mislio staviti, ili da ide po 5 ili 10...
ako stavim 50/s osvezavanje to je na svakih 20 ms da se prikazu sva tri displeja. valjda ce postici tu brzinu sobzirom da ce biti jos dosta koda...
e sto se tice adc-a, nemam pojma koji cu staviti, jer nikad nisam radio sa njima i ta materija mi je nepoznata.
ako si radio nesto slicno, mozes mi predloziti neki koji se cesto koristi u slicnim projektima.
za sada toliko
pozdrav i hvala na savetima


Refres displeja napravis preko tajmera , recimo svakih 5 ms imas prekid , svaki puta palis jedan karakter displeja a u medjuvremenu odradjujes glavni posao, racunanje temperature, komunikacija sa adc itd. kada se pojavi slijedeci prekid nakratko prekidas sa izvodenjem potprograma za racunanje i ides na osvezavanje slijedeceg karaktera displeja , kad ukljucis sledeci vracas se opet na glavni program i tako imas i osvezavanje displeja a u pozadini racunanje , s tim da sa osvijezavanjem displeja mozes da skeniras i tipke, debounce se uzima oko 80ms , znaci brojis koliko je dugo neka tipka ukljucena i ako je duze od 80ms znaci tipka je pritisnuta ako je manje nije.

ADC kupis onaj koji mozes da nadjes a da komunikacija sa njim bude serijska i onda skines sa interneta podatke kako se komunicira sa istim.

[ vladabajic @ 27.07.2008. 22:46 ] @
e hvala ti puno na teh.podrsci. kada napravim algoritam javljam se da prodiskutujemo.
hvala jos jednom svima na diskusiji

pozdrav
[ micro2802 @ 27.07.2008. 23:26 ] @
Od nedavno sam poceo praviti aplikacije za mikroontrolore iz porodice Atmel serije 8051,konkretnije najvise koristim 89S52.
Aplikacije radim u Bascom_u. "C" jezik poznajem poprilicno dobro pa me zanima koji da koristim kompajler iz C_a za 8051 seriju.
[ grabik @ 28.07.2008. 06:20 ] @
Koliko je meni poznato za tu seriju imas najvise C kompajlera sto komercijalnih sto besplatnih. Koliko je meni poznato broj jedan komercijalni c kompajler je keil.
[ Stojan Trifunovic @ 28.07.2008. 21:52 ] @
Da se vratimo na temu.
Setio sam se jos jednog nacina linearizacije temperature. Problem je samo u tome sto on prilicno trosi programsku memoriju.

Ukoliko imate vrednost AD konverzije 255 za 450 stepeni, ne mora znaciti da ce donji deo spektra pocinjati ravno od 0 (vrednost 0 iz AD konvertora za 0 stepeni). U tom slucaju umesto proracuna mozete koristiti 2-3 tabele. Pretpostavimo da je opseg linearan i da imate (izmerene) bar pocetnu i krajnju vrednost temperature sa pripadajucim vrednostima iz AD konvertora, na primer vrednost 50 za 0C, i 255 za 450C.
Ukoliko nacrtate grafik na kome na X osi stavite vrednosti koje mozete dobiti iz A/D konvertora (0-255), a na Y osi izmerene vrednosti u datim tackama, mozete spojiti vrednosti ove dve izmerene tacke i obicnom grafickom metodom dobiti odgovarajuce vrednosti A/D konverzije za ceo temperaturni opseg, naravno samo za senzore sa linearnom karakteristikom.
Sada je problem kako te vrednosti prikazati na LED displeju sa sto manje proracuna. Jednostavno. Napravite tri tabele u kojima ce biti slike ukljucenih segmenata LED displeja. Za vrednost AD konvertora 255 bila bi Vam potrebna slika cifre 4 u prvoj tabeli, slika cifre 5 u drugoj i slika cifre 0 u trecoj tabeli. Za vrednost iz AD konvertora 50, temperatura je 0 stepeni, tako da u prvoj i drugoj tabeli nijedan segment ne bi svetleo (ili bi bile prikazane nule), a tek u trecoj bi bila slika cifre 0.

Mozete umesto slike u tabelama cuvati BCD vrednosti prve, druge i trece cifre temperature. Onda bi program morao konvertovati BCD cifre u odgovarajucu sliku na displeju. Znaci, za vrednost AD konverzije od 255 vrednosti u tabelama bi bile d'4', d'5' i d'0'.
Mozete koristiti samo dve tabele tako sto u jednoj tabeli cuvate vrednost dve BCD cifre (ovo je moguce jer su BCD brojevi cetvorobitni), koje bi mogli menjati swapf instrukcijom.

Za laksi proracun svih potrebnih vrednosti AD konvertora za date temperature mozete koristiti program "Merni Interpolator" Lazara Pancica i Bojana Mitica koji se nalazi na mom sajtu. On omogucava cak i upotrebu nelinearnih senzora, normalno uz vise izmerenih tacaka.

Pre rada sa tabelama, obavezno proucite ogranicenja koja iz njih proisticu (Microchipov AN556). Naime, kako se za njih koristi direktna izmena programskog brojaca (PC), mora se obratiti paznja na prelaz bloka tabele preko granica od 256 bajtova.


@vladabajic
Nije mi jasna vasa logika. Zelite da do maksimuma iskoristiti mogucnosti mikrokontrolera (do zadnjeg pina), a opet ne zelite koristiti integrisani ADC. Pa ako vec ucite, moracete jednom nauciti i rad sa modernijim mikrokontrolerima i rad sa integrisanim ADC. Zasto ne odmah, pogotovu ukoliko je to i jeftinije. Eksterni A/D konvertor neka saceka priliku gde bi bio primereniji.
Ako ne poznajete druge podfamilije (priznajem, najvise je uputstava za PIC16F84 po netu), nemojte da Vas to mnogo brine. Registri su drugacije mapirani, imate 4 banke (umesto 2), ali ukoliko koristite manje od 128 registra i programe manje od 2Kb (kao u PIC16F84) skoro sve ostalo je isto.
Mislim da bi najveca razlika sa kojom bi se suocili bila u hardverskom podesavanju pinova (da li da pin bude koriscen za ADC ili za obican I/O, za reset ili I/O), i eventualno oko koriscenja internog oscilatora (jos jednostavnije i jeftinije).

Jos bi i stampana plocica bila manja, jednostavnija i pouzdanija.
[ vladabajic @ 29.07.2008. 23:45 ] @
izgleda da cu popustiti pod pritiskom i uzeti neki 'jeftiniji i bolji'
jel moze 16f88 (njega imam)?
kako bi onda isla matematika proracuna temperature i prikaza na displeju?
10-bitnu vrednost adc-a delim sa neki brojem (da dobijem onih 0-450°C) pa onda u konvertujem u bcd i onda na displej?
deluje jednostavno...
[ Stojan Trifunovic @ 30.07.2008. 06:46 ] @
Moze svakako 16F88. Ima dovoljan broj pinova, ima ADC, interni oscilator, ima cak i hardverski I2C (u ovom slucaju bespotreban).

Najpreciznije merenje dobili bi tabelama, sa tim sto bi Vam za desetobitnu rezoluciju to pojelo programsku memoriju. Medjutim, ako Vam je dovoljna osmobitna rezolucija, sto da ne. Videcete prilikom ucenja A/D konvertora kako mozete odmah dobiti osmobitnu vrednost.

Ako ne zelite tabele, a dovoljna Vam je osmobitna rezolucija, mozete primenjivati ranije opisano deljenje. Ovo je najjednostavnije uraditi.

Za desetobitnu rezoluciju bez tabela maksimalni broj koji mozete dobiti iz ADC je 1024. Umesto deljenja sa 2.276 mozete uraditi sledece:

(1024/4) + (1024/8) + (1024/16). To je ravno 448 stepeni.

U slucaju koriscenja ovih proracuna morate osigurati da je vrednost A/D konverzije 0 za 0 stepeni i 255 ili 1024 za 450 stepeni. Kod tabela svakoj vrednost iz ADC pridruzujete cifru za displej, tako da to nije bitno.
[ Stojan Trifunovic @ 30.07.2008. 12:22 ] @
Samo da napomenem da mnogo memorije u tabelama za desetobitnu rezoluciju nije problem, jer bi cak i da se u tabeli cuva slika displeja umesto BCD vrednosti bilo potrebna tabela sa bar 1024 vrednosti za jednu cifru (u praksi malo vise zbog prelaska izmedju stranica), odnosno 3Kb za tri cifre.
Problem bi bio pisanje sve tri tabele sa svih 1024 vrednosti, ili dve tabele ako se koriste BCD cifre sa dve cifre u jednoj memorijskoj celiji. Mnogo dosadnog posla. Nista drugo.
[ vladabajic @ 30.07.2008. 15:21 ] @
ako sam dobro razume ovo je najlaksi metod:

@stojan trifunovic wrote:

Za desetobitnu rezoluciju bez tabela maksimalni broj koji mozete dobiti iz ADC je 1024. Umesto deljenja sa 2.276 mozete uraditi sledece:

(1024/4) + (1024/8) + (1024/16). To je ravno 448 stepeni.

U slucaju koriscenja ovih proracuna morate osigurati da je vrednost A/D konverzije 0 za 0 stepeni i 255 ili 1024 za 450 stepeni. Kod tabela svakoj vrednost iz ADC pridruzujete cifru za displej, tako da to nije bitno.


izbegavam gomilu tabela, koje mi iskreno i nisu bas najjasnije :-)
ovu formulu mogu samo iskopirati gde god mi je potrebna ili da napravm makro?
treba mi i za prikaz na displej i za proracun kada ce se grejac paliti i gasiti.
takodje kod zadavanja temperature i upisa tj. citanja eeproma...
pitam ovo zbog pravljenja algoritma, da ne bi na samom startu napravio gresku.
za sada toliko.

pozdrav

P.S. da li neko ima primer programa za prikaz tri cifre na displeju sa brojevima vecim od 255?
ja sam dosta trazio ali nisam nasao
za 8-bitni broj to nije problem :-)
[ grabik @ 30.07.2008. 15:42 ] @
Probaj sa emule da skines knjigu The Quintessential PIC Microcontroller koja se moze naci u pdf-u. Ako malo znas engleskog nece ti biti tesko da shvatis o cemu autor pise, imas dosta primjera u asembleru i c-u a takodje i sheme kako se hardverski uC spaja sa lc displejima a takodje i primjeri programa i objasnjenja.
[ vladabajic @ 30.07.2008. 17:50 ] @
skinuo sam. letimicnim pregledom sam video da ima bas onoga sto meni treba.

@grabik, hvala puno
[ pelctronics @ 30.07.2008. 18:06 ] @
Dobra tema i ide u dobrom pravcu....)

http://rapidshare.com/files/66...amming_-_The_Microchip_PIC.rar

evo jos neke knjizice...
[ Stojan Trifunovic @ 31.07.2008. 00:03 ] @
@vladabajic
ako sam dobro razume ovo je najlaksi metod:

Ne, to nije najlaksi metod. Postoji jos laksi, a to je da iako imate desetobitnu rezoluciju konverzije koristite samo osmobitnu, i metodu opisanu u mom prvom postu 255 + (255/2) + (255/4).

Ponavljam, morate osigurati da je vrednost A/D konverzije 0 za 0 stepeni i 255 za 450 stepeni.

Buduci da iz vasih postova primecujem da ne razumete dovoljno asembler, preporucujem Vam da proucite kako mozete u dva bajta sacuvati vrednosti vece od 255 i kako mozete sabirati vrednosti vece od 255 sa dvobajtnim rezultatom.

Formulu niposto ne mozete iskopirati (niti mozete napraviti makro), ali kada budete proucili asembler znacete i sami kako da to uradite.

Za prikaz na LED displeju morate imati rutinu za binary to BCD konverziju dvobajtnog broja, zatim rutinu za dobijanje slike displeja od BCD broja, onda interapte koji osvezavaju displej...
Preporucujem Vam da za pocetak krenete sa nekim jednostavnijim zadatkom, ili da makar ovaj realizujete po segmentima. Ostavite stelovanje, snimanje i kontrolu temperature po strani, sve dok najpre ne dobijete ispravno ocitavanje temperature. Kasnije mozete redom dodavati nove funkcije.

Kad smo vec kod knjiga, pogledajte i onu sa mog sajta.
[ vladabajic @ 31.07.2008. 09:15 ] @
hvala puno na korisnim savetima.
kao sto sam vec napomenuo, ranije sam radio u picbasic-u (nazalost), tako da ste mogli primetiti da ne vladam bas najbolje sa asemblerom. ali ce se to naravno promeniti.....

@stojan trifunovic
skinuo sam uputstvo sa vaseg sajta. na takvu lilteraturu jos nisam nailazio.
mogu samo reci: SVAKA CAST!!!
ovo bih iskreno preporucio svim pocetnicima

pozdrav
[ apophis_story @ 12.08.2008. 15:47 ] @
Ovaj forum čitam nekoliko godina, ali nekako mi uvijek dosade ista pitanja i okretanje u krugovima uzaludnosti... Svi samo nabrajaju mikrokontrolere s kojima rade, njihove mogućnosti, compilere... "Ja sam programirao ATMELA u Alžirskom ratu... Misliš li da je PIC bio prihvatljivija opcija????" Sve što sam pročitao svodi se na jedno veliko ništa, toliko veliko da bi mogli početi razgovarati recimo o kroasanima... Besmisleno je na forumu navoditi performanse nekog MCU-a kad svatko od nas ima to osnovno znanje: "www.google.com PIC16F84 datasheet"

Pitam se kamo su nestali oni početnici koji su prije 2 godine postavljali pitanja :" Kako da krenem?????" - jer do sada su vjerojatno napravili zmigavac za bicikli pa bi bilo lijepo od njih da ovaj forum iskoriste kao prezentaciju source coda. Rado bih svakome pomogao koliko to moje znanje dozvoljava, ali kako da pomognem nekome tko želi krenuti jednim postom????? Zaboga ne govorimo o receptu za juhu, nego o kompleksnoj stvari za koju ponekad treba odvojiti dobar dio života i uložiti puno truda.
Nezamislivo je da jedan forum programiranja MCU-a u sebi ne sadrži niti 5 % programskog koda!!!
Mislim da je najbolji način učenja odrediti projekt kojim se bavi tim ljudi sa foruma. Idemo napraviti zajedno bilo što s bilo čim, a iza toga sigurno će ostati miris programskog koda....
[ Struja01 @ 12.08.2008. 18:14 ] @
Citat:
apophis_story: Ovaj forum čitam nekoliko godina, ali nekako mi uvijek dosade ista pitanja i okretanje u krugovima uzaludnosti... Svi samo nabrajaju mikrokontrolere s kojima rade, njihove mogućnosti, compilere... "Ja sam programirao ATMELA u Alžirskom ratu... Misliš li da je PIC bio prihvatljivija opcija????" Sve što sam pročitao svodi se na jedno veliko ništa, toliko veliko da bi mogli početi razgovarati recimo o kroasanima... Besmisleno je na forumu navoditi performanse nekog MCU-a kad svatko od nas ima to osnovno znanje: "www.google.com PIC16F84 datasheet"

Pitam se kamo su nestali oni početnici koji su prije 2 godine postavljali pitanja :" Kako da krenem?????" - jer do sada su vjerojatno napravili zmigavac za bicikli pa bi bilo lijepo od njih da ovaj forum iskoriste kao prezentaciju source coda. Rado bih svakome pomogao koliko to moje znanje dozvoljava, ali kako da pomognem nekome tko želi krenuti jednim postom????? Zaboga ne govorimo o receptu za juhu, nego o kompleksnoj stvari za koju ponekad treba odvojiti dobar dio života i uložiti puno truda.
Nezamislivo je da jedan forum programiranja MCU-a u sebi ne sadrži niti 5 % programskog koda!!!
Mislim da je najbolji način učenja odrediti projekt kojim se bavi tim ljudi sa foruma. Idemo napraviti zajedno bilo što s bilo čim, a iza toga sigurno će ostati miris programskog koda....


gresiss... grdno gresis.. na ovome forumu sam se prvi put sreo sa mikrokontrolerima i upoznao mnogo toga, ovaj forum je bio moja prekretnica, i bice mnogim drugima, ako se potrude da uce mcu.. kao sto si napisao mikrokontroleri nisu juha, zato svako ko hoce da se bavi njima, ako odmah na pocetku odustane, nije to za njega.. ja sam se trudio i prevazisao neke pocetnicke probleme.. tako svako ko hoce da se bavi programiranjem mcu ima literature dosta.. internet je pun raznih primera... ovde na forumu ima dosta linkova i dosta diskusija se vodilo i pocetnici bi mogli mnogo toga da nauce... cak i "Odin D" je postavio link koji vodi ka jednoj knjigi mnogo bogatoj znanja o PIC mikrokontrolerima... sve je tu, samo treba malo potraziti i potruditi se...! Vjerujem da ce se i ostali sloziti samnom..
pozdrav
[ johnny_hush @ 13.08.2008. 03:40 ] @
U potpunosti!
[ korak @ 13.08.2008. 09:11 ] @
Slazem se sa milovan_rodic, potpuno je u pavu.

Prvo, ovaj formi ne treba da se zove 'Mikrokontroleri' vec 'Prvi koraci sa PIC-om'. Ovaj drugi naziv potvrdjuju i oni koji se ne slazu sa Milovanom. Dobro bi bilo da se otvori poseban forum za PIC, kako ne bih trosio vreme trazeci nesto vredno na sadasnjem 'Mikrokontroleri'. Forum mikrokontroleri treba da obradjuje opste teme koje se ticu primene mikrokontrolera i da bude namenjen napradnijim korisnicima mikrokontrolera. Po kvalitetu diskusija ovaj forum znatno zaostaje od nekih drugih foruma (Fizika, Nauka i t. d.). Osim toga, on siri jednoobraznost navodeci pocetnike da koriste PIC i samo PIC, jer im ne daje mogucnost drugog izbora, Kuda to vodi?

Forum ne moze da zameni skolu, aki ima funkciju edukacije, nazalost na ovom forumu ona je jako suzena. Ucesnici uglavnm (sem par casnih izuzetaka) ne razumeju osnovne stvari i stalno traze gotove kodove, dakle ne zele nista da nauce, ili ih mrzi da to rade. Tako nece daleko dogurati. Cest je slucaj da neko postavi pitanje, kao napisao je kod da upravlja nekim integrisanim modulom mikrokontrolera, ali on ne radi, i sada ocejuje da mu neko promeni jednu ili dve naredbe kako bi to radilo. Umesto toga treba pitati kako radi taj modul i kako se moze koristiti, pa kada stekne dovoljno znanja on ce moci da napise sam ispravan kod. Kada neko ko spada u casne izuzetke, otvori neku ozbiljnu temu, umesaju se ovi drugi i upropaste celu diskusiju.

Ja sve manje imam interesovanja za ovaj forum i samo iz navike ga ponekad prelistam.

Pozdrav.
[ rtvbracel @ 18.09.2008. 19:42 ] @
Vidim da je tema malo zamrzla, iako mi se jako sviđa to što ima ljudi koji bi svoje znanje i iskustvo željeli da podjele sa drugima,pa bi želio malo da je oživim. Imam konkretan problem, pa ako neko ima želje i volje da pomogne neka izvoli.
Radi se o led displeju a u suštini je problem u programiranje pic-a.
Posjedujem programatore za programiranje raznih eeproma a među ostalim i pic-ova tako da mi to nije problem.
Ako bi neko bio zainteresovan da napiše jedan program za ovaj konkretan uređaj i na osnovu toga malo pojasnio gdje i šta treba promjeniti u samom programu tako da bih sam mogao mjenjati ¨¨ tekst i brzinu¨¨ ispisa bio bih mu jako zahvalan, a vjerujem i svima nama laicima koji želimo da nešto naućimo na ovu temu.
[ Odin D. @ 19.09.2008. 00:39 ] @
Trebalo bi malo vise detalja o tome sta i kako treba da se ispisuje na tom displeju. O kakvoj se brzini radi? Mislis li na neko skrolovanje teksta sa desna na lijevo ili nesto tome slicno?
Inace, nije nesto komplikovano da se napravi, ima sigurno kolega koji redovno rade sa pic-om i koji bi to mogli brzo uraditi, samo, kao sto rekoh, trebaju malo preciznije specifikacije problema.
[ rtvbracel @ 19.09.2008. 18:08 ] @
Trbalo bi da ispisuju: "STOP", "LIJEVO", "DESNO", "NAZAD"," IDI" I STRELOCE (---- ----) one mogu skrolovane