Плавный розжиг/затухание RGB светодиода

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Доброго времени суток, уважаемые форумчане.

Требуется посильная помощь...За основу взят скетч от vosara из поста " Независимый 3х-канальный плавный розжиг/затухание светодиодов..."

Привязал туда одну кнопку и RGB светодиод...В основных цветах и белом все работает замечательно.

Вопрос к гуру программирования...Как выставив определенный цвет на RGB светодиоде, (255,155,55) например, плавно зажигать и гасить его именно в этом цвете...без остаточного затухания красного для данного случая...

Прошу...подскажите нужное направление...

Заранее благодарен всем откликнувшимся...

Исходник:

01
#define led1 9
02
#define button1 2
03
#define led2 10
04
#define button2 3
05
#define led3 11
06
#define button3 4
07
uint8_t light1;
08
uint8_t light2;
09
uint8_t light3;
10
uint32_t time;
11
 
12
void setup()
13
{
14
  pinMode(button1, INPUT_PULLUP);      //настариваем пин кнопки на вход
15
  pinMode(led1, OUTPUT);        //настариваем пин светодиода на выход
16
  pinMode(button2, INPUT_PULLUP);      //настариваем пин кнопки на вход
17
  pinMode(led2, OUTPUT);
18
  pinMode(button3, INPUT_PULLUP);      //настариваем пин кнопки на вход
19
  pinMode(led3, OUTPUT);
20
}
21
 
22
void loop(){
23
  if(millis() - time >= 10){
24
    time = millis();
25
    if(!digitalRead(button1) && light1 < 255) light1++;  //кнопка нажата
26
    else if(digitalRead(button1) && light1 > 0) light1--;
27
    if(!digitalRead(button2) && light2 < 255) light2++;  //кнопка нажата
28
    else if(digitalRead(button2) && light2 > 0) light2--;
29
    if(!digitalRead(button3) && light3 < 255) light3++;  //кнопка нажата
30
    else if(digitalRead(button3) && light3 > 0) light3--;
31
  }
32
  analogWrite(led1, light1);
33
  analogWrite(led2, light2);
34
  analogWrite(led3, light3);
35
}
 

PS... Вот я лох...даже код правильно вставит не могу...

vk007
Offline
Зарегистрирован: 16.06.2015

Xtro пишет:

плавно зажигать и гасить его именно в этом цвете...без остаточного затухания красного для данного случая...

Не знаю, как оно в реальности получится с "именно в этом цвете", но логично было бы каждый канал уменьшать/увеличивать пропорционально. Например, для понимания сути, если задан цвет 10, 20, 30 - то за один проход первый канал уменьшаем на 1, второй на 2, третий на 3. В результате все три канала одновременно дойдут до ноля. Для увеличения - аналогично, только коэффициент приращения будет другим.

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

А как???

Перепробывал практически все из известного мне...прошу снисхождения...но я из начинающих...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Интуитивно я и сам это понимаю...что пропорционально надобно...но как впихнуть и куда энту пропорциональность...вот загадка...

vk007
Offline
Зарегистрирован: 16.06.2015

В смысле "куда впихнуть"? Есть же у вас в коде light1++, light1-- и т.д. Что они значат, ведь понимаете?

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

ННу да...light1++ то же самое что и light1=light1+1, т.е. увеличивает значение на единичку...

vk007
Offline
Зарегистрирован: 16.06.2015

Ну вот, а надо увеличивать/уменьшать не на единичку, а на коэффициент, который надо рассчитать перед этим исходя из значений в каналах.

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Опаньки...взрыв мозга...очередной...может просто не тем взрывал?

Буду напрягать мозговые мышцы...

Спасибо за указанный путь...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Эх елькана палька...формулку бы...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А моск наморщить?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

"Ищите на третьей планете " (ЦЫ)

Смотрите функцию map(). http://arduino.ua/ru/prog/Map

Сами разберетесь как применить ?

