Windows for IoT で analogRead / analogWrite


[参考] : http://kousaku-kousaku.blogspot.jp/2008/05/arduino_26.html

(Arduino 界隈では超有名な建築発明工作ゼミ様です。)

可変抵抗の入力値を基に、LED の明るさを変えてみるだけのシンプルなサンプルです。

Arduino では analogRead() は 1024 段階でしたが、Intel Galileo は 4096 段階になっていますね。
[参考] : http://arduino.cc/en/ArduinoCertified/IntelGalileo

analogWrite() は情報見つからないのですが、とりあえず 256 段階ってことで、以下の例では 16 で割って使ってます。4096 段階出せてるような気がしないでもないけれど。。。

あと、PWM 出来るピンは 3, 5, 6, 9, 10, 11 です。
ピンの番号のところに ~ がついてるのが PWM 対応ってことみたい。

回路図をサクっと書ける fritzing だと、13 も ~ ついてるんですが、ダメそう。
Visual Studio でなぜか以下のようなエラーが出ておかしいなぁと思って 30 分くらい悩んだのでした。

First-chance exception at 0x775D0F63 in analogIO.exe: Microsoft C++ exception: _arduino_fatal_error at memory location 0x00CCF69C.

analogRead

// Main.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "arduino.h"

int _tmain(int argc, _TCHAR* argv[])
{
    return RunArduinoSketch();
}

int led = 3;  // This is the pin the LED is attached to.
int val = 0;

void setup()
{

}

// the loop routine runs over and over again forever:
void loop()
{
	val = analogRead(0);
	Log(L"analogRead value = %dn", val);
    analogWrite(led, val/16);
    Log(L"analogWriten");
    delay(100);
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください