Пожалуйста,объясните чайнику про кнопки!!!!

vadnik140
Offline
Зарегистрирован: 13.12.2013

Пожалуйста,не пинайте!!! Только приобрел Leonardo. Пытаюсь понять азы программирования.Переписал с видеоурока скетч про кнопку и светодиод.Нажал-горит,еще раз нажал-не горит.Залил-отлично работает!     Но!!! Никак не могу понять,как в этом скетче сделать вторую кнопку и светодиод. Ну чтобы каждая кнопка включала при нажатии и выключала при повторном нажатии свой светодиод. Допустим мне нужно включать-выключать восемь реле. Очень прошу,объясните! Нигде не найду про несколько каналов.Прилагаю скетч на один канал.Спасибо всем,кто поможет!

int switchPin = 8;
int ledPin = 13;
boolean lastButton = LOW;
boolean currentButton = LOW;
boolean ledOn = false;

void setup()
{
  pinMode(switchPin, INPUT);
  pinMode(ledPin, OUTPUT);
}
boolean debounce(boolean last)
{
  boolean current = digitalRead(switchPin);
  if (last != current)
  {
    delay(5);
    current = digitalRead(switchPin);
  }
  return current;
}
 

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

vadnik140
Offline
Зарегистрирован: 13.12.2013

Очень жаль.Помощи,видимо,ждать не от кого. Вот так и пропадает желание заниматься чем-то новым.Выкину эту Дуину и буду дальше автомобили шить.... Обидно!!!

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Удачи!

vadnik140
Offline
Зарегистрирован: 13.12.2013

Спасибо Вам, Добрый человек...

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

vadnik140 пишет:

Очень жаль.Помощи,видимо,ждать не от кого. Вот так и пропадает желание заниматься чем-то новым.Выкину эту Дуину и буду дальше автомобили шить.... Обидно!!!

не, ну совсем чайнеги окуели.

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

автомобили шить за полдня научился?

vadnik140
Offline
Зарегистрирован: 13.12.2013

Да нет . не сразу . И это покруче ардуино. А Вы . окуевший . давно чайником были?
Пусть вам так же помогают . как вы .

vadnik140
Offline
Зарегистрирован: 13.12.2013

Ну что? Есть еще желающие попинать? Или есть кто-то,кто подскажет как вторую кнопку и второй светодиод в скетч воткнуть.Я бы понял и дальше было бы немного легче. Просмотрел кучу уроков,почитал книжки.Везде все примитивное (про кнопку).По примитивному они срабатывают через раз,а этот скетч просто клас! Учить С++ неохота и некогда. Вообще повелся на рекламу. Якобы не надо никаких особых знаний. Надеюсь на форуме есть нормальные люди,а не такие ..... как мне уже отвечали. Спасибо.

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

vadnik140 пишет:
Да нет . не сразу . И это покруче ардуино. А Вы . окуевший . давно чайником были? Пусть вам так же помогают . как вы .

пусть...

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

vadnik140 пишет:

Ну что? Есть еще желающие попинать? Или есть кто-то,кто подскажет как вторую кнопку и второй светодиод в скетч воткнуть.Я бы понял и дальше было бы немного легче. Просмотрел кучу уроков,почитал книжки.Везде все примитивное (про кнопку).По примитивному они срабатывают через раз,а этот скетч просто клас! Учить С++ неохота и некогда. Вообще повелся на рекламу. Якобы не надо никаких особых знаний. Надеюсь на форуме есть нормальные люди,а не такие ..... как мне уже отвечали. Спасибо.

нормальных нет - один я тут... ненормальный.

что за муть про рекламу? - предъявляйте рекламодателям, а не мне и читающим ваше попадалово.

по скетчу - ну, масштабируйте все переменные: было int switchPin = 8; пусть будет int switchPin1 =...; int switchPin2 =...; int switchPin3 = ...; и далее по тексту. эмоции - при себе оставьте, потому как или сами разбирайтесь, или ждите, пока у кого возникнет желание и время разбираться.

vadnik140
Offline
Зарегистрирован: 13.12.2013

Спасибо и на этом. Так я уже пробывал. Не получается. Я думал здесь на форуме для  крутых программеров это раз плюнуть.

