Заменить RGB светодиод тремя обычными.

RussBuh
Offline
Зарегистрирован: 19.11.2019

ДЕНЬ ДОБРЫЙ ВСЕМ. РЕБЯТА ПОДСКАЖИТЕ, Я МОГУ ЗАМЕНИТЬ RGB СВЕТОДИОД, ТРЕМЯ ОБЫЧНЫМИ.

И ЕСЛИ МОГУ, ТО ПОЧЕМУ НЕ РАБОТАЕТ СКЕТЧ , ДЛЯ УПРАВЛЕНИЯ RGB СВЕТОДИОДОМ, КНОПКОЙ. СПАСИБО.[code]

[/code]
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Нет, не можешь.  Я запретил. 

Пока орать не перестанешь и скетч вставлять не научишься. 

RussBuh
Offline
Зарегистрирован: 19.11.2019

RussBuh пишет:

ДЕНЬ ДОБРЫЙ ВСЕМ. РЕБЯТА ПОДСКАЖИТЕ, Я МОГУ ЗАМЕНИТЬ RGB СВЕТОДИОД, ТРЕМЯ ОБЫЧНЫМИ.

И ЕСЛИ МОГУ, ТО ПОЧЕМУ НЕ РАБОТАЕТ СКЕТЧ , ДЛЯ УПРАВЛЕНИЯ RGB СВЕТОДИОДОМ, КНОПКОЙ. СПАСИБО.[code]

[/code]

В прошлый раз так же воткнул, никто ничо не сказал. 

bwn
Offline
Зарегистрирован: 25.08.2014

RussBuh пишет:

В прошлый раз так же воткнул, никто ничо не сказал. 

Свезло. Тему приколоченную почитайте, узнайте как код вставлять.

RussBuh
Offline
Зарегистрирован: 19.11.2019

И вообще, я ещё зелень зелёная. Не знаю, что у вас и как.

bwn
Offline
Зарегистрирован: 25.08.2014

DetSimen пишет:

Нет, не можешь.  Я запретил. 

Клапа стал лицензии продавать?)))

RussBuh
Offline
Зарегистрирован: 19.11.2019

RussBuh пишет:



int BLED=10;
int GLED=9;
int WLED=8;
int BUTTON=2;
boolean currentButton=LOW;
boolean lastButton=LOW;
int ledMode=0;

void setup() {
  pinMode(BLED, OUTPUT);
  pinMode(GLED, OUTPUT);
  pinMode(WLED, OUTPUT);
  pinMode(BUTTON, INPUT);
}
boolean debounce(boolean last)
{
  boolean current=digitalRead(BUTTON);
  if (last!=current)
  {
    delay(5);
    current=digitalRead(BUTTON);
    return current;
  }
}

void setMode(int mode)
{
if (mode==1)
{
  digitalWrite(BLED, HIGH);
  digitalWrite(GLED, LOW);
  digitalWrite(WLED, LOW);

}
else if (mode==2)
{
  digitalWrite(BLED, LOW);
  digitalWrite(GLED,HIGH);
  digitalWrite(WLED, LOW);
  
}
else if (mode==3)
{
   digitalWrite(BLED, LOW);
  digitalWrite(GLED, LOW);
  digitalWrite(WLED, HIGH);
   
}

else if (mode==4)
{
   analogWrite(BLED, 127);
  analogWrite(GLED, 0);
  analogWrite(WLED, 127);
  
}
}



void loop() {
 currentButton=debounce(lastButton);
 if (lastButton==LOW && currentButton==HIGH)
 {
    ledMode++;
 }
 currentButton=lastButton;
 if (ledMode==5)
 ledMode=0;
 setMode(ledMode);
}

 

Так?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

RussBuh пишет:

Я МОГУ ЗАМЕНИТЬ RGB СВЕТОДИОД, ТРЕМЯ ОБЫЧНЫМИ.

Видимо, нет. Могли бы - заменили бы.

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

bwn пишет:

DetSimen пишет:

Нет, не можешь.  Я запретил. 

Клапа стал лицензии продавать?)))

пока его нет, я у него несколько запретов покрал. :) 

bwn
Offline
Зарегистрирован: 25.08.2014

