トップ «前の日(07-11) 最新 次の日(07-13)» RSS

titletitle


2009/07/12(Sun) この日を編集

uk-icon 頼まれ仕事

親から頼まれて、決算報告を印刷中。やっぱり、プリンタ遅いなぁ。


2012/07/12(Thu) この日を編集

uk-icon [mini] 空燃比計取り付け準備

昨日、空燃比計が届いたので、今日は取り付け準備を。

最初から思いっきり勘違いをしてて、これはインマニに取り付けるものだとばっかり思っていた。となると、穴開けてネジ山切らないとならない。それには、ドリルの歯とタップが必要と思って買いに出かけた。ネジは17mm位。だが、ホームセンター2件を梯子しても見つからず。あ、16mmのドリルは購入。4000円もした。次に、輸入工具店いったらM18のタップがあったので、迷いつつも買ってみて合わせたらビンゴだった。

帰ってついったーしてたら、cabさんから電話があって、取り付けはエキマニということにやっと気づく。それなら、O2センサーの他にも集合部に取り付け穴があった。

センサーを取り付けて、配線の引き回しを考えていたのだが、コネクタがでかくて辛い。+電源と平行して持っていこうかと考える。後は配線か。

改めてマニュアルと見ていると、こいつはラムダセンサーとして使えるらしい。ならば、O2センサーの場所に付ければいいじゃないか。場所的には最初のところの方がいいっぽいのだが、配線を考えるとこっちの方がよい。一度試してみて様子を見よう。

空燃比計

そんな訳で、買ってきた工具はすべて必要なくなったので、返品してきた。


2019/07/12(Fri) この日を編集

uk-icon 新しい病院

これまで持病で通っていた病院の担当医が、別の病院を開くということで、ついていくことにした。

今日、初めてそこに行ったのだけど、前は受付と待合室が別になってて良かったのだが、今度のところは一緒で近いので、受付の人がくっちゃべってるのが聞こえてきてしまう(地獄耳)。なるべくと奥の席に座るようにしよう。

あと、帰り道が混む。これも別ルートを探してみようか。


2025/07/12(Sat) この日を編集

uk-icon [hard] シリアルOLED液晶ディスプレイモジュール I2C SSD1306用0.91インチOLEDをArduino Nano Everyで使う

そもそもはAliExpressで見つけて買おうかと思ってたのだが、2個買うとAmazonで買っても送料の関係で値段が変わらないのでAmazonで買ったのだった。

届いたら思ったよりも小さくて、ゲッとなったけど取り敢えず使ってみようかと。よく考えたら、0.91インチなので当然なのだが。

画像の説明

調べたところ、Adafruit GFX LibraryとAdafruit_SSD1306というライブラリをArduino IDEからインストールしてincludeしてやれば使える。

GitHub - adafruit/Adafruit_SSD1306にサンプルがあるのでそれを参考にして試行錯誤して、以下のソースコードで画像の表示をすることができた。フォントも変えたかったのだが、小さいフォントが見つからなかったので諦めた。

ちなみに、以下のサンプルは1秒毎に表示が点滅します。

#include 
#include 
#include 
#include 
//#include 
 
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
 
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
// The pins for I2C are defined by the Wire-library.
// On an arduino UNO:       A4(SDA), A5(SCL)
// On an arduino MEGA 2560: 20(SDA), 21(SCL)
// On an arduino LEONARDO:   2(SDA),  3(SCL), ...
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
 
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
 
  // Show initial display buffer contents on the screen --
  // the library initializes this with an Adafruit splash screen.
  // Clear the buffer
  display.clearDisplay();
}
 
void loop() {
  display.clearDisplay();            // LCDのクリア
  display.display();                 // LCDの描画をしてクリアを適用
  delay(1000);
  disp_temp_and_level(88.88, 88);    // 温度とアクセル開度を引数に入れる
 
  delay(1000);
}
 
// 温度とアクセル開度をLCDに表示するサンプル
void disp_temp_and_level(float temp, int lv) {
  display.setTextSize(1);             // Normal 1:1 pixel scale
  display.setTextColor(SSD1306_WHITE); // Draw white text
  display.setCursor(0,0);             // Start at top-left corner
  display.println(F("Water Temp"));
 
  float f_dot = 0;   // 温度の小数部分
  int i_temp = 0;    // 温度の整数部分
  int i_dot = 0;     // 小数部分を整数にしたもの
  i_temp = (int)temp;
  display.setCursor(0,10);            // 温度を表示する座標
  display.setTextSize(3);             // 3倍の大きさのフォント
  char buf[10], buf2[10];
  sprintf(buf, "%03d", i_temp);       // 温度の整数部分を3桁で表示
  display.write(buf);                 // 温度の整数部分を表示
  display.setCursor(48,16);           // 温度の小数点以降の表示座標
  display.setTextSize(2);             // Draw 2X-scale text
  f_dot = temp - i_temp;
  i_dot = (int)(f_dot * 10);          // 温度の小数部分を1桁で得る
  sprintf(buf2, ".%d", i_dot);
  display.write(buf2);                // 温度の小数部分を表示
  display.setTextSize(1);             // Normal 1:1 pixel scale
  display.setCursor(67,10);           // ℃を表示する座標
  display.cp437(true);                // ゜を表示するための指定
  display.write(167);                 // ゜を表示する
  display.print("C");                 // 上下で℃と表示
 
  display.setTextSize(1);             // Normal 1:1 pixel scale
  display.setCursor(77,0);            // 座標を移動
  display.println(F("Accel Lv"));
 
  display.setTextSize(3);             // 3倍のフォントサイズ
  display.setCursor(90,10);           // アクセル開度の表示座標
  display.println(lv);                // アクセル開度を表示
 
  display.display();                  // LCDに描画する
}

画像の説明