ЗЫ Только смотрите шепотом, а то припрется безкостыльный старикан и начнет трещать о том, что ардуино IDE с ее функциями, придумана для домохозяек и прочий дименционный бред. 

 

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

brokly...спасибо за ссылку...как применить постараюсь разобраться...но...меня терзают смутные сомнения...без помощи в разжевывании не обойдусь...

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Попробуйте так. Работает следующим образом: Добавляем еще одну кнопку чтобы можно было увеличивать/уменьшать. Кликнули ее 1 раз и своими кнопками увеличуете нужный цвет, кликнули ее еще раз - и можно уменьшать нужный цвет. Так по кругу.


#define led1 9
#define led2 10
#define led3 11
#define button1 2
#define button2 3
#define button3 4
//добавляем переменную regim
bool regim;
bool f_regim;
//Добавляем кнопку с антидребезгом - переключает regim
#define select 5
bool kn_regim = 0;
bool fl_regim = 1;
uint32_t time;

uint8_t light1;
uint8_t light2;
uint8_t light3;
uint32_t pausa;

void setup()
{
  pinMode(button1, INPUT_PULLUP);      //настариваем пин кнопки на вход
  pinMode(button2, INPUT_PULLUP); //настариваем пин кнопки на вход
  pinMode(button3, INPUT_PULLUP);      //настариваем пин кнопки на вход
  pinMode(select, INPUT_PULLUP);
  pinMode(led1, OUTPUT);        //настариваем пин светодиода на выход
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
 
}
//
void loop() {
  //Проверяем кнопку - с Антидребезгом
  if (digitalRead(select) != fl_regim) { //Если сигнал изменился
    fl_regim = !fl_regim;
    time = millis();
  }
  if (kn_regim == digitalRead(select) && millis() - time > 20) {
    kn_regim = !digitalRead(select);
  }

  if (kn_regim && !f_regim) {
    f_regim = 1;
    regim = !regim;
   
  }
  else if(!kn_regim) f_regim = 0;

  if ( millis() - pausa >= 10) {
    pausa = millis();
    if (!digitalRead(button1)) { //кнопка нажата
      if (regim && light1 < 255) light1++;
      else if (!regim && light1 > 0) light1--;
      }
    if (!digitalRead(button2)) { //кнопка нажата
      if (regim && light2 < 255) light2++;
      else if (!regim && light2 > 0) light2--;
      }
    if (!digitalRead(button3)) { //кнопка нажата
      if (regim && light3 < 255) light3++;
      else if (!regim && light3 > 0) light3--;
      }
  }
  analogWrite(led1, light1);
  analogWrite(led2, light2);
  analogWrite(led3, light3);
}

 

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Огромное спасибо за скетч...
Я обязательно попробую его и разберу потом...потереблю короче...подстрою под себя...
Но в моем случае нужна именно первоначальная установка цвета...(100, 255,50) или(100,10,155), сами знаете, вариантов много...и лишь потом плавное увеличение яркости до максимума ( когда кнопка нажата) и плавное уменьшение яркости когда отжата...но именно в нужном цвете...

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Ну хорошо,  нажмете и установите нужный цвет - а когда отпустите цвет уйдет в 0.

На мой взгляд здесь еще без одной кнопки не обойтись чтобы фиксировать установку

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Шаришься по просторам сети и такая тоска берет...
Можно подумать, что все только и занимаются тем, что заставляют RGB светодиоды переливаться всеми цветами радуги и ( или) хаотично менять цвет...
Обидно господа...
А если еще и учесть, что большинство кода написано по-ходу просто от балды...и их предлагают в качестве примеров для начинающих...вообще мрак...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

К сожалению не могу сейчас попробовать...не у компа...
Развлекуха начнется ближе к ночи...
Попробую...поломаю под сеюя че-нить...и отпишусь...

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

КАжется  я понял что надо. А первоначальная будет залита в плату и не менятся?

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Вот-вот-вот!!!

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Т.е. в скетче первоначально устанавливются параметры RGB...а потом кнопочкой управляем...яркостью.
Нажали-удержали...разжигае до максимальной для этого цвета яркости...отпустили...тухнет...медленно...

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

ПОнял!! Тогда мой код не пойдет. Ваш ближе к поставленой задаче

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Моего кода тут нет...
Все это Ваше, vosara...

vk007
Offline
Зарегистрирован: 16.06.2015

Так, что там с map(), изучили? В вашем случае - это самое оно.

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Нужна, как было сказано выше, пропорциональность в управлении ШИМ...
Вот с этой пырпыр...циональностью и буду иметь секас...но только позже...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

До map не добрался...пока...мелочь моя ненаглядная не дает заняться творчеством...

vk007
Offline
Зарегистрирован: 16.06.2015

Ладно. Поскольку значения двух каналов будут всегда зависимыми от третьего, то определимся, что, например, канал R будет "ведущим", а G и B - "ведомыми".

Например,  для случая (100, 255, 50) R = 100 - принимаем за заданное значение (оно же максимальное), а G и B - вычисляем.

считаем: G = map(R, 0, 100, 0, 255)

здесь R - это значение  красного канала (как входящий параметр)

0 и 100 - мин и мах значения для красного канала

0 и 255 - мин и макс значения для зеленого канала

для синего аналогично: B = map(R, 0, 100, 0, 50)

0 и 50 - мин и макс значения для синего канала

т.е. канал R будет приращаться/уменьшаться на 1, а G и B будем считать через map.

В общем, как-то так, вроде бы не ошибся, если ошибся - поправят.

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Спасибо за участие...
Буду постепенно разгребат...

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
/**/
const byte Rpin =/*пин красный*/ 9;
const byte Gpin =/*пин зеленый*/ 10;
const byte Bpin =/*пин синий*/ 11;
const byte btnPin =/*пин кнопки*/ 2;
const byte RGB[] = {/*цвет */255, 155, 55};
byte bright = 255;/*исходная яркость*/
/*вывод цвета на светодиод*/
void viev(byte BR) {
  byte R = map(BR, 0, 255, 0, RGB[0]);
  byte G = map(BR, 0, 255, 0, RGB[1]);
  byte B = map(BR, 0, 255, 0, RGB[2]);
  analogWrite(Rpin, R);
  analogWrite(Gpin, G);
  analogWrite(Bpin, B);
}
//----main()-----------------------
void setup() {
  pinMode(btnPin, INPUT_PULLUP);      //настариваем пин кнопки на вход
  pinMode(Rpin, OUTPUT);        //настариваем пин светодиода на выход
  pinMode(Gpin, OUTPUT);
  pinMode(Bpin, OUTPUT);
  viev(bright);
}
void loop() {
  static unsigned long past = 0;
  unsigned long mill = millis();
  if ( mill - past >= 10) {
    past = mill;
    if (!digitalRead(btnPin) && bright < 255)  ++bright;
    if (digitalRead(btnPin) && bright > 0)     --bright;
    viev(bright);
  }
}
/*Скетч использует 1564 байт (5%) памяти устройства. Всего доступно 30720 байт.
  Глобальные переменные используют 15 байт (0%) динамической памяти, оставляя 2033 байт для локальных переменных. Максимум: 2048 байт.
*/

 

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Огромная благодарность всем, кто откликнулся!!!
Но, к моему большому сожалению не имею возможности сейчас проверить все, что вы выкладываете...доберусь до пепелаца...сразу будет ответ!!!
Еще раз всем огромная благодарность!!!

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Еще раз огромное спасибо всем, а в особенности qwone !!!

Добрался наконец до компа...залил скетч в дуню...

Все работает!!! Все отлично!!!

Теперь можно морщить мозги...затачивать под себя и смотреть откуда ножки растут...

Ну в общем разбираться с map...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Попытался доработать код под себя...

Пишет "Ошибка компиляции для платы Arduino Pro, Arduino Pro Mini"

В чем беда?

Посмотрите...пожалуйста...

