ヘディングのテキスト### 前提・実現したいこと
全くの初心者です。ラズベリーパイのPython3を使ってセンサーからの結果をもとに100円と500円玉の通過した枚数を足していき、その合計金額を出力するプログラムを作りたいと思っているのですが、2つのブログを参考にコードを書いたところ、以下のようなエラーメッセージが発生しました。
コードの大まかな内容としては、ラズベリーパイの16ピン(GPIO_PIN1)と23ピン(GPIO_PIN2)に入ったデータを、電卓の画面のようなLCDディスプレイにwriteLCDという関数(?)を使って、入力した数字や文字をそのまま反映させるといった内容です。
一番下のWhile文の中身はLCDディスプレイの2行目に表示させようとしているプログラムです。
16ピンに入力された時に、16ピンに入力された回数を前回の数+1(i=i+1)として3桁で表示し、23ピンの回数はそのまま3桁(j)で表示し、100円と500円の合計金額(k)を10桁で表示させ、0.5秒待機させたいと思っています。
また、23ピンに入力された時に、16ピンに入力された回数(i)をそのまま3桁で表示し、23ピンの回数は前回の数+1(j=j+1)3桁で表示し、100円と500円の合計金額(k)を10桁で表示させ、0.5秒待機させたいと思っています。
どちらにも入力されなかった場合に0.5秒待機するプログラムのつもりです。
以下2つが参考にさせて頂いたブログです。
https://www.denshi.club/pc/raspi/i2caqmlcdarduinode1-aqm0802.html
https://chasuke.com/motionsensor/
発生している問題・エラーメッセージ
line 64
i = i + 1
^
syntaxError: invalid syntax
該当のソースコード
ソースコード
Python3
1コード 2```#!usr/bin/env python 3# -*- coding: utf-8 -*- 4from datetime import datetime 5import smbus 6import time 7import subprocess 8import RPi.GPIO as GPIO 9 10#yasumi 11INTERVAL = 0.5 12#use GPIOPIN 13GPIO_PIN1 = 16 14GPIO_PIN2 = 23 15 16GPIO.setmode(GPIO.BCM) 17GPIO.setup(GPIO_PIN1,GPIO.IN) 18GPIO.setup(GPIO_PIN2,GPIO.IN) 19 20i2c = smbus.SMBus(1) 21addr02=0x3e 22_command=0x00 23_data=0x40 24_clear=0x01 25_home=0x02 26display_On=0x0f 27LCD_2ndline=0x40+0x80 28 29#LCD AQM1602 30def command( code ): 31 i2c.write_byte_data(addr02, _command, code) 32 time.sleep(0.1) 33 34def writeLCD( message ): 35 mojilist=[] 36 for moji in message: 37 mojilist.append(ord(moji)) 38 i2c.write_i2c_block_data(addr02, _data, mojilist) 39 time.sleep(0.1) 40 41def init (): 42 command(0x38) 43 command(0x39) 44 command(0x14) 45 command(0x70) 46 command(0x56) 47 command(0x6c) 48 command(0x38) 49 command(_clear) 50 command(display_On) 51 command(0x0c) 52 53#main 54init() 55command(_clear) 56writeLCD("100 500 total ") 57command(LCD_2ndline) 58if _name_ == '_main_': 59 i = 1 60 k = 1 61 try: 62 while True: 63 if(GPIO.input(GPIO_PIN1) == GPIO.HIGH): 64 writeLCD(str("{0:03d}".format(i))+str("{0:03d}".format(j))+str("{0:10d}".format(k)) 65 i = i + 1 66 j = j 67 k = i * 100 + j * 500 68 time.sleep(SLEEPTIME) 69 elif(GPIO.input(GPIO_PIN2) == GPIO.HIGH) : 70 writeLCD(str("{0:03d}".format(i))+str("{0:03d}".format(j))+str("{0:10d}".format(k)) 71 i = i 72 j = j + 1 73 k = i * 100 + j * 500 74 time.sleep(SLEEPTIME) 75 else: 76 time.sleep(SLEEPTIME) 77 78 79### 試したこと 80 81書いたコードの位置が間違っていると思いスペースで調節したり、if文内にあるdefを使った関数が上手く働いていないのかなど考え、色々と調べて見ましたがどのように書き直したらいいか分かりませんでした… 82 83 84### 補足情報(FW/ツールのバージョンなど) 85 86Python3 ラズベリーパイはおそらく最新の状態です。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/17 14:55
2018/12/17 14:58
2018/12/17 15:18
2018/12/17 15:40 編集
2018/12/17 15:40
2018/12/17 15:41
2018/12/17 16:31
2018/12/17 16:39