デジタルI/Oとパルスカウンタを増設したロガーができました。 リンクを取得 Facebook × Pinterest メール 他のアプリ 7/20/2020 データロガーボードと、増設ボードを組み合わせました。基板を2段重ねしています。増設ボードです。I2C接続のMCP23017とシリアル接続のSeeeduino XIAOのパルスカウンタESP-WROOM-02とつないでいます。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
Arduino UNO MINIMAでCAN通信(接点伝送してみる) 3/07/2025 CAN通信の活用方法を考えています。 今回テーマは「接点伝送」です。 CANバスを経由で機器を制御するようなことができると思います。 備忘記なんですが、参考に紹介します。 (更に書き足しました) 送信側(入力側)オリジナルスケッチ"CANWrite.ino"の最後の方に "delay(1000)"(1秒)入っています。 これは、1秒間止まって待っているということですから、もったいないと思います。 かといって、入力が変わらないのに高速に送り続けるのもどうかと思います。 変化したときだけ送るとか、実際に機器に使うときは考えましょう。 (少し書き足しました。) 入出力デバイスはIOエキスパンダを使ってみました。 入力はI2CインターフェースのMCP23017、 出力はSPIインターフェースのMCP23S17です。 なんでインターフェースが違うデバイスを使ったの? ピンリストでI2Cの端子と思われるGPIO21ーWIRE_SCL, GPIO22ーWIRE_SDAが、CAN_TX、CAN_RXが割り当てられていたので、 I2Cは使えないと思い込んで、SPIインターフェースを選択した経緯あり。 ESP32の"IO MUXとGPIOマトリックス"機能があって、GPIOピンに割り当てる 機能を変えられる(合ってる?)、ピンリストに表示されているのは、 デフォルトで接続されるGPIOピンかな? CANトランシーバの接続を、GPIO16,17に変えても動くようなので、 GPIO21ーWIRE_SCL,GPIO22ーWIRE_SDAにI2Cインターフェースの MCP23017を接続してもよいのではないかと思います。 SCL、SDAのGPIOピンを変えることもできると思うが、 CAN_TX、CAN_RXを変えるほうが簡単。 準備 ESP32とArduino UNO R4ボードマネージャ、 "Adafruit MCP23017 Arduino library"をインストールしておく。 動作確認のときはPCが2台あると便利です。 ・CAN受信側(出力)MCP23S17を使用した接続 出力側スケッチ サンプルスケッチTWAIreceive.inoへMCP23x17用を組み合わせただけです。 追加する部分だけ 実際の... 続きを読む
Arduino UNO MINIMAでCAN通信(MINIMA >> UNO R4 Wi-Fi 受信データを配列に入れる) 2/27/2025 参考になる情報を見つけたので、備忘記録として投稿します。 情報公開してくださっている方に感謝します。 笑って許してくれる方だけ見てくださいね! 本来目的のESP32受信で問題点があり、原因切り分け調査のための、 UNO R4 WIFI受信調査となっています。 送信 Arduino UNO R4 MINIMA(CANWrite.ino)+CANトランシーバ:SN65HVD230 受信 Arduino UNO R4 WIFI(CANRead.ino)+CANトランシーバ:SN65HVD230 これでやっています。 サンプルスケッチ"CANRead.ino"は決められた書式でのシリアルモニタ表示はできますが、 if (CAN.available()) { CanMsg const msg = CAN.read(); Serial.println(msg); } データのみを使いたい時どうしたら良いか疑問が湧いて調べたら、次のようなコードをみつけました。 これで解決できます。 if (CAN.available()) { CanMsg const msg = CAN.read(); //sizeof(msg.data)は"msg.data"メモリサイズをバイト単位で返す uint8_t rx_data[20]; //メモリ領域msg.dataの先頭からmsg.dataのメモリサイズバイトをメモリ領域rx_dataにコピーする memcpy(rx_data, &msg.data, sizeof(msg.data)); // rx_data配列へコピー uint32_t rxId = msg.id; uint8_t rxLen = msg.data_length; Serial.... 続きを読む
ESP32でCAN通信(RTR frameとextended format設定) 3/20/2025 RTR frameとextended formatはデフォルトで有効となっています。 CAN送信のスケッチを書く時は気をつけましょう。 "twai_types.h"で指定されているようです。 必要に応じて、CAN IDを指定する"message.identifier =・・・"の前辺りに、 次のコードを書いて設定しましょう。 message.extd = 0;//0:Standard(11bit ID) 無指定:extended format(29bit ID) message.rtr = 0;//0:Data frame 無指定:RTR frame 忘れてた CAN ID"0xF6"で送っているつもりが、受信側"80000F6"と表示され、 しばらく悩んだので備忘記投稿しました。 続きを読む
コメント
コメントを投稿