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

質問編集履歴

1

Arduinoのソースコードを追加しました

2017/02/08 09:26

投稿

lefirea
lefirea

スコア20

title CHANGED
File without changes
body CHANGED
@@ -52,6 +52,77 @@
52
52
  (以下略)
53
53
  ```
54
54
 
55
+ Arduino側のソースコードは以下のコードです。
56
+ ```Arduino
57
+ char data[128];
58
+ int count=0;
59
+ float a[4];
60
+ char*tp;
61
+ int flag=0;
62
+ int i;
63
+
64
+ void reset_arr();
65
+
66
+ void setup() {
67
+ // put your setup code here, to run once:
68
+ Serial.begin(9600);
69
+ memset(data,'\0',128);
70
+ }
71
+
72
+ void loop() {
73
+ // put your main code here, to run repeatedly:
74
+ while (Serial.available() > 0){
75
+ data[count]=Serial.read();
76
+ if(data[count]=='/' || data[count]=='\0'){
77
+ data[count]='\0';
78
+ count=0;
79
+ break;
80
+ }
81
+ else if(count>=127){
82
+ count=0;
83
+ break;
84
+ }
85
+ else {
86
+ count++;
87
+ }
88
+ delayMicroseconds(1025); //1.025[ms]
89
+ }
90
+
91
+ if( (strstr(data,"start")) != NULL){
92
+ Serial.println("ok go");
93
+ flag=1;
94
+ reset_arr();
95
+ }
96
+
97
+ else if( (strstr(data,",")) != NULL){
98
+ for(i=0;i<4;i++){
99
+ if(i==0){
100
+ a[i]=atof( strtok(data,",") );
101
+ }
102
+ else {
103
+ a[i]=atof( strtok(NULL,",") );
104
+ }
105
+ Serial.println(a[i]);
106
+ }
107
+
108
+ Serial.println("end");
109
+ flag=0;
110
+ reset_arr();
111
+ }
112
+
113
+ else if(data[0]!='\0'){
114
+ Serial.println("error");
115
+ reset_arr();
116
+ }
117
+ }
118
+
119
+ void reset_arr(){
120
+ for(i=0;i<sizeof(data);i++){
121
+ data[i]='\0';
122
+ }
123
+ }
124
+ ```
125
+
55
126
  ###試したこと
56
127
  baudrateの値を変えてみたり、parityなどのオプション(?)も設定したりしたが変わらなかった。
57
128
  baudrateの値はArduino と揃えてある。