const byte Rpin =/*пин красный*/ 3;
const byte Gpin =/*пин зеленый*/ 5;
const byte Bpin =/*пин синий*/ 6;
const byte Rpin1 =/*пин красный*/ 9;
const byte Gpin1 =/*пин зеленый*/ 10;
const byte Bpin1 =/*пин синий*/ 11;
const byte btnPin =/*пин кнопки*/ 2;
const byte btnPin1 =/*пин кнопки*/ 4;
const byte RGB[] = {/*цвет */205, 16, 118};
byte bright = 255;/*исходная яркость*/

/*вывод цвета на светодиод*/
void viev(byte BR){     
  byte R = map(BR, 0, 255, 0, RGB[0]);
  byte G = map(BR, 0, 255, 0, RGB[1]);
  byte B = map(BR, 0, 255, 0, RGB[2]);
  byte R1 = map(BR, 0, 255, 0, RGB[0]);
  byte G1 = map(BR, 0, 255, 0, RGB[1]);
  byte B1 = map(BR, 0, 255, 0, RGB[2]);  
  analogWrite(Rpin, R);
  analogWrite(Gpin, G);
  analogWrite(Bpin, B);  
  analogWrite(Rpin1, R1);
  analogWrite(Gpin1, G1);
  analogWrite(Bpin1, B1);
}
void setup() {
  pinMode(btnPin, INPUT_PULLUP);     //настариваем пин кнопки на вход
  pinMode(btnPin1, INPUT_PULLUP);     //настариваем пин кнопки на вход
  pinMode(Rpin, OUTPUT);        //настариваем пин светодиода на выход
  pinMode(Gpin, OUTPUT);
  pinMode(Bpin, OUTPUT);
  pinMode(Rpin1, OUTPUT);        
  pinMode(Gpin1, OUTPUT);
  pinMode(Bpin1, OUTPUT);
  viev(bright);

}

void loop() {
  static unsigned long past = 0;
  unsigned long mill = millis();
  if ( mill - past >= 20) {
    past = mill;
    if (!digitalRead(btnPin) && bright < 255)  ++bright;
    if (digitalRead(btnPin) && bright > 0)     --bright;
    if (!digitalRead(btnPin1) && bright < 255)  ++bright;
    if (digitalRead(btnPin1) && bright > 0)     --bright;
    viev(bright);
  }
}

 

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

И не судите строго может быть за кривизну кода...ведь начинающий...

kalapanga
Offline
Зарегистрирован: 23.10.2016

Xtro пишет:

Пишет "Ошибка компиляции для платы Arduino Pro, Arduino Pro Mini"

В чем беда?

А какая ошибка-то? Всегда в таких вопросах приводите полный текст сообщения об ошибке! Там же всё написано - что не так и в какой строке.

Переменную B1​ назовите по другому как-нибудь.

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Exit status1... и далее...

Больше ничего...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Спасибо за совет...

Прикольно...получилось...В1 на W...

Теперь с кнопками разьираться буду...а то работают как 2И...

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Опять спешите. Переписал свой скетч с разделом на модули 

/**/
//--------Светодиод 1------------------
const byte Rpin =/*пин красный*/ 9;
const byte Gpin =/*пин зеленый*/ 10;
const byte Bpin =/*пин синий*/ 11;
const byte RGB[] = {/*цвет */255, 155, 55};
byte bright = 255;/*исходная яркость*/
/*вывод цвета на светодиод*/
void viev(byte BR) {
  byte R = map(BR, 0, 255, 0, RGB[0]);
  byte G = map(BR, 0, 255, 0, RGB[1]);
  byte B = map(BR, 0, 255, 0, RGB[2]);
  analogWrite(Rpin, R);
  analogWrite(Gpin, G);
  analogWrite(Bpin, B);
}
//--------Кнопка 1------------------
const byte btnPin =/*пин кнопки*/ 2;
//----main()-----------------------
void setup() {
  //--------Светодиод 1------------------
  pinMode(Rpin, OUTPUT);        //настариваем пин светодиода на выход
  pinMode(Gpin, OUTPUT);
  pinMode(Bpin, OUTPUT);
  viev(bright);
  //--------Кнопка 1------------------
  pinMode(btnPin, INPUT_PULLUP);      //настариваем пин кнопки на вход
}
void loop() {
  //--------Кнопка 1 и светодиод------------------
  static unsigned long past = 0;
  unsigned long mill = millis();
  if ( mill - past >= 10) {
    past = mill;
    if (!digitalRead(btnPin) && bright < 255)  ++bright;
    if (digitalRead(btnPin) && bright > 0)     --bright;
    viev(bright);
  }
}
/*Скетч использует 1564 байт (5%) памяти устройства. Всего доступно 30720 байт.
  Глобальные переменные используют 15 байт (0%) динамической памяти, оставляя 2033 байт для локальных переменных. Максимум: 2048 байт.
*/

