投稿

3月, 2022の投稿を表示しています

ESP32 HTTPサーバからのダウンロード速度UP(調査中)

  ESP32 HTTPサーバからのダウンロード速度UP(調査中) 2021/10/22 No.261 マイコンソフトウェア 調査継続中ですが わかったことを載せておきます。 SD.begin(5, SPI, 24000000, "/sd");//24000000=24Mhz デフォルト 4Mhz SPI.begin(); // start up the SPI bus SPI.setFrequency(6000000);//6000000=6Mhz デフォルト 1Mhz デフォルト設定でのテスト結果 平均 230 KB/s ESP-WROOM-02では 平均 150 KB/s(120〜180 KB/s) 設定変更後 平均 366 KB/s(416〜330 KB/s) SPIの変更効果は?再検証予定 条件 約8MBファイルをRasPi4(4GB)のLXTerminalでwgetで ダウンロード

ESP32pcntカウンタをテストしてみた

  ESP32pcntカウンタをテストしてみた 2021/12/9 No.262 マイコンソフトウェア ESP32でpcntカウンタでパルスをただ数えるだけ。 16bitの符号付きの高速なパルスカウンタです。 もっと詳しい事を知りたい方は esp32 pcntで検索するとなにか見つかると思います。 桁数が足らないので工夫しています。 素人の書いたコードなので間違いがあるかも知れません。 #include "driver/pcnt.h" #define PULSE_INPUT_PIN 32 //パルスの入力ピン #define PULSE_CTRL_PIN 33 //制御ピン #define PCNT_H_LIM_VAL 32768 //カウンタの上限32768 16bit Counter 65536 #define PCNT_L_LIM_VAL -32768 //カウンタの下限-32768 int16_t count = 0; //カウント数 unsigned long currentCount = 0; unsigned long previousCount = 0; unsigned long addCount = 0; unsigned long previousMillis = 0; const long interval = 1000; void setup() { pcnt_config_t pcnt_config;//設定用の構造体の宣言 pcnt_config.pulse_gpio_num = PULSE_INPUT_PIN; //pcnt_config.ctrl_gpio_num = PULSE_CTRL_PIN;//制御信号入力GPIO番号 pcnt_config.ctrl_gpio_num = PCNT_PIN_NOT_USED; pcnt_config.lctrl_mode = PCNT_MODE_REVERSE;//_REVERSE:invert counter mode(increase -> decrease, decrease -> increase) pcnt_config.hctrl_mode = PCNT_MODE_KEEP;//_KEEP:won’t change counter mode //

AE-TLP291-4x2-CAの裏技的リード取り付け

イメージ
AE-TLP291-4x2-CAの裏技的リード取り付け 2022/1/9 No.263 マイコンハードウェア 秋月電子TLP291使用8ビットホトカプラモジュール アノードコモン I-16315 150円 AE-TLP291-4x2-CA 取り付け高さを低くおさえるためのリードを取り付け方法 (約5.5mm) 使用する材料 基板用リードフレーム C-07011 90円 リードフレーム位置を合わせてはんだ付け 反対側も同様にはんだ付け はんだを付けすぎないように注意(付けすぎは吸い取る) リードを曲げる(80度ぐらいでOK) 反対側も曲げる 曲げ完了 リード途中のくびれを確認 折り取るためにくびれのところで曲げる 折り取るためにくびれのところで曲げる 折り目が付いたら曲げ延ばしして折り取る リードが付きました ユニバーサル基板にセットした様子 参考 このホトカプラモジュールが良いと思うところは 少ないスペースで8回路のホトカプラが取り付けられる。 アノード,エミッタが4bitづつコモン接続されているので 配線が少なくて済む。 現在製作予定のI/Fボードに採用決定です。

Klogger(仮)

イメージ
  Klogger(仮) 2022/1/20 No.264 マイコンハードウェア Klogger(仮)開発完了間近です。 外観を紹介しておきます。 今後デジタル入力を4つ追加します。 16x2 LCDで LCD1行目 UDPで送られてきたTEXTを表示 LCD2行目 UPHを表示 基板1枚に収まらず、2枚(2段積み)になりました。 ESP32+seeeduinoXIAO+DS3231(RTC)+microSD 16bit入力

ESP-NOWでリモートI/Oを作る

イメージ
ESP-NOWでリモートI/Oを作る 2022/2/24 マイコンハードウェア No.265 伝送接点数16 単方向(送信側→受信側への伝送のみ) 離れたところにある機器の信号を、電波が届く範囲で 配線無しで受け取ることができる。 ESP32同士で直接通信するのでアクセスポイントは不要 主な部品 ESP32開発ボード、I/OエキスパンダMCP23017 テストの様子 右側が送信、左側が受信となっています。 Arduino-UNOで送信側のテスト信号を作ってMCP23017へ 入力しています。 MCP23017のデジタル入力を読み込み、16進数を文字配列 としてESP-NOWで送信 受信した文字配列を16進数へ変換してMCP23017のデジタル 出力へ出力する。 まだ十分理解できていませんのでおかしな点があると思います がスケッチを紹介しておきます。 送信側 スケッチ抜粋 String data = String (mcp.readGPIOAB(), HEX); //16ピンすべて(ポートAおよびB)を単一の16ビット変数に読み込みます。 //16ピンすべてを表す16ビット変数を返します esp_err_t outcome = esp_now_send(broadcastAddress, (uint8_t *) &data, sizeof(data)); 受信側 スケッチ抜粋 char intData[12]; unsigned int GPIO_BA; void data_receive(const uint8_t * mac, const uint8_t *rcvData, int len) { memcpy(&intData, rcvData, 5); long Data = strtol(intData, NULL, 16); //16進数表示で送られてきた文字配列を16進数数値に変換する GPIO_BA = Data; mcp.writeGPIOAB(GPIO_BA); //すべてのピンを一度に書き込みます。 //引数へ16進数を与えると対応する出力のON/OFFができる。 } 作例を公開している方々に感謝します。