
10:'program
20:L=1
30:OPEN "PIO:"
40:PIOSET &HF0
50:INPUT SSD
60:*MAIN
70:S=PIOGET /16
80:IF S=0 THEN PIOPUT 6:GOTO *MAWARU
90:IF S>3 THEN *BREAK
100:IF S=3 THEN PIOPUT 5
110:IF S=1 THEN PIOPUT 7
120:IF S=2 THEN PIOPUT 1
130:GOTO *MAIN
140:*BREAK
150:PIOPUT 15
160:FOR I=0 TO 100:NEXT I
170:S=PIOGET /16
180:IF S=8 THEN *LEFT
190:S=PIOGET /16
200:IF S=4 THEN *RIGHT
210:IF S=11 THEN PIOPUT 5
220:IF L=1 THEN *RIGHT
230:PIOPUT 5
240:IF PIOGET >&H30 THEN 240
250:GOTO *MAIN
260:*LEFT
270:PIOPUT 13
280:IF (PIOGET AND 48)>0 THEN 280
290:IF (PIOGET AND 48)<48 THEN 290
300:GOTO *MAIN
310:*RIGHT
320:PIOPUT 7
330:IF (PIOGET AND 48)>0 THEN 330
340:IF (PIOGET AND 48)<48 THEN 340
350:GOTO *MAIN
360:*MAWARU
370:IF (PIOGET AND 48)>0 THEN 370
380:IF (PIOGET AND 48)<48 THEN 380
390:IF S=0 THEN GOTO *MAIN
このプログラムについて、修正をして頂けませんか?
PIOGETでセンサ4個からの情報が来るので、
それを簡単するため16で割っています。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=464797
にデータの出力値等を記載しています。
→T字路に来たら、右に曲がる、十字路が来たら、前進するというプログラムを教えてください。そして、その後自分で改良して、自動判断させるようにしたいと思います。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
すいません見まちがい&書き間違いがありました。
S1=1
S2=2
S3=4
S4=8
で、停止後に再度センサーを読んでいますが、オーバーランしてラインから外れていませんか?S4が外れてS1+S2なら220行が実行されると思います。
No.2
- 回答日時:
センサの状態は16通りあります。
すべてのパターンで動きを指定しないと、想定していない動きになります。PIOGET /16の値は
S1=8
S2=4
S3=2
S4=1
で、ONしているセンサーの値の和が帰ってきます。S1とS4がONならば
8+1=9が帰ります。
┫のところでは、S1+S2+S4ですから11が帰ってきますが、MAINでは
*BREAKに飛んでしまいますね。
<サンプル>
*MAIN
S=PIOGET /16
IF S=0 THEN ***
IF S=1 THEN
IF S=2 THEN
IF S=3 THEN
IF S=4 THEN
IF S=5 THEN
IF S=6 THEN
IF S=7 THEN
IF S=8 THEN
IF S=9 THEN
IF S=10 THEN
IF S=11 THEN
IF S=12 THEN
IF S=13 THEN
IF S=14 THEN
IF S=15 THEN
GOTO *MAIN
各条件で出力を指定して、それをループすれば最も単純です。
No.1
- 回答日時:
何が どう正常じゃないのか 書かないと わからないでしょう。
前の質問も見たとき、 T字路に来たら とか いうので
どうして、 T字路を 判断しているのかとか わかりませんでした。
で、上記のプログラムだと どうなってしまうのでしょうか?
この回答への補足
すみません、800字という制限があったので、
上記以上書けなかったため、補足として、ご回答して頂ける方からきたら、書こうと思っていました。
┃
━━┫
┃
↑
このような道、矢印のところからたとえばスタートすると、
本当はまっすぐ行って欲しいのに、右に回ってしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示 6 2023/04/25 17:01
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) Excel VBA ユーザーフォーム 複数のユーザーフォームの閉じ方。 2 2022/04/27 11:29
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Fortranプログラム-if文について
-
不具合が発生(API・C言語)
-
プログラミングの問題が分かり...
-
自然数の和のプログラム
-
C言語のプログラム
-
C言語です 整数nを入力すると 1...
-
C言語のエラーについてです
-
素人なのですが、プログラマに...
-
PICのA/Dを使うプログラムにつ...
-
プログラミング
-
c言語とgnu
-
C言語の質問です。
-
PIC 初心者で行き詰まりま...
-
このプログラムを修正してくだ...
-
FORTRAN77のプログラミングを教...
-
銃を発砲するならともかく、日...
-
ネットワーク並列処理が出来る...
-
電卓作成(緊急です!!)
-
Fortran90を使いたい
-
アルゴリズムについて(ちょい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数の値が勝手に変化する原因
-
【JAVA】数字をひし形に出力す...
-
3つの整数のうち奇数のみを表示...
-
Sublime Text 3でのFortranプロ...
-
fortran if文
-
main関数終了時のreturnの意味は?
-
Fortran90についての質問です。
-
360度を超える角度
-
Fortran "実引数の型が仮引数の...
-
N88basicを用いたGPIB制御
-
JCLの基本について教えてください
-
COBOLのピリオド
-
プログラミング
-
C言語からのFortranプログラム...
-
ProC 固定SQLでNULLってどう表...
-
4桁の数値を逆に表示されるプ...
-
Tiny Basicのプログラムです。。
-
CommonLispでハノイの塔の円盤...
-
プログラミングの課題で1万円か...
-
プログラムの実行回数
おすすめ情報