int asd = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
String stringOne = "asdfghjytrewqasdfghy100qawsedrft"; // Разбираем строку на знаки и сохраняем в stringOne
Serial.println(stringOne);
asd = stringOne.substring(20,23); // Читаем из stringOne смотрим что между строками 20,23 и сохраняем в asd
Serial.println(asd);
delay(1000);
}
Привет все, какая та не понятная ерунда происходи.
Данные в buffe читаются чётка , а когда разбираем по запятым sscanf то 3- 4 строки разбираются патом сбой и опять 3-4 строки нормально
Как это можно исправить? стр 19-23
<<buffer>>$GPRMC,061528.292,A,7652.2435,N,06055.7680,E,0.02,278.97,300513,,*0D
<<sscanf>>$GPRMC061528.292A7652.2435N06055.7680E0.02278.97300513,*0D
GPG TIME 06:15:28
GPS DATA 30:05:13
<<buffer>>$GPRMC,061529.292,A,7652.2435,N,06055.7680,E,0.07,353.68,300513,,*01
<<sscanf>>$GPRMC061529.292A7652.2435N06055.7680E0.07353.68300513,*01
GPG TIME 06:15:29
GPS DATA 30:05:13
<<buffer>>$GPRMC,061529.292,A,7652.2435,N,06055.7680,E,0.07,353.68,300513,,*01
<<sscanf>>
GPG TIME :0:13
GPS DATA ::
<<buffer>>$GPRMC,061530.292,A,7652.2435,N,06055.7680,E,0.07,331.07,300513,,*04
<<sscanf>>$GPRMC061530.292A7652.2435N06055.7680E0.07331.07300513,*04
GPG TIME 06:15:30
GPS DATA 30:05:13
sscanf(buffer, "%[^','],%[^',']",
stroka_1, stroka_2_vrem ); //разбераем его на части отделенные запятой
}
String stringOne = stroka_2_vrem; // Разбираем строку на знаки и сохраняем в stringOne
chas = stringOne.substring(0,2); // Читаем из stringOne смотрим что между строками 2,5 и сохраняем в asd
String stringOne2 = stroka_2_vrem;
minut= stringOne2.substring(2,4);
int chas6 = atoi(chas);
if (value1 = value6 + chas6);
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: invalid conversion from 'int' to 'const char*'
sketch_may31l:51: error: initializing argument 1 of 'int atoi(const char*)'
sketch_may31l:58: error: 'chas6' was not declared in this scope
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
sscanf(buffer, "%[^','],%[^',']",
stroka_1, stroka_2_vrem ); //разбераем его на части отделенные запятой
}
String stringOne = stroka_2_vrem; // Разбираем строку на знаки и сохраняем в stringOne
chas = stringOne.substring(0,2); // Читаем из stringOne смотрим что между строками 2,5 и сохраняем в asd
String stringOne2 = stroka_2_vrem;
minut= stringOne2.substring(2,4);
int chas6 = atoi(chas);
if (value1 = value6 + chas6);
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: invalid conversion from 'int' to 'const char*'
sketch_may31l:51: error: initializing argument 1 of 'int atoi(const char*)'
sketch_may31l:58: error: 'chas6' was not declared in this scope
Извиняюсь конечно но я всё равно не понимаю где тут её брать , сайт выдаёт код https://github.com/adafruit/SD/blob/master/SD.h .
Обычно когда скачиваешь библиотеку на ардуино она идёт файлом , распаковываешь и вставляешь в папку, или этот код нужна как то преобразовывать в библиотеку
Ну что же я не так то делаю скачал фаил SD-master распаковал , сохранил его в папку ардуино libraries как SD .
Пытаюсь запустить код пишет
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::init(uint8_t, uint8_t, int8_t, int8_t, int8_t)':
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:290: error: 'digitalPinToPort' was not declared in this scope
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:290: error: 'portOutputRegister' was not declared in this scope
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:291: error: 'digitalPinToBitMask' was not declared in this scope
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:294: error: 'portInputRegister' was not declared in this scope
ха. так asd должен быть тоже строкой, а не int.
Исправь пожалуйста код, а то я уже второй день не как не могу разобраться
дык, не int asd=0, а
String asd;
Усё заработало ну вот теперь буду знать спасибо тебе .
Если оставить int asd, то можно написать так:
Подскажите пожалуйста с кода не получается сделать if
Данные приходящие с GPS приёмника дробятся по частям и по знакам
Когда в stroka_3_A_V приходит знак A это значит достоверная информация значит делаем действия в скобках,
А приходит, а действия не делается ст 44-62
почему такая не стабильность даты и времени , входящие данные GPS стабильны, а исходящие путаются иногда?
E::E
::
13:51:16
29:05:13
13:51:17
29:05:13
13:51:18
29:05:13
13:51:19
29:05:13
13:51:20
29:05:13
13:51:21
29:05:13
06:04:5.
::
::
::
13:51:25
29:05:13
13:51:26
29:05:13
13:51:27
29:05:13
13:51:28
29:05:13
13:51:29
29:05:13
13:51:30
29:05:13
06:04:5.
N::
13:51:33
29:05:13
13:51:34
29:05:13
13:51:35
29:05:13
13:51:36
29:05:13
13:51:37
29:05:13
13:51:38
29:05:13
::
::
39:.3:2
::
Привет все, какая та не понятная ерунда происходи.
Данные в buffe читаются чётка , а когда разбираем по запятым sscanf то 3- 4 строки разбираются патом сбой и опять 3-4 строки нормально
Как это можно исправить? стр 19-23
Оказалось вся проблема из за маленькой задержки))))
Подскажите как этот if запустить не как не получается?
Форматы я вроде уже все перебрал
а если так?
if
(stroka_3_A_V ==
'A'
)
в одинарных ковычках.
Так я пробовал вот что пишет
sketch_may30e.cpp: In function 'void loop()':
sketch_may30e:139: error: ISO C++ forbids comparison between pointer and integer
Вот код для примера , отпровляешь в сериал допустим qwe,A, но не какой реакции A возвращается как и положено но действия не происходит
А про String я забыл, в этом причина и была
А про String я забыл, в этом причина и была
неправильно сравнивать строки через ==
используй strcmp
А про String я забыл, в этом причина и была
неправильно сравнивать строки через ==
используй strcmp
Спасиб теперь буду знать
Подскажите пожалуйста почему в этом коде char в int переходит?
А в этом нет, как это можно решить по-другому?
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:36: error: invalid conversion from 'char*' to 'int'
Потому что в первом случае переменная char, а во втором указатель char*
А каким тогда способам можно добавить к текущему времени +6 часов если в int не переводится?
int
asd = atoi(stroka_2_vrem);
A с GPS приёмника время по Гринвичу
Для конвертации:
целые:
int atoi(char*) - переводит строку в число
char* itoa(int) - переводит число в строку
дробныек
float atof(char*) - переводит строку в число
char* ftoa(float) - переводит число в строку
Ещё раз спасибо.
А почему в этом случае не получается так.
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: invalid conversion from 'int' to 'const char*'
sketch_may31l:51: error: initializing argument 1 of 'int atoi(const char*)'
sketch_may31l:58: error: 'chas6' was not declared in this scope
И целые и дробные попробовал
И не как не хочет в int
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
String и char* это разные вещи
Ещё раз спасибо.
А почему в этом случае не получается так.
sketch_may31l.cpp: In function 'void loop()':
sketch_may31l:51: error: invalid conversion from 'int' to 'const char*'
sketch_may31l:51: error: initializing argument 1 of 'int atoi(const char*)'
sketch_may31l:58: error: 'chas6' was not declared in this scope
переменная chas6 не определена
Каким тогда образам в int конвертировать?
Математические функции в String не работают.
Каким тогда образам в int конвертировать?
Математические функции в String не работают.
Читаем что такое String
http://arduino.ru/Reference/StringObject
у этого класса есть специальный метод toCharArray() который дает нам char*
и уже char* передаем в atoi
Спасибо за подсказу всё получилось.
Привет всем , подскажите где взять библиотеку #include <SD.h>, гуглить гуглил может не там искал?
http://lmgtfy.com/?q=arduino+sd+library+download
adafruit/SD · GitHub
https://github.com/adafruit/SD
Собрал вот такую схему для чтения CD карт.
Код не ком. Пишет
sketch_jun04a.cpp:22:16: error: SD.h: No such file or directory
sketch_jun04a:23: error: 'File' does not name a type
sketch_jun04a.cpp: In function 'void setup()':
sketch_jun04a:35: error: 'SD' was not declared in this scope
sketch_jun04a:43: error: 'myFile' was not declared in this scope
sketch_jun04a:43: error: 'SD' was not declared in this scope
sketch_jun04a:43: error: 'FILE_WRITE' was not declared in this scope
я как понял не хватает библиотеки #include <SD.h>
может я и ошибаюсь
Она где та тут а где не понимаю
http://arduino.cc/en/Reference/SD
https://github.com/adafruit/SD
Извиняюсь конечно но я всё равно не понимаю где тут её брать , сайт выдаёт код https://github.com/adafruit/SD/blob/master/SD.h .
Обычно когда скачиваешь библиотеку на ардуино она идёт файлом , распаковываешь и вставляешь в папку, или этот код нужна как то преобразовывать в библиотеку
Или я не туда залез?
https://github.com/adafruit/SD
скачиваем все фаилы и кладем в папку библиотеки тут просто в архив не запихнули
Ну что же я не так то делаю скачал фаил SD-master распаковал , сохранил его в папку ардуино libraries как SD .
Пытаюсь запустить код пишет
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp: In member function 'uint8_t Sd2Card::init(uint8_t, uint8_t, int8_t, int8_t, int8_t)':
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:290: error: 'digitalPinToPort' was not declared in this scope
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:290: error: 'portOutputRegister' was not declared in this scope
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:291: error: 'digitalPinToBitMask' was not declared in this scope
C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\SD\utility\Sd2Card.cpp:294: error: 'portInputRegister' was not declared in this scope
Подскажите в чём проблема , библиотеку поставил SD и не один скеч не работает с ней
в папке C:\Documents and Settings\К\Рабочий стол\ARDUINO C++\arduino-0021\libraries\
Должна быть папка SD в ней как минимум два файла SD.cpp и SD.h
Регистр верхний везде.
После чего выбираем в IDE Скетч->Импортировать библиотеку->SD
В скетче появится строка
Строка появляется но скеч не запускается в 0021 вер , скачал новую версию 1.0.4 там всё заработало видимо старая версия не поддерживает.
Привет всем , пытаюсь подцепить карту SD по этим примерам но ардуино не как не хочет
с ней работать вроде всё правильно подключаю и всё не как не робит пишет Initializing SD card...initialization failed!
http://habrahabr.ru/post/115176/
http://www.polesite.ru/?p=1193
Привет всем , пытаюсь подцепить карту SD по этим примерам
Я извиняюсь, Вы тему топика когда послений раз смотрели? Или у Вас SD карта на одном модуле с часами DS1307? Я таких еще не видел...
Да я тоже смотрю им уже пофиг на часы и никого не парит, что кто то их поиски по сд карте вряд ли кто прочитает
Привет всем , пытаюсь подцепить карту SD по этим примерам
Я извиняюсь, Вы тему топика когда послений раз смотрели? Или у Вас SD карта на одном модуле с часами DS1307? Я таких еще не видел...
ну так то это один проект и всё на одной плате будит , ну если вам так будит удобней я создам новую тему.