24
基板上のLED(13番ピン)を点滅 課題3-1では の数値を変えてアップ ロードします ・プログラムは上から下に動くことが分かりました か? ・ループが終わると、次にどこが実行されますか? ・数値を変えると何が起きると予想しますか? ・変えると何が起きましたか?

Arduino / ArduBlock の簡単なプログラムと回路の例

  • Upload
    mitunaga

  • View
    79.902

  • Download
    5

Embed Size (px)

DESCRIPTION

Arduino 言語 / ArduBlock の簡単なプログラムと回路の例です

Citation preview

Page 1: Arduino / ArduBlock の簡単なプログラムと回路の例

基板上のLED(13番ピン)を点滅

課題3-1では の数値を変えてアップロードします

・プログラムは上から下に動くことが分かりましたか?・ループが終わると、次にどこが実行されますか?・数値を変えると何が起きると予想しますか?・変えると何が起きましたか?

Page 2: Arduino / ArduBlock の簡単なプログラムと回路の例

三三七拍子を作ろう下のプログラムを動かすと「短い間隔で2回LEDを光らせたら、1.1秒休む」をずっと繰り

返します。最初のプログラムから、どのように変更しているでしょうか。それが分かったら、三三七拍子にするには、どのように変えたらいいでしょうか?

Page 3: Arduino / ArduBlock の簡単なプログラムと回路の例

2番ピンに繋いだLEDを点滅させる~プログラムの変更~

プログラムで指定するピンの番号を13→2に変更します。

Page 4: Arduino / ArduBlock の簡単なプログラムと回路の例

2番ピンに繋いだLEDを点滅させる~回路図と部品~

左の回路を作ります。DOUTを2番ピンとします。抵抗の値は1kΩ(茶黒赤金)とします。LEDには向きがあります。新品のLEDアノード側の足が長く、カソード側の足が短くなっています。

アノード

カソード

アノード側が長い

1kΩ(茶黒赤金)

Page 5: Arduino / ArduBlock の簡単なプログラムと回路の例

2番ピンに繋いだLEDを点滅させる~配線例(実体配線図)~

ブレッドボードのどの穴を使うかは自由

Page 6: Arduino / ArduBlock の簡単なプログラムと回路の例

補足:ブレッドボードブレッドボードの表側には部品の足やジャンプワイヤを差し込む穴が並んでいます。穴は内部で+,-のところ、各aからeとfからjがつながっています。上下の + 同士、-同士はつながっていません。たとえば、a-30とb-30, c-30, d-30, e-30はつながっていて、a-30とa-29, f-30 はつながっていません。

Page 7: Arduino / ArduBlock の簡単なプログラムと回路の例

2番ピンと13番ピンのLEDを点滅させる

順番に二つのLEDを点灯、消灯します。十分に速いので同

時に点灯、消灯するように見えます。では、交互に点灯するにはどうしたらいいでしょうか?

Page 8: Arduino / ArduBlock の簡単なプログラムと回路の例

LEDの数を増やした例(実体配線図)

2番、3番、4番のピンにLEDを繋

いでみました。プログラムはどう書いたらいいでしょうか。また回路図ではどうあらわしたらいいでしょうか。

Page 9: Arduino / ArduBlock の簡単なプログラムと回路の例

音を鳴らしてみる~プログラム~

1秒間音を鳴らすプログラムです。圧電スピーカは8番ピンに繋ぎます。

Page 10: Arduino / ArduBlock の簡単なプログラムと回路の例

音を鳴らしてみる~回路図と実体配線図~

抵抗は省略します。圧電スピーカに向きはありません。今回使うものは、ブレッドボードに挿して、ブレッドボードとArduinoをジャンプワイヤでつないで使います。

圧電スピーカの例

Page 11: Arduino / ArduBlock の簡単なプログラムと回路の例

音階と周波数の関係

http://flawtips.ami.amigasa.jp/blog/060315.htmlより

Page 12: Arduino / ArduBlock の簡単なプログラムと回路の例

音の例

救急車:ピーポーピーポーピーポー960Hzで500msと770Hzで500ms をずっと繰り返す

カッコウ:1220Hzで200ms, 無音で200ms, 980Hzで600ms

NHKの時報の音:ぽっぽっぽっぴー440Hzで100ms, 無音で900ms を3回繰り返して880Hzで1500ms

Page 13: Arduino / ArduBlock の簡単なプログラムと回路の例

スイッチを使って見る~プログラム~

スイッチ(2番ピン)を押すとピンの値がL(0[V])になるのを見張ってLEDを点けます。LEDは消えません。

メニューの変数の一番上にある「1」のブロックを使う

Page 14: Arduino / ArduBlock の簡単なプログラムと回路の例

スイッチを使って見る~プログラム~

スイッチ(2番ピン)を押すとピンの値がL(0[V])になるのを見張ってLEDを

点け、スイッチから手を離すと消します。

メニューの変数の一番上にある「1」のブロックを使う

Page 15: Arduino / ArduBlock の簡単なプログラムと回路の例

スイッチを使って見る~回路図と実体配線図~

10kΩ(茶黒橙金)

タクトスイッチを使います。向きに気をつけます。抵抗は10kΩ(茶黒橙金)を使います。

2本ずつ内

部でつながっているので90度