Life23
Offline
Зарегистрирован: 10.08.2013

vadnik140 - просто перед тем как задавать такие вопросы - надо хотя бы немного почитать форум... ведь о кнопках тут ну ооочеь много говорилось... Не говорю уже о гугле.. Вы же, даже код не смогли по правилам форума правильно вставить. А реагируют тут на вас так, потому что вы совсем ленитесь...  "Я бы понял и дальше было бы немного легче." - )))) вы даже не представляете себе, что "кнопка" - это самое простое,  что может быть в ардуино.. ))

com
Offline
Зарегистрирован: 06.09.2013

исходя из подхода

vadnik140 пишет:

Учить С++ неохота и некогда

единственная здравая мысль уже прозвучала

vadnik140 пишет:

Выкину эту Дуиную и буду дальше автомобили шить.... Обидно!!!

мир вообще очень суровая штука, малыш!

:)

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

где можно посмотреть рекламу дуино?

step962
Offline
Зарегистрирован: 23.05.2011

vadnik140 пишет:

[...]

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

Мне при прочтении этих опусов что-то micgelly вспомнился... 

Попробуйте обратиться к нему. Вдвоем вы - сила!

vadnik140
Offline
Зарегистрирован: 13.12.2013

Во как напали! Админ, закройте тему,боюсь заклюют!

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

vadnik140 пишет:
Во как напали! Админ, закройте тему,боюсь заклюют!

пусть тогда весь форум закрывает, раз пошла такая пьянка... за геноцид чайнегов.

vadnik140
Offline
Зарегистрирован: 13.12.2013

Слыш,ты,умник! Я смотрю.ты самый деловой тут на форуме. Нечего сказать то теме-заткни хлебало.

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Только чайник понимает чайника.

Пример Button из EXAMPLES:

/*
  Button
 
 Turns on and off a light emitting diode(LED) connected to digital  
 pin 13, when pressing a pushbutton attached to pin 2. 
 
 
 The circuit:
 * LED attached from pin 13 to ground 
 * pushbutton attached to pin 2 from +5V
 * 10K resistor attached to pin 2 from ground
 
 * Note: on most Arduinos there is already an LED on the board
 attached to pin 13.
 
 
 created 2005
 by DojoDave <http://www.0j0.org>
 modified 30 Aug 2011
 by Tom Igoe
 
 This example code is in the public domain.
 
 http://www.arduino.cc/en/Tutorial/Button
 */

// constants won't change. They're used here to 
// set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);     
}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH);  
  } 
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW); 
  }
}

ТОЖЕ самое продублированое:


const int buttonAPin = 2;     // the number of the pushbuttonA pin
const int ledAPin =  12;      // the number of the LEDA pin
const int buttonBPin = 3;     // the number of the pushbuttonB pin
const int ledBPin =  13;      // the number of the LEDB pin

// variables will change:
int buttonAState = 0;         // variable for reading the pushbutton status
int buttonBState = 0;         // variable for reading the pushbutton status


void setup() {
  // initialize the LED pin as an output:
  pinMode(ledAPin, OUTPUT); 
  pinMode(ledBPin, OUTPUT);  
  // initialize the pushbutton pin as an input:
  pinMode(buttonAPin, INPUT);
pinMode(buttonBPin, INPUT);   
}

void loop(){
  // read the state of the pushbutton value:
  buttonAState = digitalRead(buttonAPin);
  buttonBState = digitalRead(buttonBPin);

  // check if the pushbuttonA is pressed.
  // if it is, the buttonAState is HIGH:
  if (buttonAState == HIGH) {     
    // turn LED on:    
    digitalWrite(ledAPin, HIGH);  
  } 
  else {
    // turn LEDA off:
    digitalWrite(ledAPin, LOW); 
  }
  // check if the pushbuttonB is pressed.
  // if it is, the buttonBState is HIGH:
  if (buttonBState == HIGH) {     
    // turn LEDB on:    
    digitalWrite(ledBPin, HIGH);  
  } 
  else {
    // turn LEDB off:
    digitalWrite(ledBPin, LOW); 
  }
}

 

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Не обижайся на форумчан-они не злые, они всегда помогают .Им просто не хватает общения.

