#1 2020-01-10 15:40:14

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Сделать что-бы каждый хлопок менялся цвет RGB светодиода (red,green,blue) .
В такой последовательности.
На 9 пин подсоеденен красный.

Вот скетч.

const int sensorD0 = 8;  // Пин Arduino к которому подключен выход D0 датчика
const int diod = 9; // Пин Arduino к которому подключен светодиод
int diodState = LOW; // Статус светодиода "выключен"

void setup ()
  {
  pinMode(diod, OUTPUT); // устанавливаем цифровой пин 2 в режим выхода 
  }
   
void loop ()
  {
  int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика
     
  if (sensorValue == 1 && diodState == LOW) //если порог громкости достигнут и светодиод был ВЫКЛЮЧЕН
    {
    digitalWrite(diod, HIGH); // включаем светодиод
    diodState = HIGH; // устанавливаем статус светодиода "включен"
    delay(100); // небольшая задержка для фильтрации помех
    }
  else // иначе
    {
    if (sensorValue == 1 && diodState == HIGH) // если порог громкости достигнут и светодиод был ВКЛЮЧЕН
      {
      digitalWrite(diod, LOW); // выключаем светодиод
      diodState = LOW; // устанавливаем статус светодиода "выключен"
      delay(100); // небольшая задержка для фильтрации помех
      }
    }   
  }

Неактивний

#2 2020-01-10 16:12:50

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 874

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

светик по хлопку у вас успешно переключается ?

Неактивний

#3 2020-01-10 16:13:16

Kaka
Учасник
Зареєстрований: 2018-03-21
Повідомлень: 411

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Даниил пише:

Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Есть сэр! Разрешите приступить!?

Неактивний

#4 2020-01-10 16:14:37

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

vvr пише:

светик по хлопку у вас успешно переключается ?

Да.

Неактивний

#5 2020-01-10 16:16:22

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Kaka пише:
Даниил пише:

Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Есть сэр! Разрешите приступить!?

Приступайте))

Неактивний

#6 2020-01-10 20:17:37

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 874

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

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

byte color = 0;
0-светик выключен
1-красный
2-синий
3-зелёный

зафиксировали хлопок
color ++;
if(color > 3)
color = 0;

Неактивний

#7 2020-01-10 23:41:42

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

можно в код это?

Неактивний

#8 2020-01-11 01:06:51

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

vvr пише:

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

byte color = 0;
0-светик выключен
1-красный
2-синий
3-зелёный

зафиксировали хлопок
color ++;
if(color > 3)
color = 0;

можно в код это?

Неактивний

#9 2020-01-12 00:12:56

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Даниил пише:
vvr пише:

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

byte color = 0;
0-светик выключен
1-красный
2-синий
3-зелёный

зафиксировали хлопок
color ++;
if(color > 3)
color = 0;

можно в код это?

Да, можно, разрешаю.

Неактивний

#10 2020-01-12 14:53:52

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Я не понял куда это вставить,у меня опыт ардуино - 4 дня,можете помочь?

Неактивний

#11 2020-01-12 18:24:45

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 874

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

const int sensor = 8;     // Пин Arduino к которому подключен выход D0 датчика
const int red = 9;        // Пин Arduino к которому подключен светодиод красный
const int blue = 10;      // Пин Arduino к которому подключен светодиод синий
const int green = 11;     // Пин Arduino к которому подключен светодиод зелёный

int sensorValue = 0;
byte color = 0;
byte flag = 0;

void setup ()
{
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(blue, OUTPUT);

  pinMode(sensor, INPUT);
}

void loop ()
{
  sensorValue = digitalRead(sensor); // получаем сигнал с датчика

  if (sensorValue == 1 && flag == 0) //если порог громкости достигнут
  {
    color ++;
    if (color > 3)
    {
      color = 0;
    }
    flag = 1;
  }
  else if (sensorValue == 0 && flag == 1)
  {
    flag = 0;
  }

  ////////  состояния светиков  //////////////

  if (color == 0)                /// все погасли
  {
    digitalWrite(red, LOW);
    digitalWrite(green, LOW);
    digitalWrite(blue, LOW);
  }
  else if (color == 1)           /// горит красный
  {
    digitalWrite(red, HIGH);
    digitalWrite(green, LOW);
    digitalWrite(blue, LOW);
  }
  else if (color == 2)           /// горит зелёный
  {
    digitalWrite(red, LOW);
    digitalWrite(green, HIGH);
    digitalWrite(blue, LOW);
  }
  else if (color == 3)           /// горит синий
  {
    digitalWrite(red, LOW);
    digitalWrite(green, LOW);
    digitalWrite(blue, HIGH);
  }
}

Неактивний

#12 2020-01-12 20:58:08

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Извините,а можно как нибудь сделать что-бы он по второму хлопку выключался?
Тоесть  раз хлопнул - горит( красный)
раз хлопнул - не горит(красный)
еще хлопнул -  горит(зеленый)
еще хлопнул - не горит(зеленый)
еще хлопнул -  горит(голубой)
еще хлопнул - не горит(голубой)

Остання редакція Даниил (2020-01-12 22:09:35)

Неактивний

#13 2020-01-12 21:49:23

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Даниил пише:

Извините,а можно как нибудь сделать что-бы он по второму хлопку выключался?
Тоесть 1 раз хлопнул - горит( красный)
2 раз хлопнул - не горит(красный)
2 раз хлопнул -  горит(зеленый)
2 раз хлопнул - не горит(зеленый)
2 раз хлопнул -  горит(голубой)
2 раз хлопнул - не горит(голубой)


" 2 раз хлопнул "  - ПЯТЬ раз ....  это за гранью понимания ....

Неактивний

#14 2020-01-12 22:09:48

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

Исправил

Неактивний

#15 2020-01-16 23:43:26

Даниил
Учасник
Зареєстрований: 2020-01-10
Повідомлень: 10

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

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

Неактивний

#16 2020-01-16 23:47:04

г0сть
Гість

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

чем?

#17 2020-01-17 02:15:10

Kaka
Учасник
Зареєстрований: 2018-03-21
Повідомлень: 411

Re: Сделать что-бы каждый хлопок менялся цвет RGB светодиода

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

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму