Задание переменной через Serial.port

K2
Offline
Зарегистрирован: 18.03.2018

Помогите сделать программу так что бы переменная val бегала по циклу до следующего изменения значения , а не только один раз как сейчас .
int ledPin = 13;
void setup()
{
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}

void loop() {
while(Serial.available() == 0);
int val = Serial.read()-'0';

digitalWrite(13, HIGH);
delay(val);
digitalWrite(13, LOW);
delay(1000);
}

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

K2 пишет:
так что бы переменная val бегала по циклу до следующего изменения значения , а не только один раз как сейчас .

А тут и "сейчас" - никто никуда не бегает, всё тихо, спокойненько как на кладбище...

K2 пишет:
Помогите сделать программу так

Помогаю: убери точку с запятой.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а код "0" разве равен 0???

evgta
Offline
Зарегистрирован: 02.09.2016

if (Serial.available() > 0) {
Tzad = Serial.parseInt();
byte *x = (byte *)&Tzad;
EEPROM.write(0, x[0]);
EEPROM.write(1, x[1]);}

sadman41
Offline
Зарегистрирован: 19.10.2016

Убийца ЕЕ Прома ))

Он же сейчас копипастнет в луп...

evgta
Offline
Зарегистрирован: 02.09.2016

Ой. Забыл строчки потереть, так он в еепром вроде только после прихода данных пишет

K2
Offline
Зарегистрирован: 18.03.2018

Спасибо , можно по подробнее прокоментировать что к чему ?

byte *x = (byte *)&Tzad;
EEPROM.write(0, x[0]);
EEPROM.write(1, x[1]);

evgta
Offline
Зарегистрирован: 02.09.2016

Эти три строчки для записи двухбайтного числа в еепром, в данном случае они не нужны

b707
Offline
Зарегистрирован: 26.05.2017

K2 пишет:

Спасибо , можно по подробнее прокоментировать что к чему ?

byte *x = (byte *)&Tzad;
EEPROM.write(0, x[0]);
EEPROM.write(1, x[1]);

можно (ДАЖЕ НУЖНО) заменить одной строкой

EEPROM.put(0, Tzad);

мало того. что короче - так еще в методе EEPROM.put запись с встроенным UPDATE - ЕПРОМ будет целее

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

.del

 

 

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

K2 пишет:

Спасибо , можно по подробнее прокоментировать что к чему ?

Это дядя так шутит ... не дождался 1 апреля: советует спалить EEPROM и мечтает посмотреть как вьюноша будет волосы на жопе рвать ;-)

Преккрасная, остроумная шутка! ;-)

 

K2
Offline
Зарегистрирован: 18.03.2018

чуство юмора это хорошо . но в меру 

evgta
Offline
Зарегистрирован: 02.09.2016

какие все прям остроумные, а вот запустить и проверить ну никак


#include <EEPROM.h>
int Tzad = 300;

void setup() {
Serial.begin(9600);

}

void loop() {

delay(500);

 if (Serial.available() > 0) {
 Tzad = Serial.parseInt();
  byte *x = (byte *)&Tzad;
  EEPROM.write(0, x[0]);
Serial.println("kkkkkkk");
  EEPROM.write(1, x[1]); }
}

 

с другой стороны если в сериал слать по 100 раз в секунду, то да, не пойдет

и как говорили лучше write на put заменить