vadnik140
Offline
Зарегистрирован: 13.12.2013

Спасибо Вам огромное! Хоть кто-то не злой нашелся. Я так уже делал.Присутствует дребезг кнопки. Тот скетч,что я показал хорош тем,что бребезга нет. Но вот как все эти булены к добавленым кнопкам прикрутить я не въеду(пока!). Пробывал по-разному то два сразу включает то вообще ошибки.Ну ничего,буду понемногу разбираться.Спасибо Вам еще раз.

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Выложи тот скетч где сразу два включает

vadnik140
Offline
Зарегистрирован: 13.12.2013

Ну если не въеду все-таки,то подавлю дребезг "железным" методом.Но всеже хотелось бы разобраться.

vadnik140
Offline
Зарегистрирован: 13.12.2013

Кажется этот.

int switch1 = 8;
int led1 = 13;
int switch2 = 7;
int led2 = 12;
boolean lastButton1 = LOW;
boolean currentButton1 = LOW;
boolean led1On = false;
boolean lastButton2 = LOW;
boolean currentButton2 = LOW;
boolean led2On = false;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(switch1, INPUT);
  pinMode(led2, OUTPUT);
  pinMode(switch2, INPUT);
}

  boolean debounce(boolean last1);
{
  boolean current1 = digitalRead(switch1);
  if (last1 != current1)
  {
    delay(5);
    current1 = digitalRead(switch1);
  }
  return current1;

  boolean debounce(boolean last2)
{
  boolean current2 = digitalRead(switch2);
  if (last2 != current2)
  {
    delay(5);
    current2 = digitalRead(switch2);
  }
  return current2;


 
}
  

void loop()
{
  currentButton1 = debounce(lastButton1);
  if (lastButton1 == LOW && currentButton1 == HIGH)
  {
    led1On = !led1On;
  }
    lastButton1 = currentButton1;
    digitalWrite(led1, led1On);

  currentButton2 = debounce(lastButton2);
  if (lastButton2 == LOW && currentButton2 == HIGH)
  {
    led2On = !led2On;
  }
     lastButton2 = currentButton2;
    digitalWrite(led2, led2On);
}
     

 

vadnik140
Offline
Зарегистрирован: 13.12.2013

Я их столько уже понаделал,что уже запутался.

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Посмотри примеры ТУТ.В некоторых примерах дребезг минимален.Попробуй на практике примерчики и выбири то что тебе нужно и делай на сколько каналов хватит ног.

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

доберусь домой - гляну твой скетч

vadnik140
Offline
Зарегистрирован: 13.12.2013

Спасибо!

vvadim
Offline
Зарегистрирован: 23.05.2012

А борьбу с дребезгом нужно вести в loop() , а не в setup(). Сейчас боретесь с дребезгом кнопок один раз при запуске программки. Перебросьте в loop() и всё будет работать как надо.

vadnik140
Offline
Зарегистрирован: 13.12.2013

Спасибо! Попробую!

vadnik140
Offline
Зарегистрирован: 13.12.2013

Спасибо!

vadnik140
Offline
Зарегистрирован: 13.12.2013

step962 пишет:

vadnik140 пишет:

[...]

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

Мне при прочтении этих опусов что-то micgelly вспомнился... 

Попробуйте обратиться к нему. Вдвоем вы - сила!

А Вы вдвоем с Клапауцием ...........

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Это код с первого поста. На две кнопки и два выхода.Работает. А за остальное -молчу....

int switchAPin = 2;
int ledAPin = 13;
int switchBPin = 3;
int ledBPin = 12;
boolean lastAButton = LOW;
boolean currentAButton = LOW;
boolean ledAOn = false;
boolean lastBButton = LOW;
boolean currentBButton = LOW;
boolean ledBOn = false;

void setup()
{
  pinMode(switchAPin, INPUT);
  pinMode(ledAPin, OUTPUT);
   pinMode(switchBPin, INPUT);
  pinMode(ledBPin, OUTPUT);
}


 

void loop()
{
  currentAButton = debounceA(lastAButton);
  currentBButton = debounceB(lastBButton);
  if (lastAButton == LOW && currentAButton == HIGH)
  {
    ledAOn = !ledAOn;
  }
     lastAButton = currentAButton;
    digitalWrite(ledAPin, ledAOn);
     if (lastBButton == LOW && currentBButton == HIGH)
  {
    ledBOn = !ledBOn;
  }
     lastBButton = currentBButton;
    digitalWrite(ledBPin, ledBOn);
 }
 
 
 boolean debounceA(boolean lastA)
{
  boolean currentA = digitalRead(switchAPin);
  if (lastA != currentA)
  {
    delay(5);
    currentA = digitalRead(switchAPin);
  }
  return currentA;
}
 boolean debounceB(boolean lastB)
{
  boolean currentB = digitalRead(switchBPin);
  if (lastB != currentB)
  {
    delay(5);
    currentB = digitalRead(switchBPin);
  }
  return currentB;
}

 

vadnik140
Offline
Зарегистрирован: 13.12.2013

Спасибо большое!!!

vadnik140
Offline
Зарегистрирован: 13.12.2013

nikolaki пишет:

Это код с первого поста. На две кнопки и два выхода.Работает. А за остальное -молчу....

int switchAPin = 2;
int ledAPin = 13;
int switchBPin = 3;
int ledBPin = 12;
boolean lastAButton = LOW;
boolean currentAButton = LOW;
boolean ledAOn = false;
boolean lastBButton = LOW;
boolean currentBButton = LOW;
boolean ledBOn = false;

void setup()
{
  pinMode(switchAPin, INPUT);
  pinMode(ledAPin, OUTPUT);
   pinMode(switchBPin, INPUT);
  pinMode(ledBPin, OUTPUT);
}


 

void loop()
{
  currentAButton = debounceA(lastAButton);
  currentBButton = debounceB(lastBButton);
  if (lastAButton == LOW && currentAButton == HIGH)
  {
    ledAOn = !ledAOn;
  }
     lastAButton = currentAButton;
    digitalWrite(ledAPin, ledAOn);
     if (lastBButton == LOW && currentBButton == HIGH)
  {
    ledBOn = !ledBOn;
  }
     lastBButton = currentBButton;
    digitalWrite(ledBPin, ledBOn);
 }
 
 
 boolean debounceA(boolean lastA)
{
  boolean currentA = digitalRead(switchAPin);
  if (lastA != currentA)
  {
    delay(5);
    currentA = digitalRead(switchAPin);
  }
  return currentA;
}
 boolean debounceB(boolean lastB)
{
  boolean currentB = digitalRead(switchBPin);
  if (lastB != currentB)
  {
    delay(5);
    currentB = digitalRead(switchBPin);
  }
  return currentB;
}

 

ТЕПЕРЬ Я ПОНЯЛ !!!!!!!!!!

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Я переделал один из примеров "Работа с кнопками .В помощ новичку" и получил вот это(работает так же):

byte flagA=0; 
byte flagB=0;
byte vklA=0;
byte vklB=0;
void setup()    
{ 
  pinMode(13, OUTPUT); 
  pinMode(12, OUTPUT);   
} 

void loop() 

{ 
  if(digitalRead(2)==LOW)
  {
    delay(10);
    vklA=0;
  }

  if(digitalRead(2)==HIGH&&vklA==0)

  { 
    delay(10);   

    flagA=1-flagA;
    vklA=1;

  } 

  if(flagA==1)

  { 
    digitalWrite(13,HIGH);

  }
  else
  {
    digitalWrite(13,LOW); 
  }
  if(digitalRead(3)==LOW)
  {
    delay(10);
    vklB=0;
  }

  if(digitalRead(3)==HIGH&&vklB==0)

  { 
    delay(10);   

    flagB=1-flagB;
    vklB=1;

  } 

  if(flagB==1)
 { 
    digitalWrite(12,HIGH);
  }
  else
  {
    digitalWrite(12,LOW); 
  }
} 



 

vadnik140
Offline
Зарегистрирован: 13.12.2013

nikolaki пишет:

Я переделал один из примеров "Работа с кнопками .В помощ новичку" и получил вот это(работает так же):

byte flagA=0; 
byte flagB=0;
byte vklA=0;
byte vklB=0;
void setup()    
{ 
  pinMode(13, OUTPUT); 
  pinMode(12, OUTPUT);   
} 

void loop() 

{ 
  if(digitalRead(2)==LOW)
  {
    delay(10);
    vklA=0;
  }

  if(digitalRead(2)==HIGH&&vklA==0)

  { 
    delay(10);   

    flagA=1-flagA;
    vklA=1;

  } 

  if(flagA==1)

  { 
    digitalWrite(13,HIGH);

  }
  else
  {
    digitalWrite(13,LOW); 
  }
  if(digitalRead(3)==LOW)
  {
    delay(10);
    vklB=0;
  }

  if(digitalRead(3)==HIGH&&vklB==0)

  { 
    delay(10);   

    flagB=1-flagB;
    vklB=1;

  } 

  if(flagB==1)
 { 
    digitalWrite(12,HIGH);
  }
  else
  {
    digitalWrite(12,LOW); 
  }
} 



 

Спасибо!!!

vadnik140
Offline
Зарегистрирован: 13.12.2013

vadnik140 пишет:

nikolaki пишет:

Это код с первого поста. На две кнопки и два выхода.Работает. А за остальное -молчу....

int switchAPin = 2;
int ledAPin = 13;
int switchBPin = 3;
int ledBPin = 12;
boolean lastAButton = LOW;
boolean currentAButton = LOW;
boolean ledAOn = false;
boolean lastBButton = LOW;
boolean currentBButton = LOW;
boolean ledBOn = false;

void setup()
{
  pinMode(switchAPin, INPUT);
  pinMode(ledAPin, OUTPUT);
   pinMode(switchBPin, INPUT);
  pinMode(ledBPin, OUTPUT);
}


 

void loop()
{
  currentAButton = debounceA(lastAButton);
  currentBButton = debounceB(lastBButton);
  if (lastAButton == LOW && currentAButton == HIGH)
  {
    ledAOn = !ledAOn;
  }
     lastAButton = currentAButton;
    digitalWrite(ledAPin, ledAOn);
     if (lastBButton == LOW && currentBButton == HIGH)
  {
    ledBOn = !ledBOn;
  }
     lastBButton = currentBButton;
    digitalWrite(ledBPin, ledBOn);
 }
 
 
 boolean debounceA(boolean lastA)
{
  boolean currentA = digitalRead(switchAPin);
  if (lastA != currentA)
  {
    delay(5);
    currentA = digitalRead(switchAPin);
  }
  return currentA;
}
 boolean debounceB(boolean lastB)
{
  boolean currentB = digitalRead(switchBPin);
  if (lastB != currentB)
  {
    delay(5);
    currentB = digitalRead(switchBPin);
  }
  return currentB;
}

 

ТЕПЕРЬ Я ПОНЯЛ !!!!!!!!!!

Спасибо Вам большое! Переделал на 6 кнопок . Отлично все работает! Дребезга нет! Но самое главное- понял что я делал не так. И понял структуру этих боленов. Буду потихоньку осваивать дальше.

vadnik140
Offline
Зарегистрирован: 13.12.2013

Ну вот помогли разобраться. Огромное спасибо NIKOLAKI!

Выкладываю скетч для всех чайников. Управление 6 кнопками 6 светодиодами или реле через плату реле. Нажал кнопку включилось, еще раз нажал выключилось.Без дребезга контактов. Может кому пригодится. Еще раз спасибо NIKOLAKI  !

        int switch1Pin = 2;
	int led1Pin = 13;
	int switch2Pin = 3;
	int led2Pin = 12;
        int switch3Pin = 4;
	int led3Pin = 11;
        int switch4Pin = 5;
	int led4Pin = 10;
        int switch5Pin = 6;
	int led5Pin = 9;
        int switch6Pin = 7;
	int led6Pin = 8;
	boolean last1Button = LOW;
	boolean current1Button = LOW;
	boolean led1On = false;
	boolean last2Button = LOW;
	boolean current2Button = LOW;
	boolean led2On = false;
        boolean last3Button = LOW;
	boolean current3Button = LOW;
	boolean led3On = false;
        boolean last4Button = LOW;
	boolean current4Button = LOW;
	boolean led4On = false;
        boolean last5Button = LOW;
	boolean current5Button = LOW;
	boolean led5On = false;
        boolean last6Button = LOW;
	boolean current6Button = LOW;
	boolean led6On = false;
	 
	void setup()
	{
	  pinMode(switch1Pin, INPUT);
	  pinMode(led1Pin, OUTPUT);
	  pinMode(switch2Pin, INPUT);
	  pinMode(led2Pin, OUTPUT);
          pinMode(switch3Pin, INPUT);
	  pinMode(led3Pin, OUTPUT);
          pinMode(switch4Pin, INPUT);
	  pinMode(led4Pin, OUTPUT);
          pinMode(switch5Pin, INPUT);
	  pinMode(led5Pin, OUTPUT);
          pinMode(switch6Pin, INPUT);
	  pinMode(led6Pin, OUTPUT);
	}  
	 
	void loop()
	{
	  current1Button = debounce1(last1Button);
	  current2Button = debounce2(last2Button);
          current3Button = debounce3(last3Button);
          current4Button = debounce4(last4Button);
          current5Button = debounce5(last5Button);
          current6Button = debounce6(last6Button);

	  if (last1Button == LOW && current1Button == HIGH)
	  {
	    led1On = !led1On;
	  }
	     last1Button = current1Button;
	    digitalWrite(led1Pin, led1On);

	     if (last2Button == LOW && current2Button == HIGH)                                                                             	  {
	    led2On = !led2On;
	  }
	     last2Button = current2Button;
	    digitalWrite(led2Pin, led2On);

             if (last3Button == LOW && current3Button == HIGH)                                                                             	  {
	    led3On = !led3On;
	  }
	     last3Button = current3Button;
	    digitalWrite(led3Pin, led3On);
          
            if (last4Button == LOW && current4Button == HIGH)                                                                             	  {
	    led4On = !led4On;
	  }
	     last4Button = current4Button;
	    digitalWrite(led4Pin, led4On);

            if (last5Button == LOW && current5Button == HIGH)                                                                             	  {
	    led5On = !led5On;
	  }
	     last5Button = current5Button;
	    digitalWrite(led5Pin, led5On);

             if (last6Button == LOW && current6Button == HIGH)                                                                             	  {
	    led6On = !led6On;
	  }
	     last6Button = current6Button;
	    digitalWrite(led6Pin, led6On);
            
	 }
	  
	  
	 boolean debounce1(boolean last1)
	{
	  boolean current1 = digitalRead(switch1Pin);
	  if (last1 != current1)
	  {
	    delay(5);
	    current1 = digitalRead(switch1Pin);
	  }
	  return current1;
	}
	 boolean debounce2(boolean last2)
	{
	  boolean current2 = digitalRead(switch2Pin);
	  if (last2 != current2)
	  {
	    delay(5);
	    current2 = digitalRead(switch2Pin);
	  }
	  return current2;
	}
           boolean debounce3(boolean last3)
	{
	  boolean current3 = digitalRead(switch3Pin);
	  if (last3 != current3)
	  {
	    delay(5);
	    current3 = digitalRead(switch3Pin);
	  }
	  return current3;
	}
          boolean debounce4(boolean last4)
	{
	  boolean current4 = digitalRead(switch4Pin);
	  if (last4 != current4)
	  {
	    delay(5);
	    current4 = digitalRead(switch4Pin);
	  }
	  return current4;
	}
           boolean debounce5(boolean last5)
	{
	  boolean current5 = digitalRead(switch5Pin);
	  if (last5 != current5)
	  {
	    delay(5);
	    current5 = digitalRead(switch5Pin);
	  }
	  return current5;
	}
           boolean debounce6(boolean last6)
	{
	  boolean current6 = digitalRead(switch6Pin);
	  if (last6 != current6)
	  {
	    delay(5);
	    current6 = digitalRead(switch6Pin);
	  }
	  return current6;
        }

 

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

vadnik140 пишет:

Очень жаль.Помощи,видимо,ждать не от кого. Вот так и пропадает желание заниматься чем-то новым.Выкину эту Дуину и буду дальше автомобили шить.... Обидно!!!

vadnik140 пишет:

Слыш,ты,умник! Я смотрю.ты самый деловой тут на форуме. Нечего сказать то теме-заткни хлебало.

будь последовательным. хотел срач - ты ега получил.

vadnik140
Offline
Зарегистрирован: 13.12.2013

Клапауций пишет:

vadnik140 пишет:

Очень жаль.Помощи,видимо,ждать не от кого. Вот так и пропадает желание заниматься чем-то новым.Выкину эту Дуину и буду дальше автомобили шить.... Обидно!!!

vadnik140 пишет:

Слыш,ты,умник! Я смотрю.ты самый деловой тут на форуме. Нечего сказать то теме-заткни хлебало.

будь последовательным. хотел срач - ты ега получил.

Я так понял,что ты форум посещаешь чтобы "срачи" устраивать? Интересно,ты в жизни тоже такой дерзкий? Сразу прям наезжаешь кого первый раз в жизни видишь. Или это только за монитором происходит?

Совет: веди сябя спокойней,нечего сказать-молчи. А то как чертик из коробочки- раз и выскочил! Клоун.

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

vadnik140 пишет:

Я так понял,что ты форум посещаешь чтобы "срачи" устраивать? Интересно,ты в жизни тоже такой дерзкий? Сразу прям наезжаешь кого первый раз в жизни видишь. Или это только за монитором происходит?

Совет: веди сябя спокойней,нечего сказать-молчи. А то как чертик из коробочки- раз и выскочил! Клоун.

прочитай свой второй пост и примени свои пожелания к себе - никто ещё и ответить тебе не успел, а ты уже обиделсо на всех... и дуино не такая простая, и рекламщики обманули, а на форуме вообще игнорируют.

если бы я не начал нагнетать - тебе бы никто и не помог... неужели не понятно?

vadnik140
Offline
Зарегистрирован: 13.12.2013

Клапауций пишет:

vadnik140 пишет:

Я так понял,что ты форум посещаешь чтобы "срачи" устраивать? Интересно,ты в жизни тоже такой дерзкий? Сразу прям наезжаешь кого первый раз в жизни видишь. Или это только за монитором происходит?

Совет: веди сябя спокойней,нечего сказать-молчи. А то как чертик из коробочки- раз и выскочил! Клоун.

прочитай свой второй пост и примени свои пожелания к себе - никто ещё и ответить тебе не успел, а ты уже обиделсо на всех... и дуино не такая простая, и рекламщики обманули, а на форуме вообще игнорируют.

если бы я не начал нагнетать - тебе бы никто и не помог... неужели не понятно?

Для меня не понятно,не так воспитан.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

6 раз вызывать debounce? Неужто нельзя в одном debounce сканировать 6 кнопок?

vadnik140
Offline
Зарегистрирован: 13.12.2013

Tomasina пишет:

6 раз вызывать debounce? Неужто нельзя в одном debounce сканировать 6 кнопок?

Я только учюсь и понятия не имею как это сделать. Если можете покажите как. Спасибо!

vvadim
Offline
Зарегистрирован: 23.05.2012
vadnik140
Offline
Зарегистрирован: 13.12.2013

vvadim пишет:

Ну и не помешает почитать http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

Извините,уже понял,исправлюсь.

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Tomasina пишет:

6 раз вызывать debounce? Неужто нельзя в одном debounce сканировать 6 кнопок?

А как сканировать одним debounce несколько кнопок? Подскажите чайникам направление

vvadim
Offline
Зарегистрирован: 23.05.2012

Может и можно, а зачем?

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

 

на будушее , в копилку знаний

vadnik140
Offline
Зарегистрирован: 13.12.2013

Tomasina пишет:

6 раз вызывать debounce? Неужто нельзя в одном debounce сканировать 6 кнопок?

Если не трудно покажите как. Народ интересуется. Спасибо.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Делаете одну функцию, передаете в нее lastX и switchXPin, а там уже и сравниваете. Размер скетча умеьшится почти в 5 раз :)

 

ПС: Эх, такое начало пропустил....