может кому проигодится
- Войдите на сайт для отправки комментариев
Вс, 04/09/2016 - 22:11
нужно было записать данные с двух аналоговых датчиков .
в сети мало готового , но посмотрел видео джереми блума и подстроил его скеч под свои нужды .
решил поделится : критика приветствуется .
#include <SD.h> int CS_pin = 10; int pow_pin = 8; int pot_pin = 2; int pot1_pin = 1; float refresh_rate = 0.0; long id = 1; void setup() { Serial.begin(9600); Serial.println("Initializing Card"); pinMode(CS_pin, OUTPUT); pinMode(pow_pin, OUTPUT); digitalWrite(pow_pin, HIGH); if (!SD.begin(CS_pin)) { Serial.println("Card Failure"); return; } Serial.println("Card Ready"); File commandFile = SD.open("COMMANDS.txt"); if (commandFile) { Serial.println("Reading Command File"); float decade = pow(10, (commandFile.available() - 1)); while(commandFile.available()) { float temp = (commandFile.read() - '0'); refresh_rate = temp*decade+refresh_rate; decade = decade/10; } Serial.print("Refresh Rate = "); Serial.print(refresh_rate); Serial.println("ms"); commandFile.close(); } else { Serial.println("Could not read command file."); return; } File logFile = SD.open("LOG.csv", FILE_WRITE); if (logFile) { logFile.println(", ,"); String header = "ID, pot, pot1"; logFile.println(header); logFile.close(); Serial.println(header); } else { Serial.println("Couldn't open log file"); } } void loop() { int pot_val = analogRead(pot_pin); int pot1_val = analogRead(pot1_pin); String dataString = String(id) + ", " + String(pot_val) + ", " + String(pot1_val); File logFile = SD.open("LOG.csv", FILE_WRITE); if (logFile) { logFile.println(dataString); logFile.close(); Serial.println(dataString); } else { Serial.println("Couldn't open log file"); } id++; delay(refresh_rate); }
в commandst на sd карту нужно зарание записать время через сколко будет записыватся log
02 - 05: Добавь const
36: Refresh period
25-45: Прочитай про преобразование строки в число.
Спасибо почитаю а по поводу const наверное коряво скопировал .
Доброго времени . Скажите почему нужно const ,
почему refresh period,
И возможно ли записывать на sd быстрей чем милисекунды
И еще момент не записывало без компютера пришлось убрать все Serial и commandFile почему ?
сейчас работает через delay