Здравствуйте. Такой вопрос, не подскажите как в место кнопки задействовать потенциометр? В принципе я смог заставить загораться светодиод при достижении определенного уровня, но как заставить при этом гаснуть при другом уровне ни как не пойму. проштудировал С++ не нашел такой возможности, возможно плохо или не там штудировал. Описание в след второго значения для переменной нейтрализует первое значение. Получилось так: const int W=10; const int E=9; const int B=6; const int G=5; const int R=3; const int P=0; void setup() { Serial.begin(9600); // инициализация серийного обмена данными на скорости 9600 бит в секунду для отслеживая уровня потенциометр в "Монитор порта": pinMode (W, OUTPUT); pinMode (E, OUTPUT); pinMode (B, OUTPUT); pinMode (G, OUTPUT); pinMode (R, OUTPUT); pinMode (P, INPUT); } void loop() { int x; int y; int z; int q; int a; x = analogRead(P)>100; digitalWrite(W, x); y = analogRead(P)>200; digitalWrite(E, y); z = analogRead(P)>300; digitalWrite(B, z); q = analogRead(P)>400; digitalWrite(G, q); a = analogRead(P)>500; digitalWrite(R, a); int sensorValue = analogRead(A0); // считывает значение с аналогового пина 0: Serial.println(sensorValue); // отображает считанное значение: delay(1); // задержка между считываниями для стабильности работы }
Наконец хоть кто-то объяснил для простых людей. Лайк от меня.
Здравствуйте.
Ссылка не работает.
const int BLED = 13;
const int GLED = 10;
const int BUTTON = 8;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode = 0;
void setup()
{
pinMode(BLED, OUTPUT);
pinMode(GLED, OUTPUT);
}
boolean debounce(boolean last)
{
boolean current = digitalRead(BUTTON);
if (last != current)
{
delay(5);
current = digitalRead(BUTTON);
return current;
}
}
void setMode(int mode)
{
switch (mode)
{
case 1:
digitalWrite(BLED,HIGH);
digitalWrite(GLED,LOW);
break;
case 2:
digitalWrite(BLED,LOW);
digitalWrite(GLED,HIGH);
break;
case 3:
digitalWrite(BLED,HIGH);
digitalWrite(GLED,HIGH);
break;
case 0:
digitalWrite(BLED,LOW);
digitalWrite(GLED,LOW);
break;
}
}
void loop()
{
currentButton = debounce(lastButton);
if (lastButton==LOW && currentButton==HIGH)
{
ledMode++;
}
lastButton = currentButton;
if (ledMode == 4)
{
ledMode = 0;
}
setMode(ledMode);
}
Сделал все как в описании, при включении платы контроллер переходит сразу к первому действию, а не к нулевому, где все выключено. Почему?
а код сылки?
где он???
const int BLED = 13;
const int GLED = 10;
const int BUTTON = 8;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode = 0;
void setup()
{
pinMode(BLED, OUTPUT);
pinMode(GLED, OUTPUT);
}
boolean debounce(boolean last)
{
boolean current = digitalRead(BUTTON);
if (last != current)
{
delay(5);
current = digitalRead(BUTTON);
return current;
}
}
void setMode(int mode)
{
switch (mode)
{
case 1:
digitalWrite(BLED,HIGH);
digitalWrite(GLED,LOW);
break;
case 2:
digitalWrite(BLED,LOW);
digitalWrite(GLED,HIGH);
break;
case 3:
digitalWrite(BLED,HIGH);
digitalWrite(GLED,HIGH);
break;
case 0:
digitalWrite(BLED,LOW);
digitalWrite(GLED,LOW);
break;
}
}
void loop()
{
currentButton = debounce(lastButton);
if (lastButton==LOW && currentButton==HIGH)
{
ledMode++;
}
lastButton = currentButton;
if (ledMode == 4)
{
ledMode = 0;
}
setMode(ledMode);
}
Хоть кто-то нормально объяснил. Спасибо.
Здравствуйте.
Такой вопрос, не подскажите как в место кнопки задействовать
потенциометр?
В принципе я смог заставить загораться светодиод при
достижении определенного уровня, но как заставить при этом гаснуть при другом
уровне ни как не пойму.
проштудировал С++ не нашел такой возможности, возможно плохо
или не там штудировал.
Описание в след второго значения для переменной нейтрализует
первое значение.
Получилось так:
const int W=10;
const int E=9;
const int B=6;
const int G=5;
const int R=3;
const int P=0;
void setup()
{
Serial.begin(9600); // инициализация серийного обмена данными на скорости 9600 бит в секунду для отслеживая уровня потенциометр в "Монитор порта":
pinMode (W, OUTPUT);
pinMode (E, OUTPUT);
pinMode (B, OUTPUT);
pinMode (G, OUTPUT);
pinMode (R, OUTPUT);
pinMode (P, INPUT);
}
void loop()
{
int x;
int y;
int z;
int q;
int a;
x = analogRead(P)>100;
digitalWrite(W, x);
y = analogRead(P)>200;
digitalWrite(E, y);
z = analogRead(P)>300;
digitalWrite(B, z);
q = analogRead(P)>400;
digitalWrite(G, q);
a = analogRead(P)>500;
digitalWrite(R, a);
int sensorValue = analogRead(A0); // считывает значение с аналогового пина 0:
Serial.println(sensorValue); // отображает считанное значение:
delay(1); // задержка между считываниями для стабильности работы
}
хватит гнусавить. ничего ж не понятно. Купи себе нормальный Микрофон!
На удивление в этом видео и был тестирован вроде как хороший микрофон. Как оказалось нужно что то другое.