Ви не увійшли.
Сделать что-бы каждый хлопок менялся цвет 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); // небольшая задержка для фильтрации помех
}
}
}
Неактивний
заведите переменную, значения которой соответствуют цвету и перебирайте её по хлопкам.
byte color = 0;
0-светик выключен
1-красный
2-синий
3-зелёный
зафиксировали хлопок
color ++;
if(color > 3)
color = 0;
Неактивний
заведите переменную, значения которой соответствуют цвету и перебирайте её по хлопкам.
byte color = 0;
0-светик выключен
1-красный
2-синий
3-зелёныйзафиксировали хлопок
color ++;
if(color > 3)
color = 0;
можно в код это?
Неактивний
vvr пише:заведите переменную, значения которой соответствуют цвету и перебирайте её по хлопкам.
byte color = 0;
0-светик выключен
1-красный
2-синий
3-зелёныйзафиксировали хлопок
color ++;
if(color > 3)
color = 0;можно в код это?
Да, можно, разрешаю.
Неактивний
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);
}
}
Неактивний
Извините,а можно как нибудь сделать что-бы он по второму хлопку выключался?
Тоесть раз хлопнул - горит( красный)
раз хлопнул - не горит(красный)
еще хлопнул - горит(зеленый)
еще хлопнул - не горит(зеленый)
еще хлопнул - горит(голубой)
еще хлопнул - не горит(голубой)
Остання редакція Даниил (2020-01-12 22:09:35)
Неактивний
Извините,а можно как нибудь сделать что-бы он по второму хлопку выключался?
Тоесть 1 раз хлопнул - горит( красный)
2 раз хлопнул - не горит(красный)
2 раз хлопнул - горит(зеленый)
2 раз хлопнул - не горит(зеленый)
2 раз хлопнул - горит(голубой)
2 раз хлопнул - не горит(голубой)
" 2 раз хлопнул " - ПЯТЬ раз .... это за гранью понимания ....
Неактивний
чем?