デジタルI/Oとパルスカウンタを増設したロガーができました。 リンクを取得 Facebook × Pinterest メール 他のアプリ 7/20/2020 データロガーボードと、増設ボードを組み合わせました。基板を2段重ねしています。増設ボードです。I2C接続のMCP23017とシリアル接続のSeeeduino XIAOのパルスカウンタESP-WROOM-02とつないでいます。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
ESP32pcntカウンタをテストしてみた 3/11/2022 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 //... 続きを読む
解決Arduino UNO MINIMAでCAN通信(MINIMA >> ESP32twaireceiveで受信できたが) 1/19/2025 少し前に進みました? 笑って許してくれる方だけ見てくださいね! 送信 Arduino UNO R4 (CANWrite.ino)+CANトランシーバ:SN65HVD230 受信 ESP32-WROOM-32E(TWAIreceive.ino)+CANトランシーバ:SN65HVD230 これでやっています。 最終的に送信側をXIAO RA4M1にしたいと目論んでいます。 困りごと・・・☆解決☆(2025/02/03) ・1秒毎の送信なのに、受信側はシリアルモニタに高速出力?☆解決☆ ・変化データ送信で、受信データが更新されない。☆解決☆ 変更点 TWAIreceive.ino setup関数の中 "TWAI_MODE_LISTN_ONLY"を"TWAI_MODE_NORMAL"へ変更 //TWAIreceive.ino //setup関数の中にある //Initialize configuration structures using macro initializers //twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT((gpio_num_t)TX_PIN, (gpio_num_t)RX_PIN, TWAI_MODE_LISTEN_ONLY);//変更前 twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT((gpio_num_t)TX_PIN, (gpio_num_t)RX_PIN, TWAI_MODE_NORMAL);//変更後 新たに確認できたこと(2025/01/21) ESP32同士なら問題なさそう?な雰囲気、まだ変化データは未確認だった。 つまり"マイコンの組み合わせ"? でもXIAO RA4M1を使いたいので、打開策調べます。 ESP32同士の受信シリアルモニタ表示 1sec毎表示されます。 (送信側をUNO R4からESP32に変えたということです。) (TWAIreceive.ino-->TWAItransmit.ino) なんで"Extended Format"になってるんだろう? ... 続きを読む
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.... 続きを読む
コメント
コメントを投稿