RussBuh пишет:

Так?

Уху, а больше десятка строчек, есть галочка "свернуть".

P/S Исходя из вопроса, на RGB диоде это работало.))))

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

RussBuh, кроме правильно вставленного кода неплохо бы ещё писать, что от скетча ожидается и чем реальность от ожиданий отличается. Перед читающими ведь диоды не мигают.

В 67 строке не надо переменные местами поменять?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

аналограйт для 8-го пина не применим однака, если выбрать пины 9,10 и 11 то скетч работоспособен на большинстве распространённых ардуин

RussBuh
Offline
Зарегистрирован: 19.11.2019

Реальность невесёлая. Светодиоды вообще на кнопку не реагируют. Сами по себе, то загораются, то гаснут, переключаясь между собой, без всякого алгоритма. 

Строчки поменял, не помогло.

RussBuh
Offline
Зарегистрирован: 19.11.2019

Поменял. Ноль эмоций.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

RussBuh пишет:

Реальность невесёлая. Светодиоды вообще на кнопку не реагируют. Сами по себе, то загораются, то гаснут, переключаясь между собой, без всякого алгоритма. 

Почему невесёлая? Самое то к новому году!

RussBuh
Offline
Зарегистрирован: 19.11.2019

RussBuh пишет:

Поменял. Ноль эмоций.

С 8 на 11

RussBuh
Offline
Зарегистрирован: 19.11.2019

ЕвгенийП пишет:

RussBuh пишет:

Реальность невесёлая. Светодиоды вообще на кнопку не реагируют. Сами по себе, то загораются, то гаснут, переключаясь между собой, без всякого алгоритма. 

Почему невесёлая? Самое то к новому году!

На новый год другое веселье.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

bwn пишет:

Клапа стал лицензии продавать?)))

...франшиза, ёпта.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

RussBuh пишет:

И ЕСЛИ МОГУ, ТО ПОЧЕМУ НЕ РАБОТАЕТ СКЕТЧ , ДЛЯ УПРАВЛЕНИЯ RGB СВЕТОДИОДОМ, КНОПКОЙ. СПАСИБО.

ну, потому, что или используй готовое для кнопок, или - в Сургут, пешком, к шаману ягель собирать.

#556

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

Ну а кнопка как подключена? От пина 2 куда?

RussBuh
Offline
Зарегистрирован: 19.11.2019

bwn пишет:

RussBuh пишет:

Так?

Уху, а больше десятка строчек, есть галочка "свернуть".

P/S Исходя из вопроса, на RGB диоде это работало.))))

С одним светодиодом работает. Прекрасно реагирует на кнопку. Но вот три уже не катит.

RussBuh
Offline
Зарегистрирован: 19.11.2019

kalapanga пишет:

Ну а кнопка как подключена? От пина 2 куда?

на минус через стягивающий резистор.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

RussBuh пишет:
на минус через стягивающий резистор.

Чего? Схему можно?

sadman41
Offline
Зарегистрирован: 19.10.2016

Светодиоды киловаттные, поди. Резистор не тянет всех троих.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

Светодиоды киловаттные, поди. Резистор не тянет всех троих.

неужели он все светодиоды на один резистор повесил? нужно каждый на свой ну или последовательно с пином небольшой резистор

RussBuh
Offline
Зарегистрирован: 19.11.2019

ua6em пишет:

sadman41 пишет:

Светодиоды киловаттные, поди. Резистор не тянет всех троих.

неужели он все светодиоды на один резистор повесил? нужно каждый на свой ну или последовательно с пином небольшой резистор

на каждый по резистору. 220 оМ

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Попробую ещё раз

ЕвгенийП пишет:

Схему можно?

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

ЕвгенийП пишет:

Попробую ещё раз

ЕвгенийП пишет:

Схему можно?

нет.

RussBuh
Offline
Зарегистрирован: 19.11.2019

Всем привет. Заработала схемка. Всё-таки китайская Ардуина слабовата ещё по качеству. Мама-контакты быстро разбалтываются, пришлось паяться на-прямую.

RussBuh
Offline
Зарегистрирован: 19.11.2019

