入荷いたしました(2021/05/24)

大変お待たせいたしました。「Arduino基礎学習シールド」ですが、本日入荷いたしました。Uno用・Nano用ともに、購入可能となっております。こちらのキットですが、はんだ付け作業等電子工作の基礎とArduinoのスケッチの書き方の基礎が比較的容易に学習できる内容となっております。

「Arduino基礎学習シールド」Uno用 → https://www.switch-science.com/catalog/2308/

「Arduino基礎学習シールド」Nano用 → https://www.switch-science.com/catalog/2368/

どうか、Arduinoの学習にお役立て下さい。今後ともよろしくお願いいたします。

「Arduino基礎学習シールド」入荷予定のお知らせ

大変お待たせをいたしました。「Arduino基礎学習シールド」につきまして、入荷時期のお問合せを多数頂いておりましたが、諸事情により長期間未定となっておりました。大変ご不便をお掛けして申し訳ございません。この度、入荷の目途が立ち、来週の5月25日火曜日頃に購入可能となる見込みです。Uno用が主体ですが、Nano用も同時に入荷します。スイッチサイエンス様のみのお取り扱いとなっておりますので、よろしくお願い申し上げます。また、入荷後に購入可能となりましたら、再度ご案内させて頂きます。

DHT11使用 温度・湿度計の製作

温度湿度センサーDHT11は安価(秋月電子さんで300円)で、DATA端子1本のみでArduinoとシリアル通信ができ、温度と湿度の計測ができます。端子は4本ありますが、1本はNCで使いません。正面向かって左から2番目の端子がDATAで、この端子は10kΩ程度の抵抗でプルアップする(5Vに接続する)必要があります。今回は128×32ドットOLEDディスプレイで表示するようにしました。

実体配線図

上記のように接続しました。DHT11のDATA端子はArduinoのD8に接続しました。OLEDディスプレイはSDAをA4に、SCLをA5に接続します。

Arduinoのスケッチ

準備として、DHT11と1306のライブラリをそれぞれインストールしておきます。スケッチ>>ライブラリの管理でライブラリマネージャーを開き検索してインストールします。「DHT11」や「1306」ですぐに見つかると思います。

#include <DHT.h>              //DHT11ライブラリのヘッダファイル
#define PIN_DHT 8             //DHT11の信号線をD8端子に接続する定義
DHT dht( PIN_DHT, DHT11 );    //接続の設定
float temperature;
float percentHumidity;

#include <Wire.h>             //I2Cのヘッダファイル
#include <Adafruit_SSD1306.h> //SSD1306のヘッダファイル
Adafruit_SSD1306 display(-1); //RSTピンがない互換品を使用するので-1を指定

void setup() {

  dht.begin();

  display.begin(SSD1306_SWITCHCAPVCC,0x3C); //I2Cアドレスの設定
  display.setTextColor(WHITE);              //色の設定(白)
  display.setTextSize(2);                   //文字サイズ設定
  display.clearDisplay();                   //画面クリア

}

void loop() {

  delay(1000);    //1秒待ち(1000ms)

  percentHumidity = dht.readHumidity();  //湿度の読み込み
  temperature = dht.readTemperature();   //温度の読み込み
  
  display.clearDisplay();           //画面クリア   
  display.setCursor(0,0);           //左上にカーソルを移動
  display.print("T: ");             //文字列挿入
  display.print(temperature,1);     //文字列挿入
  display.println("[C]");           //文字列挿入
  display.print("H: ");             //文字列挿入
  display.print(percentHumidity,1); //文字列挿入
  display.println("[%]");           //文字列挿入
  display.display();                //描画バッファの内容を画面に表示

}
//ここまで

比較的、簡単に作ることができます。更に、プルアップ抵抗が組み込まれた3本足のモジュールも販売されているみたいです。

OLEDに「Hello World」を表示する

こんにちは。前回はAdafruitのサンプルプログラムを入れて動作させてみました。今回は簡単な文字列を画面上に表示・点滅させてみました。今回使用するOLEDは128×32ドット幅30mmほどの大きさで、Driver ICにはSSD1306が使用されています。Arduinoとの接続はI2Cで、GDD、VCC、SCL、SDAの4本となります。ArduinoのA4にSDAを、A5にSCLを接続します。

ライブラリですが、今回はAdafruitのライブラリを使いました。「Adafruit SSD1306」というものですが、Arduino IDEのライブラリマネージャを開き(スケッチ>>ライブラリを管理)ここで「1306」などで検索すると見つかりますので、これをインストールします。

(プログラム例)OLEDに「Hello World」を表示させる

#include <Wire.h>             //I2Cのヘッダファイル
#include <Adafruit_SSD1306.h> //SSD1306のヘッダファイル
Adafruit_SSD1306 display(-1); //RSTピンがない互換品を使用するので-1を指定

void setup() {
  
  display.begin(SSD1306_SWITCHCAPVCC,0x3C); //I2Cアドレスの設定
  display.setTextColor(WHITE);              //色の設定(白)
  display.setTextSize(2);                   //文字サイズ設定
  display.clearDisplay();                   //画面クリア

}

void loop() {
  
  display.clearDisplay();    //画面クリア   
  display.setCursor(0,0);    //左上にカーソルを移動
  display.println("Hello");  //文字列挿入
  display.display();         //描画バッファの内容を画面に表示
  delay(1000);               //1秒間待ち

  display.clearDisplay(); 
  display.setCursor(0,16);   //下段にカーソルを移動(32/2=16) 
  display.println("World");
  display.display();
  delay(1000); 

}
//ここまで

今回使用した物は、「0.91 インチ IIC I2C シリアルOLED液晶ディスプレイモジュール 128×32 3.3V/5V AVR PIC Arduino UNO MEGAに対応」でAmazonで2個900円弱でした。1個当たり450円程です。バックライトが不要な点はLCDに勝っています。またI2C接続は簡単なので、色々な用途に応用できそうです。

OLED 128×32 ディスプレイ(その1)

こんにちは。久しぶりの投稿です。amazonでOLED(有機EL)を安価で購入したので試してみました。I2C接続で結線は4本のみです。テキスト以外に画像も表示でき、便利に使えそうです。まずは、動作確認の動画を掲載させて頂きます。