Как сделать чтобы светодиод горел с яркостью 128 по первому нажатию, а по второму с яркостью 256? Код (C++): const int buttonPin = A0; int n=1; const int led = 9; int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by int buttonState = 0; // variable for reading the pushbutton status void setup() { // put your setup code here, to run once: pinMode(led, OUTPUT); pinMode(buttonPin, INPUT); } void loop() { // put your main code here, to run repeatedly: analogWrite(led, brightness); analogRead(buttonPin); if (buttonState = 1); analogWrite (led, 128); analogWrite(led, brightness); analogRead(buttonPin); if (buttonState = 1); analogWrite (led, 256); }
счётчик нажатий надо и собственно обработка нажатия. их у вас нет. счётчика нет совсем. а вместо нажатия переход состояния отпущена -> нажата) обрабатывается удержание кнопки. как в buttonState попадает значение analogRead? и почему это не digitalRead и к чему всегда истинное выражение с пустой реакцией if(buttonState=1); Короче, почитайте про C++ хотя бы чуть-чуть. Разберите примеры скетчей. У вас нет понятия об операторе присваивания = и сравнения на равенство ==. нет понятия о составных операторах в {}.
Это не сравнение, а присваивание переменной buttonState значения 1. Это равноценно digitalWrite(led, LOW); Т.е. у тебя светодиод будет либо светить вполсилы (128), либо вообще не светить (256).
Я делаю проще: к примеру если z = 0 то светодиод не горит, z = 1 светодиод горит на 128, z = 3 светодиод горит на 255. А кнопкой переключаем z. То есть z = z + 1.
О! Оказывается тут кто-то знаком с приемами программирования манипуляцией состояниями! М.б. вам доводилось программировать машины Поста/Тьюринга?
Сложно не применение операторов. Сложно при построении алгоритма думать о состояниях вычислительной системы. Приходят в универ вчерашние школьники, наслушавшиеся школьной информатики, задаю построить простенький алгоритм - мыслят жонглированием переменными (присвоениями, формулами) так, как будто всю жизнь писали на бейсике и фортране. "SET" у них на лбу выжено клеймом намертво!
Это как раз не очень сложно. Сложно придумать саму вычислительную машину и ее вычислительный аппарат. Да при построении алгоритма надо вспоминать времена английских глаголов. Есть пефект, есть континио, а есть перфект континио