間違えると押しっぱなしと同じになる

つながっている

Page 16: Arduino / ArduBlock の簡単なプログラムと回路の例

スイッチを使って見る~練習問題~

• スイッチを押すと音が鳴るようにするにはどうしたらいいでしょうか?

• スイッチを押していないときは、LEDが点滅し、

押すと音が鳴るようにするにはどうしたらいいでしょうか?

Page 17: Arduino / ArduBlock の簡単なプログラムと回路の例

CdSを使って見る~プログラムから

CdSセル(硫化カドミウムセル)は明るさで抵抗値が変化するセンサです。明る

いほど抵抗値が小さくなります。今回は明るいと電圧が高くなるように回路を組んで、暗くなるとLEDが点灯するようにしています。

閾値(しきいち、700の数値)は部屋の明るさとセンサの感度に合わせて変えます。

Page 18: Arduino / ArduBlock の簡単なプログラムと回路の例

CdSを使って見る~回路図と実体配線図~

AINはA0につなぎます(A0からA5のいずれでもよいが、あわせてプログラムを変えること)。抵抗は10kΩ(茶黒橙金)を使います。

10kΩ(茶黒橙金)

CdSセルの例

Page 19: Arduino / ArduBlock の簡単なプログラムと回路の例

CdSを使って見る~練習問題~

• 明るくなると音が鳴るようにするにはどうしたらいいでしょうか?

• 暗いときはLEDが点滅し、明るくなると音が鳴るようにするにはどうしたらいいでしょうか?

• 特定の明るさの時だけ音が鳴るようにするにはどうしたらいいでしょうか?

Page 20: Arduino / ArduBlock の簡単なプログラムと回路の例

繰り返しを覚えよう

同じことを繰り返すときには、繰り返しブロック、for文を使うと、同じブロックやプログラムを並べる必要がありません。下のプログラムは、5回点滅を繰り返します。

繰り返す範囲を中括弧{ }で囲む

Page 21: Arduino / ArduBlock の簡単なプログラムと回路の例

繰り返しとカウンタ~プログラム~

コンピュータも繰り返すときに何回目かを数えています。数えるのに使うものを「カウンタ」と呼びます。カウンタを使うと回数に応じて違うことが出来ます。下のプログラムではカウンタはiで、0, 1, 2, 3, 4 と数えているので、2, 3, 4, 5, 6番に繋いだLEDを順番に点灯します。

右のプログラムでpinModeのところも繰り返しを使って構いません。

Page 22: Arduino / ArduBlock の簡単なプログラムと回路の例

繰り返しとカウンタ~実体配線図~

練習問題

• 回路図はどうなるか書いてみよう

• 左から右の次に右から左に戻るようにするにはどうしたらいいだろうか

• LEDを増やすにはどうしたらいいだろうか

Page 23: Arduino / ArduBlock の簡単なプログラムと回路の例

乱数を使って見よう

乱数というのは予想のつかない(ランダムな)数です。ArduBlockの乱数ブロックでは0から4 (=5-1)の範囲の値になるので2を足し、右のプログラムでは2から6の範囲の値を計算さ

せています。これにより、さきほどの回路でランダムに1つのLEDが点灯します。

↑の行がないと毎回同じLEDが

点灯する。乱数といっても計算で求めているため。最初に毎回違う値(ここではアナログ入力のノイズによる値)を与えるといい。

Page 24: Arduino / ArduBlock の簡単なプログラムと回路の例

作品についてここまでのプログラム・回路を応用すると次のようなことができます

• ラーメンタイマ

– 3分間LEDが点滅し、3分経つとチャルメラのメロディを繰り返す

– 1分経過ごとに音を鳴らすと実用的です。

• カウントダウンタイマ

– ラーメンタイマの一種です。LEDで残り時間を表示します。

• 明るくなるとメロディが流れる

– 箱の中に回路を入れておくと、蓋を開けると明るくなります。それにあわせてメロディを鳴らすと、誕生日プレゼントなどに使えます。それを意識してプログラムを作ってもいいでしょう。

– 重要なものを入れた引き出しや冷蔵庫に入れておくと、開けていることが音で分かります。

• 暗くすると音が鳴る

– 回路を暗くすると音が鳴るように仕掛けます。触られたくないものの手前に置いておくと、警報になります。

• 電飾・メロディ

– クリスマスツリーなど LED を点滅させたり、音を鳴らすと楽しいでしょう。

– CdSに手をかざすと明るさが変化するので、それに合わせて点滅や音を変化させると面白くなります。

• 信号機・踏切シミュレータ

– 信号機や踏切の点滅変化をLEDで再現してみます

– 盲人用信号の音楽や、踏切の音を再現してもいいでしょう。

• 電子占い、電子サイコロ

– スイッチを押すと毎回違う目を表示します(サイコロの目はサイコロのように7個LEDを並べると表せる)

– しばらく目が変わる様子を見せても面白いでしょう

– 音を出しても面白いです

• 電子ルーレット

– LEDを円形に並べます。スイッチを押すとLEDが順番に点灯し、最後にどこかで止まります。

– 点灯するLEDの位置の変わり方を、最初は速く、だんだん遅くすると雰囲気が出ます

– 点灯するLEDの位置が変わるときに音を出すと面白くなります