<a target="_blank" href="http://www.todayhumor.co.kr/board/view.php?table=programmer&no=16746&s_no=16746&kind=search&search_table_name=programmer&page=1&keyfield=subject&keyword=%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC" target="_blank">http://www.todayhumor.co.kr/board/view.php?table=programmer&no=16746&s_no=16746&kind=search&search_table_name=programmer&page=1&keyfield=subject&keyword=%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC</a> <div><br></div> <div>안녕하세요. 일전에 라즈베리파이 버튼 스위치 관련해서 질문올렸었습니다.</div> <div><br></div> <div>하고자한 버튼은 구현되었는데요.</div> <div><br></div> <div>문제는 버튼을 빨리(?) 눌러야된다는점??</div> <div>버튼을 순간적으로 눌러야 정상적으로 작동 됩니다. ;;;</div> <div>time.sleep(0.2)이렇게 하면 그나마 좀 잘 되는듯 한데,,</div> <div><br></div> <div>버튼을 누를때(GPIO.input(btn) == True), state 상태가 0 또는 1를 왔다갔다 해서 문제가 생기는거 같아요.</div> <div>버튼을 짧게 누르던 길게 누르던 한번만 인식할 수 있도록 하는 방법 없을까요??</div> <div><br></div> <div><br></div> <div><br></div> <div><div>import time</div> <div><br></div> <div>try:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>import RPi.GPIO as GPIO</div> <div>except RuntimeError:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print("Error importing RPi.GPIO! This is probably because you need superuser priviliges. You can achieve this by using 'sudo' to run your script")</div> <div><br></div> <div>GPIO.setmode(GPIO.BCM)</div> <div>GPIO.cleanup()</div> <div>GPIO.setwarnings(False)</div> <div><br></div> <div>led = 17<span class="Apple-tab-span" style="white-space:pre;"> </span>#led GPIO pin num<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div>btn = 27<span class="Apple-tab-span" style="white-space:pre;"> </span>#btn GPIO pin num<span class="Apple-tab-span" style="white-space:pre;"> </span></div> <div>state = 0<span class="Apple-tab-span" style="white-space:pre;"> </span>#btn State</div> <div><br></div> <div>GPIO.setup(led, GPIO.OUT)<span class="Apple-tab-span" style="white-space:pre;"> </span>#led</div> <div>GPIO.setup(btn, GPIO.IN, pull_up_down=GPIO.PUD_UP)<span class="Apple-tab-span" style="white-space:pre;"> </span>#btn</div> <div><br></div> <div>def led_on():</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>GPIO.output(led, GPIO.HIGH)</div> <div><br></div> <div>def led_off():</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>GPIO.output(led, GPIO.LOW)</div> <div><br></div> <div><br></div> <div>while True:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>current = time.time()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><span style="background-color:#ffff00;">if GPIO.input(btn):</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>if state == 0:</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>state = 1</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>start = time.time()</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>led_on()</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>else:</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>state = 0</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>led_off()</span></div> <div><span style="background-color:#ffff00;"><span class="Apple-tab-span" style="white-space:pre;"> </span>#time.sleep(0.1)</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if state == 0:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>print("btn relased: ", state)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>led_off()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else:</div> <div> print("btn relased: ", state)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if ((current-start)>5):</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>state = 0</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>else:</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>led_on()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>#time.sleep(0.1)</div></div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.