Ви не увійшли.
Запрацювало! https://youtu.be/OpTujqvTQnk
Велике прохання- поки що код мені не пишіть- спробую сам розібратися.
Дякую за просвітлюючий пендель. Частину уже пофіксив. Зявилися до речі нові питання- але то згодом-вони стосуються логіки роботи порту(сьогодні я ще раз сильно полюбив Джаву, яку з потугами вивчаю за її строгу типізацію, там такі несподівані результати неможливі). Це з відео буде- трохи пізніше. Поки що з цим поробзираюся. Також треба було зробити пауза та виспатися.
частина 1- працює.
Боюся розчарувати, але з частиною 1 також
- повна жопа.
Для початку розпишіть у кожному рядку коментарі що по вашому там виконується. Потім уважно почитайте документацію https://doc.arduino.ua/ru/prog/StringObject на ті функції які там використовуються і подивіться чи виконується те що ви задумали.
Для полегшення аналізу зробіть вивід результату виконання кожної функції в Serial.
результат конмади Write 8 а потім read 8 такий
0
8
221
ad 8
Я бюся вже днів 5 над задачею. частина 1- працює. треба ввести в монітор порта команду в форматі " read ** " де **- адреса комірки памяті яку треба зчитати. Це працює- видаю 255(заводські налуштування комірки-значення за зщамовчуванням. поки в неї не писали) та якщо вручну записати значення- воно відображається коректно.
АЛЕ з записом- повна жопа. треба ввести конанду " Write ** **** "де **-адреса комірки, ****- значення. ДО ВВЕДЕННЯ В ТАКОМУ ФОРМАТІ ЩЕ НЕ ДОРОБИВ ПРОГУ, зараз спрощений вид- " write ** "- де **- значення, які я намагаюся записати в комірку №8
Крім того, що нічого не працює- ще й виконується перший цикл з умовою read - коли вводиться write- як таке може бути взагалі????
if else та else не працює...
#include <EEPROM.h>
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
String str = Serial.readString();
str.trim();
str.toLowerCase();
if(str.indexOf('Read')){
String r = str.substring(str.indexOf('Read')+1);
Serial.println(EEPROM.read(r.toInt()));
}
if(str.indexOf("Write")){
String w = str.substring(str.indexOf('Write')+1 );
String ww = str.substring((str.indexOf('Write')+1), str.length());
Serial.println(ww);
int val = ww.toInt();
EEPROM.put(8, ww);
}
}