тактовые кнопки управления светодиодами

SSD
Offline
Зарегистрирован: 28.10.2016

Здравствуйте. для меня пока это сложно, но для опытных я думаю это работа 10 минут.

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

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

вот https://otvet.mail.ru/question/195084901

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

nezza_profi
Offline
Зарегистрирован: 26.08.2016

SSD пишет:

Здравствуйте. для меня пока это сложно, но для опытных я думаю это работа 10 минут.

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

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

вот https://otvet.mail.ru/question/195084901

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

Может быть не совсем правильно но вашу задачу решает.


int val = 0;

void setup()
 { // put your setup code here, to run once:
 pinMode (11, OUTPUT);
 pinMode (12, OUTPUT);
 pinMode (10, INPUT);
 pinMode (9, INPUT);
 }

void loop()
 { // put your main code here, to run repeatedly:

 val = digitalRead(9); 
 if (val == HIGH) {
digitalWrite(11,HIGH);  // Светодиод включен пока кнопка нажата.
}
else
{
digitalWrite(11,LOW); // Отключение светодиода когда кнопка отпущена.

 }
  val = digitalRead(10); 
 if (val == HIGH) {
digitalWrite(12,HIGH); // Светодиод включен пока кнопка нажата.
}
else
{
digitalWrite(12,LOW); // Отключение светодиода когда кнопка отпущена.

 }
 }

 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

https://www.youtube.com/watch?v=bO_jN0Lpz3Q&index=1&list=PLfDmj22jP9S759...

Потратишь пол часа и разберешься.

Green
Offline
Зарегистрирован: 01.10.2015

Исполню, разжую htpicc@gmail.com

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

SSD пишет:

задал вопрос на ответах.мэйл ру, но там как обычно тишина.

та, да - там тишина

тактовые кнопки в Arduino

* Профи (594), Вопрос открыт 18 часов назад

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

int switchPin = 11; 
int ledPin = 12; 
int switchPin1 = 8;
int ledPin1 = 9; 

boolean lastButton = LOW; 
boolean ledOn = false; 
boolean currentButton = LOW; 

void setup()
{
pinMode(switchPin, INPUT); 
pinMode(ledPin, OUTPUT); 
pinMode(switchPin1, INPUT);
pinMode(ledPin1, OUTPUT); 

boolean debounce(boolean last) 

{
boolean current = digitalRead(switchPin), (switchPin1); 
if (last != current) 
{
delay(5); 
current = digitalRead(switchPin), (switchPin1); 
}
return current; 

}

void loop() 

{
currentButton = debounce(lastButton); 
if (lastButton == LOW && currentButton == HIGH) 
{
ledOn = !ledOn; 
}
lastButton = currentButton; 
digitalWrite(ledPin, ledOn), (ledPin1, ledOn); 
}

 
 Нравится Ответить

 
3 ОТВЕТА
 
У вас светодиоды подключены к портам без
токоограничительных резисторов. Это не допустимо!
Хотя... Может у вас цель их просто сжечь по нажатию кнопки?
 2 Нравится 2 Комментария  Пожаловаться
 
 
это какой язык допускает такое?
digitalWrite(ledPin, ledOn), (ledPin1, ledOn);
разнесите на 2 вызова -
digitalWrite(ledPin, ledOn);
digitalWrite(ledPin1, ledOn);
 Нравится 1 Комментарий  Пожаловаться
 
 
int switchPin1 = 11;
int ledPin1 = 12;
int switchPin2 = 8;
int ledPin2 = 9;

boolean lastButton1 = LOW;
boolean ledOn1 = false;
boolean currentButton1 = LOW;

boolean lastButton2 = LOW;
boolean ledOn2 = false;
boolean currentButton2 = LOW;

//----------------------------------------

void setup()
{
pinMode(switchPin1, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(switchPin2, INPUT);
pinMode(ledPin2, OUTPUT);
}

//----------------------------------------

boolean debounce(boolean last, int switchP)

{
boolean current = digitalRead(switchP);
if (last != current)
{
delay(5);
current = digitalRead(switchP);
}
return current;
}

//--------------------------------------------

void loop()

{
currentButton1 = debounce(lastButton1, switchPin1);
currentButton2 = debounce(lastButton2, switchPin2);

if (lastButton1 == LOW && currentButton1 == HIGH) ledOn1 = !ledOn1;
if (lastButton2 == LOW && currentButton2 == HIGH) ledOn2 = !ledOn2;

lastButton1 = currentButton1;
lastButton2 = currentButton2;
digitalWrite(ledPin1, ledOn1);
digitalWrite(ledPin2, ledOn2);
}

 1 Нравится Комментировать  Пожаловаться

 

DrProg
Offline
Зарегистрирован: 07.08.2015

Я называю такие схемы "помоги мышонку найти выход".