RussBuh пишет:

Всем привет. Заработала схемка. Всё-таки китайская Ардуина слабовата ещё по качеству. Мама-контакты быстро разбалтываются, пришлось паяться на-прямую.

Спасибо всем кто подсказывал.

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

RussBuh пишет:

Всем привет. Заработала схемка. Всё-таки китайская Ардуина слабовата ещё по качеству. Мама-контакты быстро разбалтываются, пришлось паяться на-прямую.

та, да - не то, что русская. кувалдой не сломаешь.

RussBuh
Offline
Зарегистрирован: 19.11.2019

точно.

RussBuh
Offline
Зарегистрирован: 19.11.2019
[code]
int BLED=9;
int WLED=10;
int VLED=11;
int BUTTON=2;
int MUTTON=4;
boolean currentButton=LOW;
boolean lastButton=LOW;
int ledMode=0;

void setup() {
  pinMode(BLED, OUTPUT);
  pinMode(WLED, OUTPUT);
  pinMode(VLED, OUTPUT);
  pinMode(BUTTON,INPUT);
  pinMode(MUTTON, INPUT);
}
boolean debounce(boolean last)
{
  boolean current=digitalRead(BUTTON);
  boolean current=digitalRead(MUTTON);
  if (last!=current)
  {
    delay(5);
    current=digitalRead(BUTTON);
    current=digitalRead(MUTTON);  
    return current;
  }
}
void setMode (int BUTTON)
{
  if (BUTTON==HIGH)
  {
    digitalWrite( BLED, HIGH);
    digitalWrite( WLED, LOW);
    digitalWrite( GLED, LOW);  
}
 else
 {
    digitalWrite( BLED, LOW);
    digitalWrite( WLED, HIGH);
    digitalWrite( GLED, HIGH);  
 }
}
void setMode (int MUTTON)
{
  if (MUTTON==HIGH)
  {
    digitalWrite( BLED, LOW);
    digitalWrite( WLED, HIGH);
    digitalWrite( GLED, LOW);   
  }
  else
  {
    digitalWrite( BLED, HIGH);
    digitalWrite( WLED, LOW);
    digitalWrite( GLED, HIGH);   
  }
}

void loop() {
  currentButton=debounce(lastButton);
  if (lastButton==LOW && currentButton==HIGH)
  {
    ledMode++;
  }
  lastButton=currentButton;
  if (ledMode==LOW);
  ledMode=0;
  setMode(ledMode);
}
  }

}
[/code]

Всем привет ещё раз. Опять воюю с тремя светодиодами. На этот раз пытаюсь подключить вторую кнопку. Подскажите, где я туплю в скетче.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

со строки 18 - кнопок две а состояние для них одно )))

RussBuh
Offline
Зарегистрирован: 19.11.2019

ua6em пишет:

со строки 18 - кнопок две а состояние для них одно )))

А можешь разжувать, я одарённый.

RussBuh
Offline
Зарегистрирован: 19.11.2019

ua6em пишет:

со строки 18 - кнопок две а состояние для них одно )))

А после 30й строки всё верно?

RussBuh
Offline
Зарегистрирован: 19.11.2019

ua6em пишет:

со строки 18 - кнопок две а состояние для них одно )))

А после 30й строки всё верно?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

и 7-8 должно быть две и 18 две, как говорил товарищ Сухов, каждой по отдельному )))

RussBuh
Offline
Зарегистрирован: 19.11.2019

ua6em пишет:

и 7-8 должно быть две и 18 две, как говорил товарищ Сухов, каждой по отдельному )))

То есть 7 и 8 строчки это для одной кнопки?

RussBuh
Offline
Зарегистрирован: 19.11.2019
[code]
int BLED=9;
int WLED=10;
int VLED=11;
int BUTTON=2;
int MUTTON=4;
boolean currentButton=LOW;
boolean lastButton=LOW;
boolean currentMutton=LOW;
boolean lastMutton=LOW;
int ledMode=0;

