2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mrubyファミリーAdvent Calendar 2023

Day 19

mruby/cの少し高度な書き方でLチカする(クラス編)

Last updated at Posted at 2023-12-18

親しみのあるLチカで応用的な書き方を試してみました。
while文の中に、ダラダラと記述するのではなく、機能を外出しすることで、可読性が上がります。また、コードの再利用性が向上し、ソースコードを応用しやすくなります。さらには、Rubyの特徴を活かせば、mruby/cの可能性に気づくきっかけになるかもしれません。

LED点灯・消灯機能をクラス化

main.rb
PIN = 6
is_on = false
pinMode(PIN, 0)

class LedManager
  def on_off(v)
    if v then
      digitalWrite(PIN, 1)
    else
      digitalWrite(PIN, 0)
    end
  end
end

lm = LedManager.new

while true
  is_on = !(is_on)
  lm.on_off(is_on)
  sleep 0.2
end

前回はLED点灯・消灯を関数としてwhile文から外出ししました。今回はさらにクラスにして、newでインスタンス化しています。

今回、mrubyファミリー Advent Calendar 2023に3日分参加させていただきました。Lチカプログラムを題材にして、機能を関数化して疎結合にしたり、クラス化してオブジェクト指向的な書き方を試しました。1つのLEDを点滅させる程度であれば、ここまですることはないでしょうが、ビジネス的に大きなプログラムを書く場合には必要になってきますので、その準備体操ができてよかったです:santa:

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?