3
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?

More than 1 year has passed since last update.

mrubyファミリーAdvent Calendar 2023

Day 11

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

Last updated at Posted at 2023-12-10

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

以前、一番シンプルなLチカの書き方を投稿しました。
mruby/cでLチカ
これを少し変更してみます。

LED点灯・消灯機能を関数化

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

def on_off_led(on)
  if on then
    digitalWrite(PIN, 1)
  else
    digitalWrite(PIN, 0)
  end
end

while true
  is_on = !(is_on)
  on_off_led(is_on)
  sleep 1
end

ここでは、on_off_ledという関数でLED点灯・消灯機能を外出ししています。

rubyっぽさが高まりました。
可読性もよくなりましたので、長いプログラムを解読する時や、既存のプログラムに変更を加える時に、CやC++より楽になるかもしれません:grinning:

3
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
3
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?