void setup() {
  pinMode(BLED, OUTPUT);
  pinMode(WLED, OUTPUT);
  pinMode(VLED, OUTPUT);
  pinMode(BUTTON,INPUT);
  pinMode(MUTTON, INPUT);
}
boolean debounce(boolean last)
{
  boolean current=digitalRead(BUTTON);
  if (last!=current)
  {
    delay(5);
    current=digitalRead(BUTTON); 
    return current;
  }
}
 boolean debounce(boolean last)
{
  boolean current=digitalRead(MUTTON);
     if (last!=current)
  {
    delay(5);
    current=digitalRead(MUTTON); 
    return current;
  }
}
void setMode (int BUTTON)
{
  if (BUTTON==HIGH)
  {
    digitalWrite( BLED, HIGH);
    digitalWrite( WLED, LOW);
    digitalWrite( GLED, LOW);  
}
 else
 {
    digitalWrite( BLED, LOW);
    digitalWrite( WLED, HIGH);
    digitalWrite( GLED, HIGH);  
 }
}
void setMode (int MUTTON)
{
  if (MUTTON==HIGH)
  {
    digitalWrite( BLED, LOW);
    digitalWrite( WLED, HIGH);
    digitalWrite( GLED, LOW);   
  }
  else
  {
    digitalWrite( BLED, HIGH);
    digitalWrite( WLED, LOW);
    digitalWrite( GLED, HIGH);   
  }
}

void loop() {
  currentButton=debounce(lastButton);
  if (lastButton==LOW && currentButton==HIGH)
  {
    ledMode++;
  }
  lastButton=currentButton;
  if (ledMode==LOW);
  ledMode=0;
  setMode(ledMode);
 currentMutton=debounce(lastMutton);
 if (lastButton==LOW && currentButton==HIGH)
  {
    ledMode++;
  }
  lastMutton=currentMutton;
  if (ledMode==LOW);
  ledMode=0;
  setMode(ledMode);
}

[/code]ничего лучше не придумал

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

в твоих мозгах полная каша
взял пример добавил еще одну кнопку, поизучай
 

const int button1_Pin = 2;     // the number of the pushbutton pin
const int button2_Pin = 3; 
const int led1_Pin =  12;      // the number of the LED pin
const int led2_Pin =  13;

int button1_State = 0;         // variable for reading the pushbutton status
int button2_State = 0;

void setup() {
  pinMode(led1_Pin, OUTPUT);
   pinMode(led2_Pin, OUTPUT);
  
  pinMode(button1_Pin, INPUT);
    pinMode(button2_Pin, INPUT);
}

void loop() {
  button1_State = digitalRead(button1_Pin);
  if (button1_State == HIGH) {
    digitalWrite(led1_Pin, HIGH);
  } else { digitalWrite(led1_Pin, LOW);
  }
  button2_State = digitalRead(button2_Pin);
  if (button2_State == HIGH) {
    digitalWrite(led2_Pin, HIGH);
  } else { digitalWrite(led2_Pin, LOW);
  }
 }

 

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

RussBuh, Вы последний скетч с какой целью выложили? Компилятор на него наверняка целую гору ошибок выдаёт. Читайте сообщения об ошибках и исправляйте по одной.

RussBuh
Offline
Зарегистрирован: 19.11.2019

ua6em пишет:

в твоих мозгах полная каша
взял пример добавил еще одну кнопку, поизучай
 

const int button1_Pin = 2;     // the number of the pushbutton pin
const int button2_Pin = 3; 
const int led1_Pin =  12;      // the number of the LED pin
const int led2_Pin =  13;

int button1_State = 0;         // variable for reading the pushbutton status
int button2_State = 0;

void setup() {
  pinMode(led1_Pin, OUTPUT);
   pinMode(led2_Pin, OUTPUT);
  
  pinMode(button1_Pin, INPUT);
    pinMode(button2_Pin, INPUT);
}

void loop() {
  button1_State = digitalRead(button1_Pin);
  if (button1_State == HIGH) {
    digitalWrite(led1_Pin, HIGH);
  } else { digitalWrite(led1_Pin, LOW);
  }
  button2_State = digitalRead(button2_Pin);
  if (button2_State == HIGH) {
    digitalWrite(led2_Pin, HIGH);
  } else { digitalWrite(led2_Pin, LOW);
  }
 }

 

ок спасибо