Повтор части кода
- Войдите на сайт для отправки комментариев
Пнд, 28/11/2016 - 01:01
Привет Всем!
Народ, помогите пожалуйста! В общем, нужно сделать повтор части кода. Например, чтобы красный диод мигал, а не моргнул 1 раз и "сдох".
unsigned long x; int r = 2; //Красный диод int g = 3; //Зелёный диод int b = 4; //Синий диод int d = 1; void setup() { Serial.begin(9600); Serial.setTimeout(4); pinMode(r, OUTPUT); pinMode(g, OUTPUT); pinMode(b, OUTPUT); } void loop() { if (Serial.available()) { x = Serial.parseInt(); //Красный if (x>=2 && x<=100) { d = 101-x; { analogWrite(r, 0); analogWrite(g, 255); analogWrite(b, 255); delay(d); analogWrite(r, 255); delay(d); } } //Зелёный if (x>=102 && x<=200) { d = 201-x; { analogWrite(r, 255); analogWrite(g, 0); analogWrite(b, 255); delay(d); analogWrite(g, 255); delay(d); } } //Синий if (x>=202 && x<=300) { d = 301-x; { analogWrite(r, 255); analogWrite(g, 255); analogWrite(b, 0); delay(d); analogWrite(b, 255); delay(d); } } } }
Забыл дописать: команды идут через блютуз модуль HC-05, со смартфона.
Закрывающую фигурную скобку из строки 69 вставьте после строки 26.
неа, всё так же, 1 раз моргнул и погас
про скобку правильно сказали, и почему analogWrite ?
уверены, что PWM есть на этих пинах ?
В двух словах задачу то опишите.
Переместив скобку получил тоже самое, ничего не изменилось. Суть следующая: имеется Arduino Mega 2560, HC-05, 12 RGB диодов, смартфон и программа, сделанная в App Invertor'e. Чтобы упростить код оставил только 1 лампочку. Плавное изменение цвета я делать не буду, интересует только ВКЛ/ВЫКЛ. Управление будет осуществляться, соответственно, со смартфона, 3-мя слайдерами. PWM на пинах 2-13.
Как то раз получилось сделать через оператор "return", но как так вышло так и не понял. Просто игрался со скобками и случайно вышло.
Он моргает один раз после каждого поступления команды с модуля?
Нуу хочу чтоб мигал постоянно. Двинул слайдер красного диода - мигает, например, чаще. Двинул в другую - реже. Двинул слайдер зелёного диода - замигал зелёный. Как то так)
На сколько я могу судить у тебя код считывает целое число из сериал. Далее ты иксу присваиваешь значение. Далее ты прогоняешь все по ифам. а потом ты ждешь нового значения в сериал и цыкл у тебя замкнут на это ожидание. по этому при приходе какого-либо значения у тебя красный/синий/желтый моргает только один раз.
Тебе надо уйти от вечного ожидания значения. я ыижу это так:
Дописал "else"... И тут понял: косяк были и в коде, и в приложении. Скачал Bluetooth Terminal, ввёл "50" и лампочка замигала. Сейчас всё работает. Спасибо всем, кто откликнулся, не оставили в беде! :-)