А потом это удвоить 

/**/
//--------Светодиод 1------------------
const byte Rpin =/*пин красный*/ 9;
const byte Gpin =/*пин зеленый*/ 10;
const byte Bpin =/*пин синий*/ 11;
const byte RGB[] = {/*цвет */255, 155, 55};
byte bright = 255;/*исходная яркость*/
/*вывод цвета на светодиод*/
void viev(byte BR) {
  byte R = map(BR, 0, 255, 0, RGB[0]);
  byte G = map(BR, 0, 255, 0, RGB[1]);
  byte B = map(BR, 0, 255, 0, RGB[2]);
  analogWrite(Rpin, R);
  analogWrite(Gpin, G);
  analogWrite(Bpin, B);
}
//--------Светодиод 2------------------
const byte R2pin =/*пин красный*/ 3;
const byte G2pin =/*пин зеленый*/ 5;
const byte B2pin =/*пин синий*/ 6;
const byte RGB2[] = {/*цвет */255, 155, 55};
byte bright2 = 255;/*исходная яркость*/
/*вывод цвета на светодиод*/
void viev2(byte BR) {
  byte R = map(BR, 0, 255, 0, RGB[0]);
  byte G = map(BR, 0, 255, 0, RGB[1]);
  byte B = map(BR, 0, 255, 0, RGB[2]);
  analogWrite(R2pin, R);
  analogWrite(G2pin, G);
  analogWrite(B2pin, B);
}
//--------Кнопка 1------------------
const byte btnPin =/*пин кнопки*/ 2;
//--------Кнопка 2------------------
const byte btn2Pin =/*пин кнопки*/ 4;
//----main()-----------------------
void setup() {
  //--------Светодиод 1------------------
  pinMode(Rpin, OUTPUT);        //настариваем пин светодиода на выход
  pinMode(Gpin, OUTPUT);
  pinMode(Bpin, OUTPUT);
  viev(bright);
  //--------Светодиод 2------------------
  pinMode(R2pin, OUTPUT);        //настариваем пин светодиода на выход
  pinMode(G2pin, OUTPUT);
  pinMode(B2pin, OUTPUT);
  viev2(bright2);
  //--------Кнопка 1------------------
  pinMode(btnPin, INPUT_PULLUP);      //настариваем пин кнопки на вход
  //--------Кнопка 2------------------
  pinMode(btn2Pin, INPUT_PULLUP);      //настариваем пин кнопки на вход
}
void loop() {
  unsigned long mill = millis();
  //--------Кнопка 1 и светодиод 1------------------
  static unsigned long past = 0;
  if ( mill - past >= 10) {
    past = mill;
    if (!digitalRead(btnPin) && bright < 255)  ++bright;
    if (digitalRead(btnPin) && bright > 0)     --bright;
    viev(bright);
  }
  //--------Кнопка 2 и светодиод 2------------------
  static unsigned long past2 = 0;
  if ( mill - past2 >= 10) {
    past2 = mill;
    if (!digitalRead(btn2Pin) && bright2 < 255)  ++bright2;
    if (digitalRead(btn2Pin) && bright2 > 0)     --bright2;
    viev2(bright2);
  }
}
/*Скетч использует 1814 байт (5%) памяти устройства. Всего доступно 30720 байт.
  Глобальные переменные используют 19 байт (0%) динамической памяти, оставляя 2029 байт для локальных переменных. Максимум: 2048 байт.
*/

