Вижу «на вахту» @ua6em заступил. Сейчас всё сольет, потом потрет свои сообщения и «будет таков»))
Я не знаю как обьяснить им вопрос. ПОчему-то все говорят что выражение не верно. Так грамотически допушенны ошибки. И всех туда же. Да понял я, что допустил опечатку.
Ну не тупой валенок вроде, и это радует. Однако в этом есть и минус - чел явно уверен, что лучше нас знает, что в процессе обучения важно, а что нет ![]()
Ему нужно получить ответы на свои, согласись, весьма бессмысленные вопросы… и все остальное он игнорирует. С таким подходом он все равно тут не задержится.
Не, я катофаны точу…))
Такие «опечатки» в программировании по хуже:
«Казнить нельзя помиловать»
Потому что задаёшь не верные вопросы.
Ты так и не ответил - заработало после исправления ошибки всё или нет?
Да не попадает же! как еще написать, чтоб вы поняли?
Если я изменю ваш код так
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.
«Понеслась!» )))