Все те же светодиоды :(
- Войдите на сайт для отправки комментариев
Ср, 28/02/2018 - 11:36
Прошу помощи. Я новичек в программирование и для меня все это очень тяжело дается.
В основе идея имитации запуска ртутной лампы с бракованным пускателем. Когда она запускается и мигает перед тем как загореться окончательно. Имитировать данный эффект должны три светодиода по нажатию кнопки. Первый шаг - горит один светодиод, второй шаг - рандомное мигание 3-х светодиодов, потом имитация сломаной лампы. рандом работает, а имитация переходит в бесконечное мигае светодиодов.
int j=0; int Up_LedPin = 0; int Down_LedPin = 1; int Right_LedPin = 2; int ButPin = 4; int flag = 0; int reg = 0; void setup() { pinMode(Up_LedPin, OUTPUT); pinMode(Down_LedPin, OUTPUT); pinMode(Right_LedPin, OUTPUT); pinMode(ButPin, INPUT); } void loop() { if(digitalRead(ButPin) == HIGH && flag == 0) { delay(100); reg ++; flag = 1; if(reg>1) { reg=0; } } if(digitalRead(ButPin) == LOW && flag == 1) { delay(100); flag = 0; j=0; } //------------------------------- 1 REG ------------------------------ if(reg ==0) { digitalWrite(Up_LedPin, LOW); digitalWrite(Down_LedPin, LOW); digitalWrite(Right_LedPin, HIGH); } //------------------------------- 2 REG ------------------------------ if(reg == 1) { while (j<50) { digitalWrite (random (0,3), HIGH); delay (random (5, 10)); //тут светодиады рандомно мигают digitalWrite (random (0,3), LOW); delay (random (3, 8)); j++; } //тут должна быть имитация сломанной лампы digitalWrite(Up_LedPin, HIGH); digitalWrite(Down_LedPin, HIGH); digitalWrite(Right_LedPin, HIGH); delay(10); digitalWrite(Up_LedPin, LOW); digitalWrite(Down_LedPin, LOW); digitalWrite(Right_LedPin, LOW); delay(100); digitalWrite(Up_LedPin, HIGH); digitalWrite(Down_LedPin, HIGH); digitalWrite(Right_LedPin, HIGH); delay(20); digitalWrite(Up_LedPin, LOW); digitalWrite(Down_LedPin, LOW); digitalWrite(Right_LedPin, LOW); delay(50); digitalWrite(Up_LedPin, HIGH); digitalWrite(Down_LedPin, HIGH); digitalWrite(Right_LedPin, HIGH); delay(100); digitalWrite(Up_LedPin, LOW); digitalWrite(Down_LedPin, LOW); digitalWrite(Right_LedPin, LOW); delay(20); digitalWrite(Up_LedPin, HIGH); digitalWrite(Down_LedPin, HIGH); digitalWrite(Right_LedPin, HIGH); }
Спасибо, кончено, за информацию, только Вы забыли написать в чём именно
Ах да) простите. Проблемма в том, что имитация не работает. в последнем шаге после рандома светодиоды переходят в циклическое мерцание. а по идее должны помигать с разной задержкой как в сломанной лампе и начать гореть пока их не выключить нажатием кнопки.
IvGor, добавляешь переменную boolean lampOn = false;
Так, лампы загорелись в конце, после нажатия кнопки снова входит в первый режим, но на этом стопорится.
До введения lampOn можно было при каждом нажатии менать режим, пока рука не отсохнет))
IvGor, ну сброс lampOn в false уже сам догадайся куда вставить.
Все заработало! Огромное спасибо!!!! тему можно закрыть.
может так интереснее? - больше рандомности
и да, рандом а ардуины тоже кривой - он попросту НЕ рандом
и да, рандом а ардуины тоже кривой - он попросту НЕ рандом
Опять тестикулы танцевать мешают? Да, ампутируйте уже их нахрен!
рестантом перезапускал - результат одинаков...
Ну, вообще-то это всегда и везде так. Чтобы результаты были разными, нужно randomSeed использовать. Но Вам это ни к чему - в других двадцати языках всё и так замечательно.
P.S. Мои просьбы:
1. Опубликовать список из двадцати языков, которые Вы знаете на уровне выше университетского
2. Объяснить, почему Вы не используете Паскаль для программирования Ардуино
остаются в силе. Может, снизойдёте?
P.S. Мои просьбы:
1. Опубликовать список из двадцати языков, которые Вы знаете на уровне выше университетского
2. Объяснить, почему Вы не используете Паскаль для программирования Ардуино
остаются в силе. Может, снизойдёте?
От прицепился, противный. Может некогда.))))
От прицепился, противный. Может некогда.))))
Да, я ж ничо. Не требую типа, а покорнейше прошу :)