teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

文法の修正

2021/09/21 23:27

投稿

NKJSM
NKJSM

スコア58

title CHANGED
@@ -1,1 +1,1 @@
1
- Arduinoを用いたCAN通信で同時に複数の信号を受け取る方法。
1
+ Arduinoを用いたCAN通信で連続的なメッセージを受け取り、処理する方法。
body CHANGED
@@ -1,5 +1,5 @@
1
1
  SparkFun CAN-Busというシールドとライブラリを使ってCAN通信を行いたいです。
2
- 通信相手が10ms間隔で3つの信号を送信しており、1つ目と3つ目の信号は読めるのですが、1つ目の処理中に2つ目と3つ目が来て、2つ目が上書きされているのか読み出しができません。それともメールボックスが2つとも使われて3つ目が保存されないのか。
2
+ 通信相手が10ms間隔で連続する3つのメッセージを送信しており、1つ目と3つ目の信号は読めるのですが、1つ目の処理中に2つ目と3つ目が来て、2つ目が上書きされているのか読み出しができません。それともメールボックスが2つとも使われて3つ目が保存されないのか。
3
3
  処理を早めようと極限まで内容を削って、通信速度を上げても無理でした。
4
4
  3つの信号全てを受け取る方法をご教授願います。
5
5
 

1

追加

2021/09/21 23:27

投稿

NKJSM
NKJSM

スコア58

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,17 @@
1
- SparkFun CAN-Busというシールドとライブラリを使ってCAN通信を行おうとしですが、
1
+ SparkFun CAN-Busというシールドとライブラリを使ってCAN通信を行です
2
- 通信相手が10ms間隔で3つの信号を送信しており、1つ目と3つ目の信号は読めるのですが、1つ目の処理中に2つ目と3つ目が来て、2つ目が上書きされているのか読み出しができません。
2
+ 通信相手が10ms間隔で3つの信号を送信しており、1つ目と3つ目の信号は読めるのですが、1つ目の処理中に2つ目と3つ目が来て、2つ目が上書きされているのか読み出しができません。それともメールボックスが2つとも使われて3つ目が保存されないのか。
3
3
  処理を早めようと極限まで内容を削って、通信速度を上げても無理でした。
4
4
  3つの信号全てを受け取る方法をご教授願います。
5
5
 
6
6
 
7
+ P.S.
8
+ 通信速度9600や19200の低速時はモニタに表示されるIDは282が殆どでたまに382、302が表示されていました(282が0.05秒に一回程度、382が0.5秒に一回程度、302が1.5秒に一回程度)
9
+ 230400や500000のように高速にすると結果のように282と382のみが交互に表示されるようになりました。
7
10
 
11
+ また、送信タイミングは同時から変更できませんが、送信間隔を変更できまして、1秒間隔に変更しました場合、通信速度が9600でも500000でもIDは282と382のみが交互に表示され、302を一切確認できませんでした。
8
12
 
13
+
14
+
9
15
  ```Arduino
10
16
  #include <Canbus.h>
11
17
  #include <defaults.h>