カテゴリー別アーカイブ: 第1回 Arduinoの基礎
//php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
//php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
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);
} |
//php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
スイッチのオン・オフを読み取る
スイッチを押した時だけ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);
} |
//php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
光センサーの値を読み取る
光センサーで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);
} |
//php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>
温度センサーの値を読み取る
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);
} |
//php if ( is_archive() || is_search() ) : // Only display excerpts for archives and search. ?>