忍者ブログ
[27]  [28]  [29]  [30]  [31]  [32]  [33]  [34]  [35]  [36]  [37
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

1.GPIOライブラリでLチカ

#GPIO ライブラリー
import RPi.GPIO as GPIO
import time

#GPIO の初期化
GPIO.cleanup()

#BCM チップNOならBCM   ボード番号ならBOARD 
GPIO.setmode(GPIO.BCM)

#出力に設定 16ピン
GPIO.setup(23, GPIO.OUT) 
while True:
  GPIO.output(23,GPIO.HIGH)
  time.sleep(1)

  GPIO.output(23,GPIO.LOW)
  time.sleep(1)

2.wiringpiでLチカ

必ず
sudo pip3 install wiringpiを実行してライブラリを組み込んでおくこと!
(ラズパイマガジン2016/6月号の誤りあり)


import wiringpi as pi,time
led_pin = 23
pi.wiringPiSetupGpio()
pi.pinMode( led_pin ,1 )
while True:
    pi.digitalWrite( led_pin , 1 )
    time.sleep(1)
    pi.digitalWrite( led_pin , 0 )
    time.sleep(1)


拍手

PR
Windows10 共有にログオンできない

共有ではまった


コンピュータ A AAA
から
コンピュータ B へ接続

資格情報で

IDとパスワードを入れてもつながらない、

AAA¥ID パスワードで接続できた リモート接続も同じ結果

拍手


ID   aaaaaaとすると
相手方のコンピュータ名¥¥aaaaaaで資格情報の壁は通過
 

拍手

課題:REDを調光する

on --    --     -- --- ---
   |    || || || || |
   |    || || || || |
   |    || || || || |
off  |    || || || || |
       dUty =パルスの幅


1.PWMインスタンスの作成
import PRi.GPIO as GPIO
LedPin=11
p = GPIO . PWM ( channel , frequency )

P= GPIO.PWM(LedPin,1000) 番号11に1000hz


2.PWMのスタート
p.start(dc) # dc = duty cycle (0.0 <= dc <= 100.0)

p.start(0)


3.dutyサイクルの変更
p.ChangeDutyCycle(dc) # dc = 0.0 <= dc <= 100.0


4.PWM停止
p.stop()

import PRi.GPIO as GPIO
import time
LedPin=11

GPIO.setmode(GPIO.BOARD)
GPIO.setup(LedPin,GPIO.OUT)
GPIO.output(GPIO.LOW)

p=GPIO.PWM(LedPin,1000)
p.start(0)
try:
while True:
for dc in range(0,101,4):
p.ChangeDutyCycle(dc)
time.sleep(0.05)
time.sleep(1)
 for dc in range(100,-1,-4):
p.ChangeDutyCycle(dc)
time.sleep(0.05)
time.sleep(1)
excwpt KeyboardInterrupt:
p.stop()
GPIO.output(GPIO.LOW)
GPIO.cleanup()






拍手

課題:LEDをスイッチでON、OFFでONOFF状態を保持して切り替え

配線 GND--LED--500オーム--11ピン
   GND--スイッチ--12ピン (通常は1k程度の抵抗を念の為にいれるが
   ラズパイのGPIOは、内部でプルアップとプルダウン抵抗を持っている)

仕様:押しせば点灯と消灯を繰り返す

エッジ検出:GPIO.wait_for_edge
信号がHIGHからLOWまたはその逆に変化するまで待ち状態になる
1.GPIO.wait_for_edge([チャンネル], [検出したいエッジ])
GPIO.RISING (立ち上がりエッジ)
GPIO.FALLING (立ち下がりエッジ)
GPIO.BOTH (立ち上がりまたは立ち下がりエッジ)
例 今回は押すとLOWだから
GPIO.wait_for_edge(BtnPin, GPIO.FALLING) ’この指定は不要
2.状態の確認:add_event_detect
前回のGPIO.add_event_detectから今回のGPIO.add_event_detect
までの間で発生したエッジの状態を示す命令 つまり発生して居たかの判断で
発生でイベントが作成されるのではない

GPIO.add_event_detect([チャンネル], [検出したいエッジ])

GPIO.add_event_detect(BtnPin, GPIO.FALLING)

3.コールバック関数の実行
他の処理を指定できる 別スレッドで実行関数名をdef swLed
GPIO.add_event_detect(BtnPin, GPIO.FALLING,callback=swLed)

4.チャタリング防止
bouncetime=[バウンス時間(ミリ秒)])

5.イベントの解除
remove_event_detect(BtnPin)

6.
global変数への関数内での代入
 global Led_status #globalの指定が必要
 Led_status == 0




#ライブラリの読み出し
import PRi.GPIO as GPIO 
import time

#GPIOのピンでのアサイン
LedPin = 11
BtnPin = 12 

Led_status = 0

#初期設定 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)  #点灯

プルアッププルダウン回路は前ブログ参照

def swLed(ev=None):
  global Led_status
  GPIO.output(LedPin, Led_status)
  if Led_status == GOIP.HIGH:
     Led_status == GOIP.LOW
  else:
  Led_status == GOIP.HIGH
  

#処理
def loop():
 GPIO.add_event_detect(BtnPin,GPIO.FALLING,callback=swLed,bouncetime=5)
  while True:
     pass 

       
def destroy():
  GPIO.output(Ledpin,GPIO.LOW)   #消す
  GPIO.remobe_event_detect(BtnPin) 
  GPIO.cleanup()

#実際のスタートは
if __name__ ==  '__main__':
  setup()
  try:
    loop()
  excepy KeyboardInterrupt:  #CTRL+C
    destroy()

これでOK

拍手

カレンダー
04 2025/05 06
S M T W T F S
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
フリーエリア
最新CM
[03/10 DORA]
最新TB
プロフィール
HN:
dorabu
性別:
非公開
バーコード
ブログ内検索
P R
忍者おまとめボタン
Copyright © ドラブーのアンドロイドとIoTなブログ All rights reserved. / Template by 四季. / Material by てんせん.

忍者ブログ [PR]