Bu projede ilk kez PIC mikro-denetleyici kullandım. Microchip firması tarafından üretilen PIC serisi epeydir kullanılmakta. 8, 16, 32 bit olan modelleri var. Mikro-denetleyiciler; içlerinde (mikro)işlemci, RAM, giriş/çıkış elemanları gibi devreler içerir. Yani mikro-denetleyici ile mikro-işlemci aynı şey değildir. PIC, Arduino’daki Atmel mikrodenetleyicisi gibi düşünülebilir.
Kullanılmaları Arduino kadar kolay değil! Öncelikle kodlaması farklı. Değişik derleyicilerde CCS C gibi dillerde yazılıyorlar. Arduino’daki kadar açık koddan bahsedemeyeceğim. Bir de bu kodların HEX dosyaları oluyor. Ben zaten bulduğum HEX dosyasını kopyala yapıştır yaptım. Hex dosyalarında siz fazladan derleme yapmadan yine bazı programlarla (benim kullandığım mcrbrn) yükleme yapmanız gerekiyor.
Bu da yetmez! Bilgisayarla haberleşme seri iletişim protokulü (RS232) ile sağlanıyor. Bunun için de bir yükleme cihazına ihtiyacınız var. Pickit serisi bu işe yarıyor ama 100 TL civarında.
Ben daha eski model olan K-150 USB programlayıcı aldım. Aliexpres’ten şu ana kadar elime en hızlı geçen malzeme oldu. Sipariş tarihinden iki hafta sonra bana ulaştı. Hem de 6 küsür dolara.
Neyse bu da yetmiyor! Seri haberleşme için bilgisayarınıza sürücü (usb to serial com port driver) yüklemeniz gerekiyor. (Prolific Driver-PL2303) Dediğim gibi K150 en eskilerden biri olduğu için yüklediğiniz sürücü versiyonu önemli. Ben yüklerken çalıştırabilmek için 2010 (2017 ve 2018 de vardı) versiyonunu yüklemem gerekti. Bunu bulmak için epeyce araştırma yaptım ama sağolsun Robojax’ın videosu işime çok yaradı. (https://www.youtube.com/watch?v=vsb2k1etImg&t=240s). Buradan download da yapabilir, kurulumu da izlersiniz.
Hex dosyalarını programda yükleme yapmadan önce, Aygıt yöneticisinden bilgisayarın hangi portunun kullandığına bakıp, yükleme yapmadan önce programda o portu seçmelisiniz. Yani Arduino’daki kadar pratik değil.
Neyse bütün bunları hallettikten sonra elimdeki PIC16F628 ile ne yapabileceğime baktım. Önce bir LED yakıp söndürdüm, çalıştı. Sonra 8 LED’li animasyon projesini buldum. O da çalıştı 🙂
Bu projenin orijinalini ve daha fazlasını incelemek için: (http://picprojects.org.uk/projects/ledchaserpwm/index.htm#Description)
Gelelim devreye. Benim kullandığım 16F628 18 bacaklı bir entegre. Zaten 8 adet A çıkışı, 8 adet B çıkışı bulunuyor.
(Data sheet: http://ww1.microchip.com/downloads/en/DeviceDoc/40044G.pdf)
6’dan 13’e kadar olan (B0-B7) çıkışları birer koruma direnci ile LED’lere bağladık. 3 numaralı girişi bir buton ile GND ye bağlayıp, 10K’lık bir direnci pull up direnci olarak +5 volta çektik. 4 numaralı MCLR reset sinyalini de aynı şekilde 10 K’lık pull up direnci ile +5 volta bağladık. +5V ile GND arasına da 100 nF bir kapasitör bağlandı. Gerisini 16F628 kendisi yaptı.
Gelelim koda. Dediğim gibi HEX dosyası. Bu kodu wordpad’a yapıştırıp, .hex uzantılı olarak kaydediyoruz. Sonra programda “Load” seçeneği ile yüklüyoruz. “Chip Selector” den kullanacağımız denetleyiciyi seçiyoruz; 16F628A. “Program” tuşuna bastığımızda K150 ye bağladığımız çipe program yükleniyor. Programı açtığınızda garip hata mesajları gelebilir. Bu çalışmadığı anlamına gelmiyor, merak etmeyin.
Kaynak: http://picprojects.org.uk/projects/ledchaserpwm/index.htm#Firmware
:020000040000FA
:02000000C52811
:08000800BB00030EBC000A0856
:10001000BD008A01831264009D3081070B11F52019
:10002000B50B1F283230B500B715AA0303193714D2
:10003000371E1F28BE0B1F28BF0B1F28C0213D08DD
:100040008A003C0E8300BB0E3B0E09003D20B71D0D
:100050002628B711051E3428360A03193228FC3E1B
:100060000318B714B6012628360A03192628B60045
:10007000803A06300319A00026288A01200882074A
:1000800048285B286D287528802891289D28BD2840
:10009000A00A300857213713B7134621B81854283F
:1000A0002B1BB7172C2108002B1F08008221031CD3
:1000B00037172C210800B71C6528B7100330A000A3
:1000C0000430BF00BE0137160800371C08002B089B
:1000D0001F39031D2C29A00A0800A00A381D08009A
:1000E00046212C210130A0000800A00AB818080001
:1000F000B71F08004621B71337170130A0000800CA
:10010000A001B8188928B00A30082F060319B001D9
:10011000080082212C05B0002F083002031889281E
:100120000800A8013808A700B71C0800B710031082
:100130000130381D380DB80008000730371D053074
:10014000A000B7100430B706FF30B600B81D080095
:100150008B120B118B136400810183160F30810009
:1001600083128601B60163006400051AB228B60A3C
:100170003608023A031DB328C528A801A701A0012B
:100180000430BF00BE013716080064008601073046
:100190009F00831610308500860100308100831295
:1001A00085012030840042308001840A0406031D4A
:1001B000D3289D3081003230B500FF3057212F0306
:1001C000BB00AC010830BB0DAC08031D0314AC0D23
:1001D000FF3E031DE328B0011F30A900902101302C
:1001E000A0000B118B168B17262822082305240547
:1001F00025052605A10421088600250824052305D8
:100200002205A606240823052205A50623082205A3
:10021000A4062208A306A209A90B08001F30A90002
:10022000A1012808A2002708A5002805A300A40012
:10023000A6000800B200B20DB30CB20DB30CB20DA3
:10024000B30CB20DB30CB20DB30CB20DB30CB20DB6
:10025000B30CB20D330C080050218A01AA003710EC
:10026000013E0319402950218A01371B1A21B4008D
:1002700050218A01371B1A21A7003408A800080062
:100280004B2150218A01AB03371408004B21502128
:100290008A01AB0008002E08BA002D08B90008003A
:1002A0003A088A003908B90A0319BA0A8200B0006C
:1002B0007621B00803190800AE00B1017B218A0144
:1002C000013E03197429033003190230AD070318E6
:1002D000AE0A7B218A01013E031D6529310AB10066
:1002E0003006031D5E2908003108AF00E530AD007F
:1002F0000130AE0008002E088A002D08AD0A03194F
:10030000AE0A8200410842040319C2090310C10D5C
:10031000C20D031C8E29A130C106C2064208080086
:100320000301B3212F024008031C0301B000572131
:1003300046210130B3210739C000B8000301C00CC9
:100340000318013EC00C0318013EC00C0318013E07
:10035000FF3E0319AD290130B8000230B321C03986
:100360000138B7000800831603139B00831603139C
:100370001C14831603131A0883120313C000080009
:100380000301CE213008D4210130CE213808D421F8
:100390000230CE213708D421371208008316031308
:1003A0009B00831203130800831603139A0083161D
:1003B00003131C1555309D00AA309D009C14640049
:1003C0009C18DF2983120313080004340834803496
:1003D000803408344034C0340834A03460340834E5
:1003E000D0343034083468341834083434340C349D
:1003F00008341A34063408340D3403340834033412
:10040000013408340134013408340234033408342C
:100410000534063408340B340C34083416341834DC
:1004200008342C3430340834583460340834B03450
:10043000C0340834C0348034FF3404340B34803486
:1004400080340B344034C0340B34A03460340B346B
:10045000D03430340B34683418340B3434340C3426
:100460000B341A3406340B340D3403340B34033498
:1004700001340B34013401340B34023403340B34B3
:10048000053406340B340B340C340B341634183466
:100490000B342C3430340B34583460340B34B034D7
:1004A000C0340B34C0348034FF3404342D348034F1
:1004B000803408344034C0340834A0346034083404
:1004C000D0343034083468341834083434340C34BC
:1004D00008341A34063408340D3403340834033431
:1004E00001342D3401340134083402340334083427
:1004F0000534063408340B340C34083416341834FC
:1005000008342C3430340834583460340834B0346F
:10051000C0340834C0348034FF34053408348134A6
:1005200000340834423400340834243400340834AD
:100530001834003408349934003408345A34003400
:1005400008343C340034083400341834083400349F
:1005500018340834813418340834423418340834D8
:1005600024341834083418341834083499341834BE
:1005700008345A34183408343C34183408341834E5
:10058000183408343C343C3407347E347E3406342A
:10059000FF34FF340834E734FF340A34DB34E73403
:1005A0000A34A534C3340A34423481340C348134DF
:1005B0000034FF3448340534E034403405347034BA
:1005C000203405343834103405341C3408340534F0
:1005D0000E340434053407340234053483340134D2
:1005E0000534C1344034FF3448340334E0344034FB
:1005F00003347034203403343834103403341C345E
:10060000083403340E34043403340734023403341E
:10061000833401340334C1344034FF344834023469
:100620008034803402344034403402342034203466
:1006300002341034103402340834083402340434E0
:1006400004340234023402340234013401340234FA
:100650008034803402344034C0340234A0346034F6
:100660000234503430340534283418340734143408
:100670000C3409340A3406340B34053403340C3496
:10068000023401340E3401340034FF344334013475
:1006900080348034013440344034013420342034F8
:1006A0000134103410340134083408340134043473
:1006B000043401340234023401340134013403348B
:1006C0000234033404340534063405340B340C345A
:1006D00006341734183407342E34303408345C347C
:1006E00060340934B834C0340A34603480340B3494
:1006F000803400340C3400340034FF34483408347F
:100700008234813408344134C0340834A034603435
:10071000083450343034083428341834083414344D
:100720000C3408340A340634083405340334FF34F6
:100730000A34083466340034083499346634083492
:100740006634FF3408349934FF34083466349934FD
:10075000083499340034FF340E34073481340034C3
:100760000734413482340734A534C33407345A344F
:10077000E7340734A5347E3407345A343C34073424
:100780002434183407341834003407340034003467
:10079000FF340A3408340034CC340834003466346E
:1007A000083400343334083400349934FF3444348A
:1007B0006434FF34003414347F3480341434FF3410
:1007C00080340234FF3440340234FF3420340234A5
:1007D000FF3410340234FF3408340234FF3404345C
:1007E0000234FF3402340234FF3401340234FF3463
:1007F00000340234FF3480340234FF344034023495
:10080000FF3420340234FF3410340234FF3408340F
:100810000234FF3404340234FF3402340234FF342F
:100820000134FF3404340734DB343C340734B73448
:10083000783407346F34F0340734DF3460340734ED
:100840006F34F0340734B73478340734ED341E3461
:100850000734F6340F340734FB3407340734F634E6
:100860000F340734ED341E34FF3404340734FF34BE
:10087000803407347F34C0340734BF3460340734E5
:10088000DF3430340734EF3418340734F7340C34A1
:100890000734FB3406340734FD3403340734FF34A3
:1008A00001340734FE3403340734FD34063407348E
:1008B000FB340C340734F73418340734EF34303455
:1008C0000734DF3460340734BF34C034FF340634B7
:1008D000073481340034073442340034073424347C
:1008E00000340734183400340734993400340734A2
:1008F0005A34003407343C3400340734003418349C
:10090000073481341834073442341834073424341B
:1009100018340934183418340934003418340934BC
:1009200018340034093400341834093418341834B5
:10093000033424343C3404345A3466340534A53446
:10094000C3340634423481340734813400340734EC
:1009500000340034FF345F3407348834883407347B
:1009600044344434073422342234073411341134EB
:10097000FF345F340734AA34CC340734553466343A
:100980000734AA343334073455349934FF340934E6
:100990000934A534C3340934DB34E7340934E7348B
:1009A000FF340934FF34FF3409347E34FF34093412
:1009B000BD347E3409345A343C3409342434183478
:1009C000093418340034093400340034FF344C3412
:1009D0000634A234C13406345134E0340634A83429
:1009E000703406345434383406342A341C34063413
:1009F00015340E3406348A340734063445348334CF
:100A0000FF34443406348034003406344034003437
:100A100006342034003406341034003406340834EC
:100A2000003406340434003406340234003406340E
:100A30000034013406348034013406344034013447
:100A400006342034013406341034013406340834BA
:100A500001340634043401340634003403340634DB
:100A600080340334063440340334063420340334F1
:100A700006341034033406340834033406340034A6
:100A800007340634803407340634403407340634DF
:100A900020340734063410340734063400340F345D
:100AA000063480340F34063440340F340634203496
:100AB0000F34063400341F34063480341F340634B7
:100AC00040341F34063400343F34063480343F341D
:100AD000063400347F3406340034FF340634FF34E7
:100AE000FF34013400340034FF340A340934C33491
:100AF000C3340634003400340934C334C3340634F8
:100B00000034003409343C343C34063400340034BE
:100B100009343C343C34063400340034FF340A34A5
:100B20000934FF34C33406343C3400340934FF3410
:100B3000C33406343C3400340934FF343C340634C6
:100B4000C33400340934FF343C340634C334003435
:100B5000FF3402341334C33442341334663424343F
:100B600013343C34183413343C3424341334663492
:0C0B700042341334C3348134FF34FF34AA
:02400E00743FFD
:104200000000010000002000500057004D00200079
:104210004C0045004400200043006800610073002A
:104220006500720020002000560031002E00300092
:104230002E00370020002000300033002F00300017
:1042400034002F0032003000300039002000200000
:10425000700069006300700072006F006A00650002
:104260006300740073002E006F00720067002E0060
:0642700075006B00200048
:00000001FF
Evet hepsi bu kadar.