###前提・実現したいこと
Raspberry 3 でpython を使っています。
GPIOの外部信号で立ち上がりを検出し、そのときの時間を計測し、
これを繰り返してルーチンの時間を出そうとしています。
###発生している問題・エラーメッセージ
下記エラーが発生しました。
エラーメッセージ
UnboundLocalError: local variable 'today_now' referenced before assignment
###該当のソースコード
python2.7
'#!/usr/bin/python
'# -- coding: utf-8 --
import serial
import time
import datetime
import os
import RPi.GPIO as GPIO
def sw_on(channel17):
today_before = today_now
today_now = datetime.datetime.today()
timedelta = today_now - today_before
sig = timedelta
today_now = datetime.datetime.today()
today_before = today_now
channel17= 17
standard_time = 600
counter = 0
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN,pull_up_down=GPIO.PUD_UP)
GPIO.setup(channel17,GPIO.IN)
GPIO.setup(21, GPIO.OUT)
GPIO.add_event_detect(channel17 , GPIO.RISING, callback=sw_on, bouncetime=300)
ser= serial.Serial('/dev/ttyUSB0', 115200)
serial.PARITY_EVEN
serial.EIGHTBITS
serial.STOPBITS_TWO
sig1 = 'a2234567890123'
sig2 = 'a3876543210987'
time.sleep(2)
while True:
g4 = GPIO.input(4) if g4 == 0: ser.write(sig) else: ser.write(sig2 ) time.sleep(2)
GPIO.cleanup()
ser.close()
上記エラーの後、対策として ローカルの中を__main__.today_now に変更しましたが別のエラーがでました。
NameError: global name 'main' is not defined
このプログラムはどこを直すべきなのかお分かりの方よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/25 22:03 編集
2017/08/28 01:59