помогите написать код
- Войдите на сайт для отправки комментариев
Пнд, 18/03/2019 - 18:50
нужно , что-бы при повторном нажатии на кнопку загорался соседний светодиод
вот
int button = 2; // кнопка
int led1 = 8;// певый светодиод
int led2 = 9;// второй светодиод
int led3 = 10;// третий светодиод
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(button, INPUT);
}
void loop(){
if (digitalRead(button) == HIGH) {
digitalWrite(led1, HIGH);
}
}
https://www.tinkercad.com/things/8Xt66njBHGj
200 рублей. согласны?
?
?
что не понятного ? нужно
вот
так за деньги много кто может )))
Я не возьмусь за 200, за 2000 подумаю еще. Так что налетайте пока дешево!
Эта красивее
Эта красивее
не..., ну энто если только на чистом/честном.
На ассемблере с лямбда-функциями реального времени и захватом чужого таймера.
На ассемблере с лямбда-функциями реального времени и захватом чужого таймера.
точно... и еще это, побегом из виртуалки :)
ТС, могу написать на Брейнфаке. Устроит?
Это точно, песочница? andrew12354 Попробуйте добавить счетчик (i) нажатий кнопки от 1 до 3 в зависимости чему равна (i) зажигать светодиод например i = 1 диод № 1 i = 2 диод №2 и так далее
Это точно, песочница? andrew12354 Попробуйте добавить счетчик (i) нажатий кнопки от 1 до 3 в зависимости чему равна (i) зажигать светодиод например i = 1 диод № 1 i = 2 диод №2 и так далее
ну так че полный код не осилили ? имено его ждет ТС, а вы тут со своими дурацкими счетчиками (i)
Так я вроде предложил полный код. Похоже, не нужен :(
Не так оно всё просто ... случись дрожание рук - получим генератор случайных чисел.
Может человек ждал волшебного пенделя со ссылкой - где копать. А потом - может вы все и правы. Вернется - раскажет.
Вот и пендель http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku.
Вроде по теме.
Это точно, песочница? andrew12354 Попробуйте добавить счетчик (i) нажатий кнопки от 1 до 3 в зависимости чему равна (i) зажигать светодиод например i = 1 диод № 1 i = 2 диод №2 и так далее
а если 4-й раз нажать кнопку то???
Видимо я единственный ТС-а не понял, что хочет, зачем, почему кнопку притянул к земле а не PULLUP )))
я единственный ТС-а не понял, что хочет, зачем, почему кнопку притянул к земле
А я не понял какой именно "соседний светодиод".
Вот и пендель http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku.
Вроде по теме.
Если он и в той теме, прочитает столько же, сколько в этой ветке, придется давать пенделя посылающему.((((
я единственный ТС-а не понял, что хочет, зачем, почему кнопку притянул к земле
А я не понял какой именно "соседний светодиод".
Логично )))
Это точно, песочница? andrew12354 Попробуйте добавить счетчик (i) нажатий кнопки от 1 до 3 в зависимости чему равна (i) зажигать светодиод например i = 1 диод № 1 i = 2 диод №2 и так далее
Так что ли???
01
int
button = 2;
// кнопка
02
int
led1 = 8;
// первый светодиод
03
int
led2 = 9;
// второй светодиод
04
int
led3 = 10;
// третий светодиод
05
06
byte
i = 0;
// счетчик
07
byte
f_b = 0;
// флаг нажатия кнопки
08
09
void
setup
() {
10
pinMode(led1, OUTPUT);
11
pinMode(led2, OUTPUT);
12
pinMode(led3, OUTPUT);
13
pinMode(button, INPUT);
14
}
15
16
void
loop
(){
17
if
(digitalRead(button) == HIGH && f_b == 0) {
18
f_b=1;
19
digitalWrite(i+7, LOW);
20
i++;
21
if
(i>3) {i=1;}
22
digitalWrite(i+7, HIGH);
23
}
24
if
(digitalRead(button) == LOW && f_b == 1) {
25
f_b=0;
26
}
27
}
Код ua6em похоже скопипастил и не совсем понимает что происходит в if-ах
Так что ли???
void loop(){
01
if
(digitalRead(button) == HIGH && f_b == 0) {
02
f_b=1;
03
digitalWrite(i+7, LOW);
04
i++;
05
if
(i>3) {i=1;}
06
digitalWrite(i+7, HIGH);
07
}
08
if
(digitalRead(button) == LOW && f_b == 1) {
09
f_b=0;
10
}
11
}
Я предлогаю (мы ведь только учимся :) ) для простоты избавиться от мозголомных IF (){}.
Тоесть в :
1
void
loop
(){
2
if
(digitalRead(button) == HIGH && f_b == 0) {
3
f_b=1;
4
digitalWrite(i+7, LOW);
5
i++;
6
if
(i>3) {i=1;}
Для начала Вам ua6em написать коментарии к приведенным выше сторокам кода. И зачем нам флажок f_b?
Вот мой наивный код:
1
if
(digitalRead(button) == HIGH) {
2
i =i + 1;
//получив нажатие кнопки - увеличили счетчик.
3
}
а дальше я так-же наивно что-то с этим делал ;)
Спасибо , так намного проще .
Спасибо , так намного проще .
За что? А если проще то ваш код - в студию, тоесть сюда. Плиз.
Код ua6em похоже скопипастил и не совсем понимает что происходит в if-ах
Так что ли???
void loop(){
01
if
(digitalRead(button) == HIGH && f_b == 0) {
02
f_b=1;
03
digitalWrite(i+7, LOW);
04
i++;
05
if
(i>3) {i=1;}
06
digitalWrite(i+7, HIGH);
07
}
08
if
(digitalRead(button) == LOW && f_b == 1) {
09
f_b=0;
10
}
11
}
Я предлогаю (мы ведь только учимся :) ) для простоты избавиться от мозголомных IF (){}.
Тоесть в :
1
void
loop
(){
2
if
(digitalRead(button) == HIGH && f_b == 0) {
3
f_b=1;
4
digitalWrite(i+7, LOW);
5
i++;
6
if
(i>3) {i=1;}
Для начала Вам ua6em написать коментарии к приведенным выше сторокам кода. И зачем нам флажок f_b?
Вот мой наивный код:
1
if
(digitalRead(button) == HIGH) {
2
i =i + 1;
//получив нажатие кнопки - увеличили счетчик.
3
}
а дальше я так-же наивно что-то с этим делал ;)
естественно скопипастил у ТС, не самому жеж писать, кое чего дополнил...
Вы действительно не понимаете зачем там переменная для флага нажатия - отжатия кнопки???
К ТС-у только один вопрос, надо ли после зажигания 3-го светодиода всё гасить или зажигать первый, если надо гасить, то присваиваем i=0...
Да, пин 7 надо тоже обозначить как выходной...и да...if это самая элементарная конструкция )))
А вот еще . Как добавить , что-бы с помощью Serial Monitor можно было менять яркость светодиода , с использованием аналогового пина.
Это уже на 600р тянет
А вот обьяснить аналоговому пину, что он умеет яркость менять - бесценна.
Спасибо , так намного проще .
и, что? работает? )))
с использованием (
i =i + 1
) , даА вот еще . Как добавить , что-бы с помощью Serial Monitor можно было менять яркость светодиода , с использованием аналогового пина.
Я пас!!! Тут без вскрытия чипа с последующим переконфигурированием не обойтись
Да ну нах.
с использованием (
i =i + 1
) , даi++ на два символа меньше набирать
ну что EKate - дерзай, следующей хотелкой будет NRF и т.д. :)
Да ну нах.
неужели можно фьюзами? да ну нах! круто, если это так
и, что? работает? )))
ну как-то оно, безусловно, работает :) Во всяком случае, единицу прибаляет :)
Товарищу EKate я бы посоветовал собрать простенький макет из кнопки и пары светодиодов и попробовать свой код :)
и, что? работает? )))
ну как-то оно, безусловно, работает :) Во всяком случае, единицу прибаляет :)
Товарищу EKate я бы посоветовал собрать простенький макет из кнопки и пары светодиодов и попробовать свой код :)
из двух может и не поймет, вот на трёх - однозначно лажа вылезет )))
из двух может и не поймет, вот на трёх - однозначно лажа вылезет )))
можно вообще светодиоды не подключать, вывести i в Сериал пожалуй даже нагляднее будет
из двух может и не поймет, вот на трёх - однозначно лажа вылезет )))
поймет, когда при нажатии просто два диода гореть будут и все, а при отпускании как random пошлет.
из двух может и не поймет, вот на трёх - однозначно лажа вылезет )))
можно вообще светодиоды не подключать, вывести i в Сериал пожалуй даже нагляднее будет
вопрос, а цитирование чужого кода не тянет на плагиат? )))
Мое мнение такое: если мы нажали на кнопку то выполнить действие светодиод.
если мы получили еще нажатие то гасим предидущий и зажигаем следующий.
это мои наивные рассуждения. но можно сложнее:
если мы нжали на кнопку то выполнить действие светодиод. и проверить состояние: порт на выход? горит : нет.
если мы получили еще нажатие то гасим предидущий и зажигаем следующий.
в обоих случаях мне не важно что с кнопкой и св.диодом он или светится или нет - так я понял условия.
и, что? работает? )))
ну как-то оно, безусловно, работает :) Во всяком случае, единицу прибаляет :)
Товарищу EKate я бы посоветовал собрать простенький макет из кнопки и пары светодиодов и попробовать свой код :)
из двух может и не поймет, вот на трёх - однозначно лажа вылезет )))
Товарищ уже проверял но только в протеусе.
есть два варианта скетча(решено 2мя путями). оба работают в симуляторе. :) в железе не проверял.
есть два варианта скетча(решено 2мя путями). оба работают в симуляторе. :) в железе не проверял.
а логику включить?
Если вы о - симуляция и железо не всегда дают одинаковый результат. То об этом недоразумении я осведомлен.
Если вы о - симуляция и железо не всегда дают одинаковый результат. То об этом недоразумении я осведомлен.
Знать мало, а применять?
есть два варианта скетча(решено 2мя путями). оба работают в симуляторе. :) в железе не проверял.
Дайте поставлю вопрос иначе, сколько раз выполниться луп, пока вы держите кнопку, по вашему мнению?
есть два варианта скетча(решено 2мя путями). оба работают в симуляторе. :) в железе не проверял.
Дайте поставлю вопрос иначе, сколько раз выполниться луп, пока вы держите кнопку, по вашему мнению?
ну зачем так жестоко )))
PS - Код ua6em похоже скопипастил и не совсем понимает что происходит в if-ах
Странно, куда-то наивный писатель пропал. Понял, что х-ю сморозил и на Радиста, не в тему наехал?