ПС: И что бы этим идиотизмом не заниматься придумали Си с классами =С++

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Уважаемый qwone ...

Я не спешу...просто методом проб и ошибок стремлюсь к истине...

А до Вашего конечного кода мне не хватило шагов пять...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

И еще раз большое спасибо за помощь...

А byte bright и byte bright2 лучше наверное пусть будут равны 0...

чтобы не зажигались после загрузки кода...но это мое мнение делитанта...

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

/**/
//--------------------------
// класс светодиод
class Cl_Led {
  protected:
    byte Rpin;/*пин красный*/
    byte Gpin;/*пин зеленый*/
    byte Bpin;/*пин синий*/
    byte R, G, B; /*цвет*/
    byte bright = 0;
  public:
    /*конструктор*/
    Cl_Led(byte pin1, byte pin2, byte pin3, byte R_, byte G_, byte B_)
      : Rpin(pin1), Gpin(pin2), Bpin(pin3), R(R_), G(G_), B(B_) {}
    /*инициализация*/
    void init() {
      pinMode(Rpin, OUTPUT);        //настариваем пин светодиода на выход
      pinMode(Gpin, OUTPUT);
      pinMode(Bpin, OUTPUT);
      viev();
    }
    /*показать*/
    void viev() {
      byte R = map(bright, 0, 255, 0, R);
      byte G = map(bright, 0, 255, 0, G);
      byte B = map(bright, 0, 255, 0, B);
      analogWrite(Rpin, R);
      analogWrite(Gpin, G);
      analogWrite(Bpin, B);
    }
    /*поярче*/
    void up() {
      if ( bright < 255)  ++bright;
      viev();
    }
    /*потусклее*/
    void down() {
      if (bright > 0)     --bright;
      viev();
    }
};
//-----Компоновка--------------------------
Cl_Led Led1(/*пин красный*/9,/*пин зеленый*/9,/*пин синий*/9,/*RGB*/255, 155, 55);
Cl_Led Led2(/*пин красный*/3,/*пин зеленый*/5,/*пин синий*/6,/*RGB*/255, 155, 55);
const byte btn1Pin =/*пин кнопки1*/ 2;
const byte btn2Pin =/*пин кнопки2*/ 4;
//----main()-----------------------
void setup() {
  Led1.init();
  Led2.init();
  pinMode(btn1Pin, INPUT_PULLUP);      //настраиваем пин кнопки на вход
  pinMode(btn2Pin, INPUT_PULLUP);      //настраиваем пин кнопки на вход
}
void loop() {
  //--------Кнопка 1 и светодиод------------------
  static unsigned long past = 0;
  unsigned long mill = millis();
  if ( mill - past >= 10) {
    past = mill;
    if (!digitalRead(btn1Pin))  Led1.up();
    else Led1.down();
    if (!digitalRead(btn2Pin))  Led2.up();
    else Led2.down();
  }
}
/*
  Скетч использует 1488 байт (4%) памяти устройства. Всего доступно 30720 байт.
  Глобальные переменные используют 27 байт (1%) динамической памяти, оставляя 2021 байт для локальных переменных. Максимум: 2048 байт.
*/
Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

ННуууу...Вы забросали меня исходниками...а сколько мне в энтом разбираться....чтобы тупо не копировать...как делают 90% начинающих ардуняшек...

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Благодарю...и пошел взрывать мозги...есть над чем подумать...

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Разберетесь в этом.Апнете навык программирования. http://arduino.ru/forum/programmirovanie/klassy-arduino-po-qwone-dlya-chainikov

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

И еще раз спасибо...

А последний код не работает... как-то так...но пока не разбирал...и так инфы по самые-самые...ну в смысле бубенцы...