パッケージタイプ | 24-ピン DIP module |
パッケージサイズ | 3.048x1.524x1.0 cm |
speed | 48MHz, ARM7 |
マイクロコントローラ | AT91SAM7X512 |
RAMサイズ | 64Kバイト |
コード用メモリ サイズ | 152Kバイト |
I/Oピン数 | 16 |
電源電圧 | 9 VDC(非定電圧) 5VDC(定電圧) |
1つのI/O当たりの電流(PA0-3) | 16 mA |
1つのI/O当たりの電流(上記以外) | 8 mA |
1つのmodule当たり総電流 | 200 mA |
消費電流 | 100mA |
抵抗のカラーコードの見かた
上の例:赤紫橙金・・・27kΩ±5% 他の例:茶緑橙銀・・・15kΩ±10% 赤赤茶金・・・220Ω±5%
LEDを点滅させるプログラム |
---|
using System; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.NetduinoMini; namespace LED { public class Program { public static void Main() { OutputPort led = new OutputPort(Pins.GPIO_PIN_5, false); while (true) { led.Write(true); Thread.Sleep(250); led.Write(false); Thread.Sleep(250); } } } } |
「Hello World」を表示するプログラム |
---|
using System; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.NetduinoMini; namespace HelloWorld { public class Program { public static void Main() { int i = 0; while (true) { Debug.Print("HelloWorld " + i); i++; Thread.Sleep(100); } } } } |
スピーカの線の一方を0VであるVssに接続します。もう一方をピン15に接続します。ピン15の出力が上下することにより音が発生します。出力がhigh(5V)の時スピーカを通して電流は流れません。聞くには短すぎるので、一つのパルスは大きな音を発生しません。大きな音を発生させるには多くのパルスが必要になる理由です。 |
sound |
---|
using System; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.NetduinoMini; using BoeBotLib; namespace sound { public class Program { public static void Main() { PWM speaker = new PWM(CPU.P15); speaker.SetPulse(1000, 500); CPU.delay(100); speaker.SetPulse(500, 250); CPU.delay(100); speaker.Dispose(); } } } |
Freqout |
---|
using System; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.NetduinoMini; using BoeBotLib; namespace BoeBotLib { /** * パルス幅変調を基本とした周波数発生 */ public class Freqout : PWM { uint period; uint halfCycleTime; /** * PWMを基本としたFreqoutオブジェクトを作る。 音は発生しない * * 入力:int pin: PWMを発生させるためのピン */ public Freqout(Cpu.Pin pin) : base(pin) { setFrequency(1); } /** * PWMを基本としたFreqoutオブジェクトを作る。 音は発生しない * * 入力:int pin: PWMを発生させるためのピン * int frequency: 10ヘルツ単位の周波数 (1 - 12k) */ public Freqout(Cpu.Pin pin, int frequency) : base(pin) { setFrequency(frequency); } /** * 出力周波数を設定する。正確さは1μsのタイムベースである。 * * 入力:int frequency: 1ヘルツ単位の周波数 */ public void setFrequency(int frequency) { if (frequency > 50000) { frequency = 50000; } if (frequency < 1) // ゼロで割らないようにする { halfCycleTime = period = 1; } else { //使い方 SetPulse(uint period, uint duration); // duty cycle 50%だからhalfCycleTime=period/2 period = (uint)(1e6 / frequency); halfCycleTime = period / 2; } } /** * 決められた持続時間の間周波数を出力するように設定する * PWMを開始してから、停止する. * * 入力:int frequency: 1ヘルツ単位の周波数 * int time: CPU.delay()を単位とする時間量 */ public void waveOut(int frequency, int time) { setFrequency(frequency); waveOut(time); } /** * 決められた持続時間の間周波数を出力するように設定する * PWMを開始してから、停止する. * * 入力: int time: CPU.delay()を単位とする時間量 */ public void waveOut(int time) { start(); CPU.delay(time); stop(); } public void start() { SetPulse(period, halfCycleTime); } public void stop() { SetPulse(0, 0); } } } |
サイクルタイム cycle time |
---|
繰り返し行われるプロセス(仕事、タスク、ジョブなど)で、その1回に要する時間。プロセスの頻度や周期の単位となるもの。 |
Freqout テストプログラム |
---|
/** * Freqout テストプログラム * * Freqoutオブジェクトをどのように作りどのように用いるかを示す。 */ using System; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.NetduinoMini; using BoeBotLib; namespace TestFreqout { public class Program { public static void Main() { Freqout speaker = new Freqout(CPU.P15); speaker.waveOut(1000, 100); speaker.waveOut(2000, 100); speaker.Dispose(); } } } |