While döngüsü Kırma

Başlatan aopx, 06 Eylül 2017 - 12:09:54

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

aopx

Merhaba Arkadaşlar;

Ben forumda ve programlamada yeni sayılırım.
Raspberry pi ile arayüz yaparak ledi yakiyorum ama while dögülü bir fonksiyon yazdim led of butonuna basinca döngüden çıkartamiyorum.
Bu tarzda çalışma yapan varmı diye araştirdim ama benzerini dahi bulamadim.

kodlarım bu şekilde ;

pencere = Tk()
i=0
def ledon():
   while i <10:
        GPIO.output(40,GPIO.HIGH)
        time.sleep(1)
        GPIO.output(40,GPIO.LOW)
        time.sleep(1)

def ledof():
##    ???????
   
buton1=Button(pencere,text="LED ON",command=ledon)
buton1.pack

buton2=Button(pencere,text="LED oF",command=ledof)
buton2.pack

pencere.mainloop()

Burada lef of fonksiyonunu nasıl kodlarsam while döngüsünü istedigim yerde durdurabilirim.

Teşekkürler



whocoder

#1
int i;
while (1)
{
i=i+1;
if (i==10){break;}
}

böyle yaparsan i 10 a gelince while döngüsünden çıkıcak fakat butona basarak cıkmak istiyorsan o zaman işler karışır çünkü while döngüsüne girdimi break yapana kadar başka hiçbişi dinlemez yani butona bassanda algılamaz çünkü while içinde hayla fakat timer gibi bişi varsa onu kullanarak yapabilirsin rasperypi henüz hiç uraşmadım fakat araştırarak bulabilirsin

global bi tane bool veya integer oluştur buton1 click yapınca bool true atsın button2 click yapınca bool false olsun ve while döngü içinde bool alıp ona göre işlem yapsın mesela

bool b;
button1click(b=true;)
button2click(b=false;)
while (i<10)
{
if (b==true){ledyak;bekle;}
else {ledsondür;bekle;}
}

veya

button1click(ledyak);
button2click(ledsöndür;)
yani button sadece basınca yanıp sönsün
Herşey Olabilir.

edge35

İletilerde code etiketi kullanımına dikkat edersen okunabilirlik açısından iyyi olur.


Sorunlarımı çözerken her şeyiyle öğrenmeye çalışıyorum. Bana balık verenden Allah razı olsun, ama bana balık tutmayı öğretenden Allah daha çok razı olsun :)

Platin


ahmet12

import sys ekle
sonra sonra buton kodunada sys.exit() de tamamdir