Вопрос по скетчу

Вижу «на вахту» @ua6em заступил. Сейчас всё сольет, потом потрет свои сообщения и «будет таков»))

Я не знаю как обьяснить им вопрос. ПОчему-то все говорят что выражение не верно. Так грамотически допушенны ошибки. И всех туда же. Да понял я, что допустил опечатку.

Ну не тупой валенок вроде, и это радует. Однако в этом есть и минус - чел явно уверен, что лучше нас знает, что в процессе обучения важно, а что нет :slight_smile:

Ему нужно получить ответы на свои, согласись, весьма бессмысленные вопросы… и все остальное он игнорирует. С таким подходом он все равно тут не задержится.

1 лайк

Не, я катофаны точу…))

1 лайк

Такие «опечатки» в программировании по хуже:
«Казнить нельзя помиловать»

Потому что задаёшь не верные вопросы.
Ты так и не ответил - заработало после исправления ошибки всё или нет?

Да не попадает же! как еще написать, чтоб вы поняли?

Если я изменю ваш код так

if ((val == HIGH) && (old_val == LOW)) {
state = 222;
}

то теперь откуда у вас 222 будет “попадать”?

Вот как пьяные до радио. Приму как данность. что state хер поймешь от куда получает результат выражения if и забью уже. С вами общение напоминает наркоманскую загадку : “Летят два крокодила, один зеленный. Другой на север”

Возможно, на данном этапе - это правильное решение!

Твоя главная ошибка, что ты, возможно пока, не понимаешь разницу между присвоить ‘=’ и равно ‘==’, гугли

Ответьте мне на вопрос, с чего вы взяли, что значение state попадает в нее из условия? Только потому что ИСТИНА - 1 ? Ну так это просто совпадение.

Вы не обижайтесь, но у меня такое впечатление, что вы никогда не программировали ни на каком языке, даже на бейсике в школе или институте.
Если так - начните с базы - что такое условие

Потому что мы оперируем терминами программирования, а Вы - терминами «какой-то наркоманской общины»))

Вообще с книги по программированию нужно начинать.

ДА не программировал. И по ходу есть вопросы, которые не смогу обьяснить.

Скачай книгу и просто читай:

Просто нажми там кнопку Скачать.

короче, если не понимаете, то пока просто примите - переменная state ничего не получает из строки

if ((val == HIGH) && (old_val == LOW)) {

Соответственно, ваш первый вопрос - просто набор бессмысленных слов.

Второй не сильно лучше. Вы просто не обратили внимание, что условия, где миллис присваивается, и где потом вычитается - разные. Так что никакого нуля там не будет.

я не понял вопроса, но этой строкой ты state присваиваешь значение выражения,
поправил скетч чтобы читабельно было:

const int LED = 9;
const int BUTTON = 7;
int val = 0;
int old_val = 0;
int state = 0;
int brightness = 128;
unsigned long startTime = 0;

void setup() {
  pinMode (LED, OUTPUT);
  pinMode (BUTTON, INPUT);
}

void loop() {
  val = digitalRead (BUTTON);
  if ((val == HIGH) && (old_val == LOW)) {
    state = 1 - state;
    startTime = millis();
    delay (10);
  }
  if ((val == HIGH) && (old_val == HIGH)) {
    if (state == 1 && (millis() - startTime) > 500) {
      brightness++;
      delay(10);
      if (brightness > 255) {
        brightness = 0;
      }
    }
  }
  old_val = val;
  if (state == 1) {
    analogWrite (LED, brightness);
  } else {
    analogWrite (LED, 0);
  }
}

«Понеслась?»))

Нет такого. В начале кода state = 0; А в выражении
state = 1 - state; меняет значение на противоположное при каждом проходе цикла loop();
Т.е. если state == 1, то 1-1 = 0; а если state == 0, то 1-0 = 1.

«Понеслась!» )))