#3 Re: Програмування Arduino » Сделать что-бы каждый хлопок менялся цвет RGB светодиода » 2020-01-12 20:58:08

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

#5 Re: Програмування Arduino » Сделать что-бы каждый хлопок менялся цвет RGB светодиода » 2020-01-11 01:06:51

vvr пише:

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

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

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

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

#7 Re: Програмування Arduino » Сделать что-бы каждый хлопок менялся цвет RGB светодиода » 2020-01-10 16:16:22

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

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

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

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

#9 Програмування Arduino » Сделать что-бы каждый хлопок менялся цвет RGB светодиода » 2020-01-10 15:40:14

Даниил
відповідей: 16

Сделать что-бы каждый хлопок менялся цвет 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); // небольшая задержка для фильтрации помех
      }
    }   
  }

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