Relative Content

ESP32 Dev Module

ESP32 (4) mini-Oscilloscope

Arduino UNOと同じmini-Oscilloscope を作って見た。 表示の正確性はまた検証が必要だけど ソースコードはほぼ一緒 /* This is set up to use a 128×64 I2C screen, as available here: http://www.banggood.com/buy/0-96-oled.html For wiring details see http://youtu.be/XHDNXXhg3Hg */ #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); #if (SSD1306_LCDHEIGHT != 64) // error(“Height incorrect, please fix Adafruit_SSD1306.h!”); #endif /********************************************/ #define CHARWIDTH 5 #define CHARHEIGHT […]

ESP32 (3) analogRead

目的 12bit A/Dは複数内蔵するので、活用したい。 スケッチはArduino Unoと同じような記述でできる。ただし読み取り値は0〜1023ではなく0〜4096で、入力電圧の範囲は0〜3.3Vのようだ。 結線 スケッチ const int voutPin = 2; const int VOLT = 3.3; // 3.3Vを電源とした場合 const int ANALOG_MAX = 4096; // ESP32の場合 void setup() { Serial.begin(115200); } void loop() { // R1の電圧を取得 int reading = analogRead(voutPin); // AD値をmVに変換 float voltage = ((long)reading * VOLT * 1000) / ANALOG_MAX; Serial.print(voltage); Serial.println(” mV, […]

ESP32 (2) SSD1306 & Clock

目的 SSD1306に時刻を表示するプログラム。 ESP8266と違って、SCL,SDAを探すも一苦労。 I2C0 – SDA,SCL = 21,22 **2019/9/2 注意:Adafruit_SSD1306関数の引数順番変更により、関連プログラムが影響する。 もともと次のような1行ものが、 // Adafruit_SSD1306 display(OLED_RESET); 次の数行に変わる。 // OLED Setting #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); なぜ互換性ないの引数順にするね?!どうしてもしたいならば、コンパイルエラーを出す方法で、修正を促す。 以前のプログラムが再検証するところ、エラーがなし、書き込みも成功、しかしOLEDが表示ない!困った。 […]

ESP32 (1) Blink

Lチカのプログラム ESP32-DevKitC を USB ケーブルで PC と接続. Arduino IDE のメニューから  Tools – Port – /dev/cu.SLAB_USBtoUART を選択(Mac OS Xの場合). 一番単純そうなサンプルスケッチを実行する. メニューから File – Examples – (Examples for ESP32 Dev Module) – ESP32 – ChipID – GetChipID を選択. Lチカ用内蔵LEDがGPIO2にあるが、GPIO4に外付けLEDを繋いでやった。 プログラム void setup() { pinMode(4, OUTPUT); } void loop() { digitalWrite(4, HIGH); delay(250); digitalWrite(4, LOW); delay(250); }     参考 https://qiita.com/Guwashi/items/1009faab2d3db24d80d5 https://kokensha.xyz/iot/mac-esp32-and-arduino-led/