Arşivlerin arasında; 2017 yılında katıldığım kursun proje notlarını buldum. Python Programlama Eğitminden aldığım bilgilerle yapmaya çalıştmıştım. Python2 üzerine yazılmış proje. Basit değişiklikler ile Python3 ‘e dönüştürülebilir.
“Bu uygulamada bilgisayara bağlanan bir seri port üzerinden veri gönderme çalışıyorum. Bu port karşılığında Arduino bağlı ve çıkışlarında da iki adet 74HC595 bulunmaktadır.
74HC595 çıkışları matriks olarak sekiz haneli 7 segment display ile bağlıdır. Matriks bağlantıda mecburen tüm displaylar zaman içinde taranmak zorunda. Birim zamanda her bir digit aktif edilip segmentlerin yanması sağlanıyor. Aynı zamanda Arduino seri port üzerinden gelen bilgiyi parçalayıp segmentlerde istediğimiz karakterlerin görülmesini sağlıyor. Bu proje Python2 üzerinde geliştirildi, küçük değişklikler ile Python3 ile de çalışır hale getirmek mümkün olacaktır.
Bu projeyi; İBB Hayat Boyu Öğrenme Müdürlüğü İSMEK Python Programlama
branşındaki aldığım eğitim ile geliştirdim. Başta kurs öğretmenimiz Sn. Mustafa Yılmaz olmak üzere, İSMEK Bilişim Okulu yöneticileri ve çalışanlarına teşekkür ederim.Mehmet Bilgi / 2017″
SeripPortYolla.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# @Yazar : Mehmet Bilgi
# @Proje Adı : seriPortYolla
# @Dosya Adı : seriPortGui.py
# @Version : v.01
# @Zaman : 16.11.2017 01:08
# @Lisans : Çay Ismarlama Lisansı
# (Yazar görüldüğü yerde çay ısmarlanacak :D )
# -----------------------------------------------------------------------------
'''
Eksikler:
* Seri kablo çıkarılıp yeniden takınca bağlanmıyor.
* Elle seçim yapılan yerde virgül veya nokta ile
ondalıklı sayı girme
* Soldaki sıfır olan karakterlerin (işe
yaramayanlarının) sönmesi
'''
try:
from Tkinter import *
except ImportError:
from tkinter import *
import serial
import sys, os
import serial.tools.list_ports
from datetime import datetime
# -----------------------------------------------------------------------------
# Genel değişkenler
# -----------------------------------------------------------------------------
MODES = [(u'Saat', u'1'),
(u'Tarih', u'2'),
(u'Saat ve Tarih', u'3'),
(u'Elle Girilen', u'4'),
]#Radyo butonu seçenekleri
bagliMi = []
say = 0
MAXSAY = 50
cagir = None
hg = ''
ser1 = None
yok = ''
widgetTAB = 50
fnt = 'CorierNew'
fntEk = ''
# -------------------------Modüller--------------------------------------------
# -----------------------------------------------------------------------------
# Seri por listesi, eğer yok ise liste 0 dönecek.
# bayrak 0 olarak devam edecek
# -----------------------------------------------------------------------------
def seriPort():
liste = serial.tools.list_ports.comports() # seri port listesini aktar
for element in liste:
bagliMi.append(element.device) # bulunan portları ayır
bagliMi.sort() # (liste) bulunan portları sırala
# -----------------------------------------------------------------------------
# Sistem zamanını tupple den listeye dönüştürür
# -----------------------------------------------------------------------------
def zamanTup():
rr = []
v = ''
s = []
tt = tuple(datetime.now().timetuple())
for z in tt:
if (z <= 9 and z >= 0):
rr.append('0' + str(z))
elif (z < 0):
rr.append(str(z))
else:
rr.append(str(z))
for k in rr:
v += k
for i in v:
s.append(i)
return(s)
# -----------------------------------------------------------------------------
# Sistem saatini seri porta yollar
# -----------------------------------------------------------------------------
def saatYolla():
global cagir
if(cagir != None):
pencereAna.after_cancel(cagir)
s = zamanTup()
gonder = []
#saat, dakika ve saniye
for gg in range(8):
gonder.append(s[gg + 8])
gonder[6] = gonder[4]
gonder[7] = gonder[5]
gonder[4] = '0'
gonder[5] = '0'
a = ['1', '1', '1', '1', '0', '0', '1', '1']
n = ['0', '1', '0', '0', '0', '0', '0', '0']
etiketMesaj1['text'] = gonder
ser1.write(sCevir(gonder, a, n))
ser1.flush()
cagir = pencereAna.after(200, saatYolla)
# -----------------------------------------------------------------------------
# Sistem tarihini seri porta yollar
# -----------------------------------------------------------------------------
def tarihYolla():
global cagir
if (cagir != None):
pencereAna.after_cancel(cagir)
s = zamanTup()
gonder = []
# gun, ay ve yıl
gonder.append(s[6])
gonder.append(s[7])
gonder.append(s[4])
gonder.append(s[5])
gonder.append(s[0])
gonder.append(s[1])
gonder.append(s[2])
gonder.append(s[3])
a = ['1', '1', '1', '1', '1', '1', '1', '1']
n = ['0', '1', '0', '1', '0', '0', '0', '0']
etiketMesaj1['text'] = gonder
ser1.write(sCevir(gonder, a, n))
ser1.flush()
cagir = pencereAna.after(200, tarihYolla)
# -----------------------------------------------------------------------------
# Sistem saatini ve tarihi seri porta yollar
# -----------------------------------------------------------------------------
def saatTarihYolla():
global cagir
global say
if(cagir != None):
pencereAna.after_cancel(cagir)
s = zamanTup()
gonder = []
if (say <= MAXSAY / 2):
# saat, dakika ve saniye
for gg in range(8):
gonder.append(s[gg + 8])
gonder[6] = gonder[4]
gonder[7] = gonder[5]
gonder[4] = '0'
gonder[5] = '0'
a = ['1', '1', '1', '1', '0', '0', '1', '1']
n = ['0', '1', '0', '0', '0', '0', '0', '0']
elif (say > MAXSAY / 2):
# gun, ay ve yıl
gonder.append(s[6])
gonder.append(s[7])
gonder.append(s[4])
gonder.append(s[5])
gonder.append(s[0])
gonder.append(s[1])
gonder.append(s[2])
gonder.append(s[3])
a = ['1', '1', '1', '1', '1', '1', '1', '1']
n = ['0', '1', '0', '1', '0', '0', '0', '0']
say += 1
if (say > MAXSAY):
say = 0
etiketMesaj1['text'] = gonder
ser1.write(sCevir(gonder, a, n))
ser1.flush()
cagir = pencereAna.after(200, saatTarihYolla)
# -----------------------------------------------------------------------------
# Elle yazılan değeri seri porta yollar
# -----------------------------------------------------------------------------
def elleYolla():
global cagir
global hg
if (cagir != None):
pencereAna.after_cancel(cagir)
gonder = []
for i in hg:
gonder.append(i)
a = ['1', '1', '1', '1', '1', '1', '1', '1']
n = ['1', '0', '0', '0', '0', '0', '0', '0']
etiketMesaj1['text'] = gonder
ser1.write(sCevir(gonder, a, n))
ser1.flush()
cagir = pencereAna.after(200, elleYolla)
# -----------------------------------------------------------------------------
# Veriler paketleniyor
# -----------------------------------------------------------------------------
def sCevir(p1, acik, nokta):
s = 's' + \
p1[0] + ',' + \
p1[1] + ',' + \
p1[2] + ',' + \
p1[3] + ',' + \
p1[4] + ',' + \
p1[5] + ',' + \
p1[6] + ',' + \
p1[7] + ',' + \
acik[0] + ',' + \
acik[1] + ',' + \
acik[2] + ',' + \
acik[3] + ',' + \
acik[4] + ',' + \
acik[5] + ',' + \
acik[6] + ',' + \
acik[7] + ',' + \
nokta[0] + ',' + \
nokta[1] + ',' + \
nokta[2] + ',' + \
nokta[3] + ',' + \
nokta[4] + ',' + \
nokta[5] + ',' + \
nokta[6] + ',' + \
nokta[7] + '\n'
return s
# -----------------------------------------------------------------------------
# Seri porta radio düğmesinden gelen seçime göre fonksiyon seçer
# -----------------------------------------------------------------------------
def seriPortYolla(event = None):
global hg
f = ''
y = v.get()
if(y == u'1'):
girisKutusu1.config(state = 'disabled')
girisAlButon.config(state = 'disabled')
saatYolla()
elif(y == u'2'):
girisKutusu1.config(state = 'disabled')
girisAlButon.config(state = 'disabled')
tarihYolla()
elif(y == u'3'):
girisKutusu1.config(state = 'disabled')
girisAlButon.config(state = 'disabled')
saatTarihYolla()
elif(y == u'4'):
girisKutusu1.config(state = 'normal')
girisAlButon.config(state = 'normal')
# f rakam mı, nokta veya virgül nerede (düzenlenecek)
f = str(unicode(girisKutusu1.get(), 'utf-8'))
# f içerisinde ilk noktayı bul
fUzunluk = len(f)
if(fUzunluk > 8):
hg = f[:8]
elif(fUzunluk < 8):
hg = ('0' * (8 - fUzunluk)) + f
else:
hg = f
elleYolla()
girisKutusu1.delete(0, END)
# -----------------------------------------------------------------------------
# Seri porta bulunmuş ise baglanır
# -----------------------------------------------------------------------------
def ser1Baglan():
global ser1
ser1 = serial.Serial(
# port='/dev/ttyUSB0',
port = bagliMi[0], # bulunan ilk porta bağlan
baudrate = 57600, # port hızı
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
xonxoff = serial.XOFF,
timeout = None,
rtscts = False,
dsrdtr = False,
)
# -----------------------------------------------------------------------------
# Ana fonksiyon
# -----------------------------------------------------------------------------
if(__name__ == "__main__"):
seriPort()
bayrak = len(bagliMi)
if(bayrak <= 0):
bagliMi.append("yok...") #Seçilecek port yok ise etiket sonuna eklenecek.
else:
ser1Baglan()
pencereAna = Tk()
pencereAna.geometry('300x240-600+200')
pencereAna.resizable(width = False,
height = False
)
pencereAna.title(u'Arduino ile 7 Segment')
girisKutusu1 = Entry(width = 8)
girisKutusu1.insert(END, '00000000')
girisKutusu1.focus_set()
girisKutusu1.config(bg = 'lightblue',
font=(fnt, 12, fntEk)
)
etiketMesaj1 = Label(pencereAna,
font = ('DSEG7Classic', 24, 'bold italic'),
fg = 'red',
text = ''
)
v = StringVar()
v.set('3') #Radyo düğmesi ön tanımlı seçeneği
etiketMesaj2 = Label(pencereAna,
font=(fnt, 12, fntEk),
text = u'Bağlı port ' + bagliMi[0]
)
girisAlButon = Button(pencereAna,
text = u'Seri Porta Yolla',
activebackground = 'lightblue',
font=(fnt, 12, fntEk),
command = seriPortYolla,
width = 10,
height = 0
)
for text, mode in MODES:
b = Radiobutton(pencereAna,
text = text,
font=(fnt, 12, fntEk),
selectcolor = 'lightblue',
indicatoron = True,
variable = v,
value = mode,
command = seriPortYolla
)
b.pack(padx = widgetTAB, anchor = W)
pencereAnaCikisButonu = Button(pencereAna,
text = u'Çıkış',
activebackground='lightblue',
font=(fnt, 12, fntEk),
command = pencereAna.quit
)
etiketMesaj2.pack(padx = widgetTAB, anchor = W)
etiketMesaj1.pack(ipadx = widgetTAB, anchor = W)
girisKutusu1.pack(padx = widgetTAB, anchor = W)
girisAlButon.pack(padx = widgetTAB, anchor = W)
pencereAnaCikisButonu.pack(padx = widgetTAB, anchor = W)
pencereAna.bind('<Escape>', quit)
pencereAna.bind('<KP_Enter>', seriPortYolla)
pencereAna.bind('<Return>', seriPortYolla)
girisAlButon.invoke()
pencereAna.update()
pencereAna.mainloop()
###############################################################################
|
arduinoHC595.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
/******************************************************************************
* Python ile yazılan seri port uygulamasının
* Arduino kodları.
* ****************************************************************************
*
* Mehmet Bilgi
* 46 / 2017
*
*****************************************************************************/
#define LATCH 3
#define CLK 4
#define DATA 2
#define MAX_TABLO 20
// dGFEDCBA
const
uint8_t
tablo2
[
MAX_TABLO
]
=
{
0b00111111
,
//0
0b00000110
,
//1
0b01011011
,
//2
0b01001111
,
//3
0b01100110
,
//4
0b01101101
,
//5
0b01111101
,
//6
0b00000111
,
//7
0b01111111
,
//8
0b01101111
//9
}
;
#define VERIUZUNLUGU 8
volatile
uint8_t
SAY
;
volatile
uint8_t
noktaOnmilyonlar
,
noktaMilyonlar
,
noktaYuzbinler
,
noktaOnbinler
,
noktaBinler
,
noktaYuzler
,
noktaOnlar
,
noktaBirler
;
uint8_t
uzunluk
=
0
;
volatile
uint8_t
segment
[
VERIUZUNLUGU
+
1
]
=
{
0
}
;
volatile
uint8_t
noktalar
[
VERIUZUNLUGU
+
1
]
=
{
0
}
;
volatile
uint8_t
acik
[
VERIUZUNLUGU
+
1
]
=
{
0
}
;
uint16_t
dakika
=
0
;
uint16_t
saniye
=
0
;
//-----------------------------------------------------------------------------
//
void
setup
(
)
{
pinMode
(
LATCH
,
OUTPUT
)
;
pinMode
(
CLK
,
OUTPUT
)
;
pinMode
(
DATA
,
OUTPUT
)
;
cli
(
)
;
TCCR1A
=
0
;
TCCR1B
=
0
;
TCNT1
=
0
;
OCR1A
=
124
;
TCCR1B
|=
(
1
<<
WGM12
)
;
TCCR1B
|=
(
1
<<
CS11
)
|
(
1
<<
CS10
)
;
TIMSK1
|=
(
1
<<
OCIE1A
)
;
sei
(
)
;
Serial
.
begin
(
57600
)
;
noktaOnmilyonlar
=
0b0
;
noktaMilyonlar
=
0b0
;
noktaYuzbinler
=
0b0
;
noktaOnbinler
=
0b0
;
noktaBinler
=
0b0
;
noktaYuzler
=
0b0
;
noktaOnlar
=
0b0
;
noktaBirler
=
0b0
;
}
//-----------------------------------------------------------------------------
//
ISR
(
TIMER1_COMPA_vect
)
//timer1 interrupt ~2kHz
{
uint8_t
onmilyonlar
,
milyonlar
,
yuzbinler
,
onbinler
,
binler
,
yuzler
,
onlar
,
birler
;
onmilyonlar
=
segment
[
0
]
;
milyonlar
=
segment
[
1
]
;
yuzbinler
=
segment
[
2
]
;
onbinler
=
segment
[
3
]
;
binler
=
segment
[
4
]
;
yuzler
=
segment
[
5
]
;
onlar
=
segment
[
6
]
;
birler
=
segment
[
7
]
;
noktaOnmilyonlar
=
noktalar
[
0
]
;
noktaMilyonlar
=
noktalar
[
1
]
;
noktaYuzbinler
=
noktalar
[
2
]
;
noktaOnbinler
=
noktalar
[
3
]
;
noktaBinler
=
noktalar
[
4
]
;
noktaYuzler
=
noktalar
[
5
]
;
noktaOnlar
=
noktalar
[
6
]
;
noktaBirler
=
noktalar
[
7
]
;
switch
(
SAY
)
{
case
0
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b00000001
)
;
if
(
acik
[
0
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
onmilyonlar
]
&
(
noktaOnmilyonlar
?
0x7F
:
0xFF
)
)
;
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
case
1
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b00000010
)
;
if
(
acik
[
1
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
milyonlar
]
&
(
noktaMilyonlar
?
0x7F
:
0xFF
)
)
;
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
case
2
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b00000100
)
;
if
(
acik
[
2
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
yuzbinler
]
&
(
noktaYuzbinler
?
0x7F
:
0xFF
)
)
;
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
case
3
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b00001000
)
;
if
(
acik
[
3
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
onbinler
]
&
(
noktaOnbinler
?
0x7F
:
0xFF
)
)
;
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
case
4
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b00010000
)
;
if
(
acik
[
4
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
binler
]
&
(
noktaBinler
?
0x7F
:
0xFF
)
)
;
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
case
5
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b00100000
)
;
if
(
acik
[
5
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
yuzler
]
&
(
noktaYuzler
?
0x7F
:
0xFF
)
)
;
//else spi_wr8(tablo2[yuzler] & 0x7F);
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
case
6
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b01000000
)
;
if
(
acik
[
6
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
onlar
]
&
(
noktaOnlar
?
0x7F
:
0xFF
)
)
;
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
case
7
:
digitalWrite
(
LATCH
,
LOW
)
;
spi_wr8
(
0b10000000
)
;
if
(
acik
[
7
]
==
0
)
spi_wr8
(
0b11111111
)
;
else
spi_wr8
(
tablo2
[
birler
]
&
(
noktaBirler
?
0x7F
:
0xFF
)
)
;
digitalWrite
(
LATCH
,
HIGH
)
;
break
;
default
:
break
;
}
if
(
SAY
++
>=
7
)
SAY
=
0
;
}
//-----------------SOFT SPI8 -------------------------------------------
//
void
spi_wr8
(
uint8_t
val
)
// write a byte to software SPI
{
val
^=
0xFF
;
for
(
uint8
_
t
i
=
8
;
i
;
i
--
)
{
digitalWrite
(
CLK
,
LOW
)
;
digitalWrite
(
DATA
,
LOW
)
;
if
(
val
&
0x80
)
// MSB first
digitalWrite
(
DATA
,
HIGH
)
;
val
<<
=
1
;
digitalWrite
(
CLK
,
HIGH
)
;
}
}
//-----------------------------------------------------------------------------
//
void
loop
(
)
{
if
(
Serial
.
available
(
)
>
0
)
{
int
segmentNo
=
0
;
int
deger
=
0
;
if
(
Serial
.
find
(
's'
)
)
{
segment
[
0
]
=
Serial
.
parseInt
(
)
;
segment
[
1
]
=
Serial
.
parseInt
(
)
;
segment
[
2
]
=
Serial
.
parseInt
(
)
;
segment
[
3
]
=
Serial
.
parseInt
(
)
;
segment
[
4
]
=
Serial
.
parseInt
(
)
;
segment
[
5
]
=
Serial
.
parseInt
(
)
;
segment
[
6
]
=
Serial
.
parseInt
(
)
;
segment
[
7
]
=
Serial
.
parseInt
(
)
;
acik
[
0
]
=
Serial
.
parseInt
(
)
;
acik
[
1
]
=
Serial
.
parseInt
(
)
;
acik
[
2
]
=
Serial
.
parseInt
(
)
;
acik
[
3
]
=
Serial
.
parseInt
(
)
;
acik
[
4
]
=
Serial
.
parseInt
(
)
;
acik
[
5
]
=
Serial
.
parseInt
(
)
;
acik
[
6
]
=
Serial
.
parseInt
(
)
;
acik
[
7
]
=
Serial
.
parseInt
(
)
;
noktalar
[
0
]
=
Serial
.
parseInt
(
)
;
noktalar
[
1
]
=
Serial
.
parseInt
(
)
;
noktalar
[
2
]
=
Serial
.
parseInt
(
)
;
noktalar
[
3
]
=
Serial
.
parseInt
(
)
;
noktalar
[
4
]
=
Serial
.
parseInt
(
)
;
noktalar
[
5
]
=
Serial
.
parseInt
(
)
;
noktalar
[
6
]
=
Serial
.
parseInt
(
)
;
noktalar
[
7
]
=
Serial
.
parseInt
(
)
;
}
}
else
//Seri bilgi gelmez ise sadece noktaları yak
{
segment
[
0
]
=
10
;
segment
[
1
]
=
10
;
segment
[
2
]
=
10
;
segment
[
3
]
=
10
;
segment
[
4
]
=
10
;
segment
[
5
]
=
10
;
segment
[
6
]
=
10
;
segment
[
7
]
=
10
;
acik
[
0
]
=
1
;
acik
[
1
]
=
1
;
acik
[
2
]
=
1
;
acik
[
3
]
=
1
;
acik
[
4
]
=
1
;
acik
[
5
]
=
1
;
acik
[
6
]
=
1
;
acik
[
7
]
=
1
;
noktalar
[
0
]
=
1
;
noktalar
[
1
]
=
1
;
noktalar
[
2
]
=
1
;
noktalar
[
3
]
=
1
;
noktalar
[
4
]
=
1
;
noktalar
[
5
]
=
1
;
noktalar
[
6
]
=
1
;
noktalar
[
7
]
=
1
;
}
}
///////////////////////////////////////////////////////////////////////////////
|