×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
課題:LEDをスイッチでON、OFF
配線 GND--LED--500オーム--11ピン
GND--スイッチ--12ピン (通常は1k程度の抵抗を念の為にいれるが
ラズパイのGPIOは、内部でプルアップとプルダウン抵抗を持っている)
仕様:押している間点灯 離せば消える
#ライブラリの読み出し
import PRi.GPIO as GPIO
import time
#GPIOのピンでのアサイン
LedPin = 11
BtnPin = 12
#初期設定 11を出力 12を入力
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(LedPin, GPIO.OUT)
GPIO.setup(BtnPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.output(LedPin, GOIP.HIGH) #点灯
プルアップ回路
VCC--抵抗--|----_--GND
ピン スイッチ 押すとLOW 離すとHIGH
プルダウン回路
VCC--_---|--抵抗--GND
スイッチ ピン 押すとHIGHT 離すとLOW
今回の設定は pull_up_down=GPIO.PUD_UPだから押すとLOWで離すとHIGH
#処理
def loop():
while True:
if GPIO.input(BtnPin) == GPIO.LOW: #押した
time.sleep(0.1) #チャタリング防止
GPIO.output(Ledpin,GPIO.LOW) #消す
else:
time.sleep(0.1) #チャタリング防止
GPIO.output(Ledpin,GPIO.HIGH) #つける
def destroy():
GPIO.output(Ledpin,GPIO.LOW) #消す
GPIO.cleanup()
#実際のスタートは
if __name__ == '__main__':
setup()
try:
loop()
excepy KeyboardInterrupt: #CTRL+C
destroy()
これでOK
配線 GND--LED--500オーム--11ピン
GND--スイッチ--12ピン (通常は1k程度の抵抗を念の為にいれるが
ラズパイのGPIOは、内部でプルアップとプルダウン抵抗を持っている)
仕様:押している間点灯 離せば消える
#ライブラリの読み出し
import PRi.GPIO as GPIO
import time
#GPIOのピンでのアサイン
LedPin = 11
BtnPin = 12
#初期設定 11を出力 12を入力
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(LedPin, GPIO.OUT)
GPIO.setup(BtnPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.output(LedPin, GOIP.HIGH) #点灯
プルアップ回路
VCC--抵抗--|----_--GND
ピン スイッチ 押すとLOW 離すとHIGH
プルダウン回路
VCC--_---|--抵抗--GND
スイッチ ピン 押すとHIGHT 離すとLOW
今回の設定は pull_up_down=GPIO.PUD_UPだから押すとLOWで離すとHIGH
#処理
def loop():
while True:
if GPIO.input(BtnPin) == GPIO.LOW: #押した
time.sleep(0.1) #チャタリング防止
GPIO.output(Ledpin,GPIO.LOW) #消す
else:
time.sleep(0.1) #チャタリング防止
GPIO.output(Ledpin,GPIO.HIGH) #つける
def destroy():
GPIO.output(Ledpin,GPIO.LOW) #消す
GPIO.cleanup()
#実際のスタートは
if __name__ == '__main__':
setup()
try:
loop()
excepy KeyboardInterrupt: #CTRL+C
destroy()
これでOK
PR
目的:
同じフォーム名で複数フォームを表示し核フォームを管理、削除したい
画面:
Fom1 親元
Form2 複数フォーム
同じフォーム名で複数フォームを表示し核フォームを管理、削除したい
画面:
Fom1 親元
Form2 複数フォーム
方法:カウンターをフォームのタグにセットする
Dim m_fcnt As Long = 0
Dim m_fcnt As Long = 0
ボタンを押す都度
m_fcnt = m_fcnt + 1 カウンターをアップ
m_fcnt = m_fcnt + 1 カウンターをアップ
Dim f2 As New Form2 インスタンスを作成
f2.Tag = m_fcnt カウンターをタグにセット
f2.Show() 表示
管理と削除
f2.Tag = m_fcnt カウンターをタグにセット
f2.Show() 表示
管理と削除
For Each frm As Form In New ArrayList(Application.OpenForms)
if frm IsNot Me Then
If frm.Text = "Form2" Then フォーム名
ListBox1.Items.Add(frm.Tag) タグ
End If
if frm IsNot Me Then
If frm.Text = "Form2" Then フォーム名
ListBox1.Items.Add(frm.Tag) タグ
End If
' frm.Close() クローズ
end if
Next
for nextとカウントならクローズした時点で配列が-1されるので注意
end if
Next
for nextとカウントならクローズした時点で配列が-1されるので注意
先のエルチカをちょっとプロらしく再コーディング
-----------------------------------------------------------------------
import PRi.GPIO as GPIO
import time
Redpin = 11 #ピン番号
GPIO.setmode(GPIO.BOARD) #ピン番号でアサイン GPIO番号でない
GPIO.setup(Redpin, GPIO.OUT)
GPIO.output(Redpin, GPIO.HIGH)
try:
while True:
GPIO.output(Redpin, GPIO.LOW)
time.sleep(1)
GPIO.output(Redpin, GPIO.HIGH)
time.sleep(1)
except KeyboardInterrupt:
GPIO.output(Redpin,GPIO.LOW)
GPIO.cleanup()
-----------------------------------------------------------------
コントロールCで消灯後GPIOをクリア
もう一段階プロらしく
import PRi.GPIO as GPIO
import time
Redpin = 11 #ピン番号
def setup(): #初期設定
GPIO.setmode(GPIO.BOARD) #ピン番号でアサイン GPIO番号でない
GPIO.setup(Redpin, GPIO.OUT)
GPIO.output(Redpin, GPIO.HIGH)
def loop(): #繰り返し
while True:
GPIO.output(Redpin, GPIO.LOW)
time.sleep(1)
GPIO.output(Redpin, GPIO.HIGH)
time.sleep(1)
def destroy() #キーボードからの割り込み
GPIO.output(Redpin,GPIO.LOW)
GPIO.cleanup()
#ここからスタート
if __name__=='__main__':
setup()
try:
loop()
except KeyboardInterrupt:
destroy()
-----------------------------------------------------------------------
import PRi.GPIO as GPIO
import time
Redpin = 11 #ピン番号
GPIO.setmode(GPIO.BOARD) #ピン番号でアサイン GPIO番号でない
GPIO.setup(Redpin, GPIO.OUT)
GPIO.output(Redpin, GPIO.HIGH)
try:
while True:
GPIO.output(Redpin, GPIO.LOW)
time.sleep(1)
GPIO.output(Redpin, GPIO.HIGH)
time.sleep(1)
except KeyboardInterrupt:
GPIO.output(Redpin,GPIO.LOW)
GPIO.cleanup()
-----------------------------------------------------------------
コントロールCで消灯後GPIOをクリア
もう一段階プロらしく
import PRi.GPIO as GPIO
import time
Redpin = 11 #ピン番号
def setup(): #初期設定
GPIO.setmode(GPIO.BOARD) #ピン番号でアサイン GPIO番号でない
GPIO.setup(Redpin, GPIO.OUT)
GPIO.output(Redpin, GPIO.HIGH)
def loop(): #繰り返し
while True:
GPIO.output(Redpin, GPIO.LOW)
time.sleep(1)
GPIO.output(Redpin, GPIO.HIGH)
time.sleep(1)
def destroy() #キーボードからの割り込み
GPIO.output(Redpin,GPIO.LOW)
GPIO.cleanup()
#ここからスタート
if __name__=='__main__':
setup()
try:
loop()
except KeyboardInterrupt:
destroy()
3.3V -----
|
|- スイッチ
|--- GPIO 9
抵抗
|
GNO
1.スイッチが押されたかどうか確認
2.スイッチが押されれば 3.3VとGNOに電流がながれGPIOが3.3Vで1
3.スイッチがOFFにならGPIOはGNO電圧だから0
4.プログラムは
import PRi.GPIO as GPIO
import time
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO.IN)
count = 0
while True:
if ( GPIO.input(9)==1):
time.sleep(0.1) <--チャタリング待ち
count = count + 1
print ("Count:" + str(count))
while ( GPIO.input(9) == 1): <--SWが離れるまでまちます
time.sleep(0.1)
|
|- スイッチ
|--- GPIO 9
抵抗
|
GNO
1.スイッチが押されたかどうか確認
2.スイッチが押されれば 3.3VとGNOに電流がながれGPIOが3.3Vで1
3.スイッチがOFFにならGPIOはGNO電圧だから0
4.プログラムは
import PRi.GPIO as GPIO
import time
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO.IN)
count = 0
while True:
if ( GPIO.input(9)==1):
time.sleep(0.1) <--チャタリング待ち
count = count + 1
print ("Count:" + str(count))
while ( GPIO.input(9) == 1): <--SWが離れるまでまちます
time.sleep(0.1)
-------抵抗----LED------
1.抵抗値の求め方
3.3Vの電源でLEDの電圧2vだから 3.3V-2V = 1.3V
2.GPIOの最大電流が16mAだから10mA程度を流すとすると
抵抗 = 電圧 (1.3) / 電流 (0.01)
=130オーム
今回は手元にあった1kオームだから 電流=1.3/ 1000で
0.0013=1.3mA程度 暗いぞ、、、
3.GPIOを4選択 7番ピン
4.足の短い方が停電圧つまりグランド
プログラム
Menu>>アクセサリ>>TextEditer
import PRi.GPIO as GPIO
import time
GPIO.cleanup()
GPIO.setmode(GPIO.BCM) <--Broadcomのチップ準拠
(ボードの端子番号を使うなら GPIO.BOARD)
GPIO.setup(4,GPIO.OUT) <--GPIO4(7番)を出力に設定
while True:
GPIO.output(4,GPIO.HIGH) <--HIGHに
time.sleep(1) 1秒待ち
GPIO.output(4,GPIP.LOW)
time.sleep(1)
led_bkink.py でpiディクトリに保存
phyton led_blink.pyで実行CRTL+Cで中止