[Arduino]火炎検知センサー

火炎検知センサーは、読んで字のごとく火炎を検出する。

### ソースコード
// 省略

dav

何やコレ、ターボライターは反応しない。
室内で実験に火を使用するのは万一を考えると危険だ。

[Arduino]リードスイッチ

リードスイッチモジュールは磁場を検出する
マグネットを購入し、リードスイッチに近づけて、LEDの点灯を制御する

int Led = 13;
int buttonpin = 3;
int val;

void setup() {
  pinMode(Led, OUTPUT);
  pinMode(buttonpin, INPUT);
}

void loop() {
  val = digitalRead(buttonpin);
  if(val==HIGH){
    digitalWrite(Led, HIGH);
  } else {
    digitalWrite(Led, LOW);
  }
}

dav

マグネットは水銀に比べて身体に安全という利点がありそうだ

[Arduino]水銀チルトセンサー

水銀チルトセンサーはチルト(tilt)を測定する
水銀チルトセンサーの斜度を変えて、LEDは点灯や消灯する
チルトとは傾斜

int Led = 13;
int buttonpin = 3;
int val;

void setup() {
  pinMode(Led, OUTPUT);
  pinMode(buttonpin, INPUT);
}

void loop() {
  val = digitalRead(buttonpin);
  if(val==HIGH){
    digitalWrite(Led, HIGH);
  } else {
    digitalWrite(Led, LOW);
  }
}

mde

傾斜が変わるって何だろう? 地震は揺れだし、単にオンオフの切り替えならばスイッチで良いし。
かつてはガスファンヒーター・石油ヒーターなどの転倒防止スイッチで使用されていたらしい。
水銀が危険なので現在は使われていないとのこと。センサー一つで歴史を感じる。

[Arduino]遮光センサー

遮光センサーはフォトインタラプタを検出できる。

フォトインタラプタとは?
>発光素子と受光素子を1つのパッケージに対向して並べ、その間を検出物体が光をさえぎることにより、検出機能を持つ

int Led = 13;
int val;

void setup() {
  pinMode(Led, OUTPUT);
  pinMode(3, INPUT);
}

void loop() {
  val = digitalRead(3);
  if(val==HIGH){
    digitalWrite(Led, HIGH);
  } else {
    digitalWrite(Led, LOW);
  }
}

mde

コレはびっくりする。
物体検知という意味では赤外線センサーなどと一緒なのかもしれないが、原理が全く異なるのね。

[Arduino]HC06 Bluetoothセンサー

Bluetoothでメッセージ通信を行います。

AndroidにAmarino 2.0 build 0.55をインストールします。

void setup() {
  Serial.begin(9600);
}

void loop() {
  char val;
  val = Serial.read();

  if((val>='a' && val <= 'z') || (val>='A' && val<= 'Z')){
    Serial.println(val);
  }
}

dav

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding

ん? どういうことだ?

[Arduino]赤外線送信モジュール

#include <IRremote.h>

IRsend irsend;
const int buttonPin = 4;
int buttonState = 0;

void setup() {
  pinMode(buttonPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if(buttonState == HIGH){
    irsend.sendNEC(0x80BFA15E, 32);
  }
}

dav

[Arduino]Full Color LED RGB module

int redpin = 11;
int bluepin = 10;
int greenpin = 9;

int val;

void setup() {
  pinMode(redpin, OUTPUT);
  pinMode(bluepin, OUTPUT);
  pinMode(greenpin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  for(val=255;val>0;val--){
    analogWrite(11,val);
    analogWrite(10,255-val);
    analogWrite(9,128-val);
    delay(1);
  }
  for(val=0; val<255; val++){
    analogWrite(11,val);
    analogWrite(10,255-val);
    analogWrite(9,128-val);
    delay(1);
  }
  Serial.println(val,DEC);
  
}
sdr

[Arduino]湿度/温度センサー

header

#ifndef dht_h
#define dht_h

#if ARDUINO >= 100
 #include "Arduino.h"
#else
 #include "WProgram.h"
#endif

#define DHT_LIB_VERSION "0.1.00"

class dht
{
public:
	int read11(uint8_t pin);
    int read22(uint8_t pin);
	double humidity;
	double temperature;

private:
	uint8_t bits[5];  // buffer to receive data
	int read(uint8_t pin);
};
#endif

sketch

#include<dht.h>
dht DHT;

#define DHT11_PIN 3

void setup() {
  Serial.begin(9600);
  Serial.println("The realtime Temperature and Humidity is :");
}

void loop() {
  int chk = DHT.read11(DHT11_PIN);
  Serial.print(" Humidity: ");
  Serial.print(DHT.humidity, 1);
  Serial.println('%');
  Serial.print(" Temperature: ");
  Serial.print(DHT.temperature, 1);
  Serial.println('C');
  delay(2000);
}

配線はvccを5v, dataを3番ピンにつなぐ

dav

シリアルボード
Humidity: 69.0%
Temparature 26.0C

コレ、arduinoでどうセンサーを使うかってより、各センサーの仕組みがどうなってるか理解しないと、どうにもならんな。

[Arduino]マイク/サウンドセンサー

A0PINでアナログ音声信号を出力

スマホのYoutubeを流したマイクをsound sensorに近づけてみる

int analog_sensor = A0;
int digit_sensor = 12;
int ledPin = 3;
int analogValue;
int digitValue;
void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(digit_sensor, INPUT);
  Serial.begin(9600);
}

void loop() {
  analogValue = analogRead(analog_sensor);
  digitValue = digitalRead(digit_sensor);
  Serial.println(analogValue, DEC);
  if (digitValue == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

dav

シリアルモニタ
29
36
25
30
36
26
25
27
28
26
24
30
29
33

おお、なんかよくわからん、何がしたんだコレは。