カテゴリー別アーカイブ: 第1回 Arduinoの基礎

第1回 Arduinoの基礎 – 目次

スライド

ソースコード

カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – LEDを点滅させる

LEDを点滅させる

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define LED_PIN 3
 
void setup()
{
  pinMode(LED_PIN, OUTPUT);
}
 
void loop()
{
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);
  delay(500);
}
カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – スイッチのオン・オフを読み取る

スイッチのオン・オフを読み取る

スイッチを押した時だけLEDが点灯する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define LED_PIN 3
#define SW_PIN 4
 
int swVal = 0;
 
void setup()
{
  pinMode(LED_PIN, OUTPUT);
  pinMode(SW_PIN, INPUT);
}
 
void loop()
{
  swVal = digitalRead(SW_PIN);
 
  if (swVal == HIGH) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

スイッチを押すとLEDのオン・オフが反転する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#define LED_PIN 3
#define SW_PIN 4
 
int swVal = 0;
boolean ledState = false;
 
void setup()
{
  pinMode(LED_PIN, OUTPUT);
  pinMode(SW_PIN, INPUT);
}
 
void loop()
{
  swVal = digitalRead(SW_PIN);
 
  if (swVal == HIGH) {
    ledState = !ledState;
  }
 
  if (ledState) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

スイッチを押すとLEDのオン・オフが反転する(改良版1)

スイッチがオフからオンに切り替わった時のみLEDを反転させる

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define LED_PIN 3
#define SW_PIN 4
 
int swVal = 0;
int swValOld = 0;
boolean ledState = false;
 
void setup()
{
  pinMode(LED_PIN, OUTPUT);
  pinMode(SW_PIN, INPUT);
}
 
void loop()
{
  swVal = digitalRead(SW_PIN);
 
  if (swVal == HIGH && swValOld == LOW) {
    ledState = !ledState;
  }
 
  swValOld = swVal;
 
  if (ledState) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

スイッチを押すとLEDのオン・オフが反転する(改良版2)

スイッチのチャタリング対策を行う

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#define LED_PIN 3
#define SW_PIN 4
 
int swVal = 0;
int swCount = 0;
boolean ledState = false;
 
void setup()
{
  pinMode(LED_PIN, OUTPUT);
  pinMode(SW_PIN, INPUT);
}
 
void loop()
{
  swVal = digitalRead(SW_PIN);
 
  if (swVal == HIGH) {
    swCount += 1;
  } else {
    swCount = 0;
  }
 
  if (swCount == 10) {
    ledState = !ledState;
  }
 
  if (ledState) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
 
  delay(1);
}
カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – 光センサーの値を読み取る

光センサーの値を読み取る

光センサーでLEDの点滅の間隔を制御する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#define LED_PIN 3
#define CDS_PIN 0
 
int cdsVal = 0;
 
void setup()
{
  pinMode(LED_PIN, OUTPUT);
}
 
void loop()
{
  cdsVal = analogRead(CDS_PIN);
 
  digitalWrite(LED_PIN, HIGH);
  delay(cdsVal/10);
  digitalWrite(LED_PIN, LOW);
  delay(cdsVal/10);
}

光センサーでLEDの明るさを制御する(PWM)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#define LED_PIN 3
#define CDS_PIN 0
 
int cdsVal = 0;
 
void setup()
{
  //pinMode(LED_PIN, OUTPUT);
}
 
void loop()
{
  cdsVal = analogRead(CDS_PIN);
 
  analogWrite(LED_PIN, 255-cdsVal/4);
}
カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – 温度センサーの値を読み取る

温度センサーの値を読み取る

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define TEMP_PIN 0
 
void setup()
{
  Serial.begin(9600);
}
 
void loop()
{
  int tempVal = 0;
  int tempMilliVolt = 0;
  float temp = 0;
 
  tempVal = analogRead(TEMP_PIN);
  tempMilliVolt = (unsigned long)5000 * tempVal / 1023;
  temp = (tempMilliVolt - 600) / 10.0;
 
  Serial.println(temp);
 
  delay(1000);
}
カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。

第1回 Arduinoの基礎 – 復習テスト

復習テストページ

カテゴリー: 第1回 Arduinoの基礎 | コメントは受け付けていません。