Arduinoに可変抵抗器を接続し、アナログ値から回転角を求め、Raspberry PiとUSBケーブルで接続し、シリアル通信でこのデータを送信したいと考えています。
現在、データの送信及び、ラズパイ側のターミナルでデータ表示までできているのですが、データ表示の間隔が所望のものより長くなっていて、Arduino側のloopのdelay値を100ms,ラズパイ側のtime.sleepを0.1sとしているのですが、データ表示の間隔は1s以上かかっています。
この問題の解決策を教えてください。
※補足ですが、ラズパイ側ではデータ受信、表示と並行してCSV出力を行っています。
Arduino
1float val = 0; 2 3void setup() { 4 Serial.begin(9600); 5} 6 7void loop() { 8int a = 0; 9if(a < 100){ 10 11 val = analogRead(1); 12 int deg = 360* val / 1023; 13 Serial.println(deg); 14 Serial.write(deg); 15 a++; 16 delay(100); 17} 18}
python
1#coding: utf-8 2import serial 3import time 4import csv 5 6f = open('data.csv','ab') 7 8csvWriter = csv.writer(f) 9 10 11for num in range(1, 100): 12 listData = [] 13 ser = serial.Serial('/dev/ttyACM0', 9600) 14 str = ser.read(3) 15 print(str) 16 time.sleep(0.1) 17 ser.close() 18 19f.close() 20/csv出力部分は消しています
回答2件
あなたの回答
tips
プレビュー