日照センサーを使って一日一回、朝に動く回路の紹介です。
毎朝ピストンを動かしてカボチャやサトウキビの収穫するための装置などに使えます。
日照センサーとは
日照センサーは、日光の明るさによってレッドストーン信号を出力する力が変化します。自然光のみに反応し、たいまつなどの明るさには反応しません。
日の出前から徐々にレッドストーン信号が出力され、正午に一番強いレッドストーン信号を出力します。
ZLを押すと反転し、逆に真夜中に強いレッドストーン信号を出力し昼になると弱くなり正午には出力しなくなります。
晴天時、太陽が昇り始めるころから出力し始め、太陽が沈み太陽の周りの光も完全に沈んだ頃に信号が出なくなります。
時間 | 信号強度 |
朝 | 5~7 |
ベッドから起きる時間 | 8 |
正午 | 15 |
夕刻 | 8~7 |
ベッドで就寝できる時間 | 4 |
これは晴天時の信号強度で天気によって多少変わりますが、今回はこれぐらいわかっていれば大丈夫。
パルサー回路
パルサー回路とは出力し続けるレッドストーン信号を1回だけ出力するように変更する回路です。
日照センサーやレバーは常にレッドストーン信号を出力しています。ボタンは押したときに一回だけ出力。
レバーをボタンにする感じですね。
コンパレーターと反復装置を使ったパルサー回路
画像左側はレバーがオフの状態。画像真ん中はレバーをオンになり一瞬レッドストーンランプが点灯した状態。画像右側はレバーはオンのままですが、レッドストーンランプは消灯された状態。
色々なパルサー回路があるのですが、これは一番省スペースで単純なもの。
コンパレーターは比較モードと減算モードがあり、パルサー回路で使うのは減算モードです。
画像は減算モード。1本側のトーチが消灯していたら比較モード。点灯していたら減算モードです。
減算モードのコンパレーターは後ろから来た信号強度から側面から来た信号強度を引いた信号強度を前方に出力します。
後ろからの信号-側面からの信号=前方へ出力
反復装置にはレッドストーン信号遅延する効果があり、かつ信号強度を最大(15)まで増幅させることが出来ます。反復装置もレッドストーン信号の流れる方向が決まっています。
減算モードのコンパレーターの側面に反復装置を置くことで側面からの信号強度が15となりコンパレーターは前方へ信号を出力できなくなります。
しかし、反復装置の遅延効果と回り込んでいるレッドストーンパウダー分でコンパレーターに到着する信号に側面からと背面からに時差が生まれ、その瞬間のみコンパレーターの前方へ信号が通ります。
反復装置の遅延効果を増やすとその分信号が出力される時間が長くなります。
一日一回、朝に動く回路
パルサー回路のレバーを日照センサーに変えるだけと思うでしょ?
そうは問屋が卸さないんですよ。
イヤ、動くんですけどね。実働には合わないんです。
マルチプレイプレイをしていて、プレイヤーの一人だけがベッドで寝る時、メッセージが出ますよね。
ベッドで寝ると朝になりますが、それは夜が早送りされているわけではなく、スキップされているんですよ!
回路が動くのはコンパレーターの出力に変化があった時。
上記の画像のパルサー回路だと晴天時日中から就寝出来る時間まで出力は0になります。
ということはパルサー回路のレバーをただ日照センサーに変更するだけでは毎日ベッドで寝ているとコンパレーターの出力は常に0なので回路が動くタイミングがないまま。毎朝に動く回路にはならないのです。
太陽が完全に沈むまで起きてたら動きますけどね。
日照センサーからの信号強度が5から4に落ちた頃ベッドで就寝できます。
画像のレッドストーンランプは手前から信号強度が4、5、6の順に並んでいて、真ん中のランプが消えてからしばらくするとベッドで就寝できます。
これを踏まえてコンパレーターから日照センサーまでのレッドストーンパウダーの長さを5ブロックにします。
このままでも朝起きた時に一回動きますが、夕暮れ時に誤作動起こします。
矢印のところまでしか信号が届かず、コンパレーターに横からの信号が届かないので後ろからの信号がそのまま出力され回路が動きます。出力しっぱなしなのでピストンは伸びたままに。
これを回避するためにコンパレーターと日照センサーの間に反復装置を置き、反復装置から日照センサーまでを5ブロック離します。
夕暮れ時の信号強度が6~7の時も常に15に増幅されてコンパレーターまで届くので、毎朝一回動く回路が実現できます!
サトウキビ収穫装置
毎朝1回ピストンが動いて収穫します
回路部分
コンパレーターと日照センサーを5ブロック離す場所が足りなかったので曲げました(^^;)
終わりに
パルサー回路のレバーを日照センサーに変えるだけで毎朝動くはず。そう思っていました。
回路の横で寝てみるも動く気配なし(´Д⊂
ネットで調べてみても何がダメで動かないのかわからない……。
ベッドで寝ると時間がスキップされ、コンパレーターの出力に変化がないから動かないということに気づくまで試行錯誤。
ネットでなかなかこのことが書かれているのを見つけられなかったので、今回書いてみました。
分かりにくい説明ですが、同じようにハマっている方のお役に立てたら幸いです
ヾ(*´▽`*)ノ
コメント
増幅させてるなら5マス開けなくてもいいのでは?
コメントありがとうございます。
朝に一回だけ回路を動かすためにはパルサー回路が一旦オフになる必要があります。
ですので、夕方、信号の強度が4になる頃ベッドで休む前に信号をオフにするために5マス空けています。
朝、夕方にジュークボックスで音楽を流す回路を作りたいのですが、
例えば夜に拠点を出て昼に帰ってくると昼に朝再生したいレコードが流れてしまいます。
チャンクを跨がないように作っても変わりません。
これに関しては仕方ないんでしょうか。
対策などありますか?
コメントありがとうございます。
AND回路で出来ないかな?と思うのですが……
試してみてないので、後でやってみます!
アンド回路ではなく、コンパレーターの比較モードで出来そうです。
日照センサーを2つとコンパレーターの比較モード使って、朝起きた時と夕刻のみ信号が通る様にします。
朝起きた時日照センサーの信号の強さが8ですので、片方は7ブロック空けて反復装置を置きます。Aとします。
もう一方は日照センサーから8ブロック空けて反復装置を置きます。Bとします。
A側のRSの粉で反復装置から比較モードのコンパレーターの後ろ側に繋ぎます。
B側はコンパレーターの側面に。
この時B側よりA側が長くなるようにしてください。
これで昼間にシミュレーション範囲外から戻ってきたときに信号は通らないはずです。
文章での説明が難しかったので画像のリンクを貼っておきます。
https://mc.tamaki-games.com/images/c202307-1.png
画像はピストンが一回動くようになってます。
音楽を流す場合パルサー回路は不要かもしれません。