#1 2018-07-29 16:36:54

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 8

Пожалуйста подскажите?

Как в эту програму добавить вторую кнопку чтобы она отменяла действие первой кнопкой



const int btn = 3; 
const int buzz = 4; 
byte val = 0; 
bool state = 0; 
 
void setup() {  
    pinMode(btn, INPUT);     
    pinMode(buzz, OUTPUT);     

 
void loop() { 
    val = digitalRead(btn); 
 
    if( val == HIGH){    
        state = !state; 
        delay(200); 
    } 
 
    if( state == true){    
        digitalWrite(buzz, HIGH);   
    } else { 
        digitalWrite(buzz, LOW);    
    } 

Редактировался Влад4325 (2018-07-29 16:41:56)

#2 2018-07-29 18:15:59

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 771

Re: Пожалуйста подскажите?

А чем повторное нажатие не устраивает ?

#3 2018-07-29 20:32:47

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 8

Re: Пожалуйста подскажите?

Для развития, хочу знать как

#4 2018-07-29 21:10:20

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 771

Re: Пожалуйста подскажите?

Тогда задавай нормально вопрос ...

#5 2018-07-29 22:06:41

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 8

Re: Пожалуйста подскажите?

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

#6 2018-07-30 07:09:32

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 771

Re: Пожалуйста подскажите?

const int btn_2 = 3;  
const int buzz = 4;  
byte val_2 = 0;  
bool state = false;;  

const int btn_1 = 2;  
byte val_1 = 0;
  
void setup() {   
    pinMode(btn_2, INPUT);     
    pinMode(buzz, OUTPUT);    

    pinMode(btn_1, INPUT); 	
}  
  
void loop() {  
    val_2 = digitalRead(btn_2);  
    if( val_2 == 1){ state = true; val_1 = 0; }  
  
    val_1 = digitalRead(btn_1);  
    if( val_1 == 1){ state = false; val_2 = 0; }    
  
  
    if( state == true){    
        digitalWrite(buzz, HIGH);   
    } else {  
        digitalWrite(buzz, LOW);    
    }  
} 

#7 2018-07-30 12:22:25

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 8

Re: Пожалуйста подскажите?

Вибило ошибку при компиляции







rduino: 1.8.5 (Windows 7), Плата:"Arduino/Genuino Uno"

sketch_jul30c:1: error: stray '\315' in program

const int btn_2 = 3Нѕ 

^

sketch_jul30c:1: error: stray '\276' in program

sketch_jul30c:2: error: stray '\315' in program

const int buzz = 4Нѕ 

^

sketch_jul30c:2: error: stray '\276' in program

sketch_jul30c:3: error: stray '\315' in program

byte val_2 = 0Нѕ 

^

sketch_jul30c:3: error: stray '\276' in program

sketch_jul30c:4: error: stray '\315' in program

bool state = falseНѕ 

^

sketch_jul30c:4: error: stray '\276' in program

sketch_jul30c:6: error: stray '\315' in program

const int btn_1 = 2Нѕ 

^

sketch_jul30c:6: error: stray '\276' in program

sketch_jul30c:7: error: stray '\315' in program

byte val_1 = 0Нѕ

^

sketch_jul30c:7: error: stray '\276' in program

sketch_jul30c:10: error: stray '\315' in program

     pinMode(btn_2, INPUT)Нѕ     

     ^

sketch_jul30c:10: error: stray '\276' in program

sketch_jul30c:11: error: stray '\315' in program

     pinMode(buzz, OUTPUT)Нѕ   

     ^

sketch_jul30c:11: error: stray '\276' in program

sketch_jul30c:13: error: stray '\315' in program

     pinMode(btn_1, INPUT)Нѕ   

     ^

sketch_jul30c:13: error: stray '\276' in program

sketch_jul30c:17: error: stray '\315' in program

     val_2 = digitalRead(btn_2)Нѕ 

     ^

sketch_jul30c:17: error: stray '\276' in program

sketch_jul30c:18: error: stray '\315' in program

     if( val_2 == 1){ state = trueНѕ val_1 = 0; } 

     ^

sketch_jul30c:18: error: stray '\276' in program

sketch_jul30c:20: error: stray '\315' in program

     val_1 = digitalRead(btn_1)Нѕ 

     ^

sketch_jul30c:20: error: stray '\276' in program

sketch_jul30c:21: error: stray '\315' in program

     if( val_1 == 1){ state = falseНѕ val_2 = 0; }   

     ^

sketch_jul30c:21: error: stray '\276' in program

sketch_jul30c:25: error: stray '\315' in program

         digitalWrite(buzz, HIGH)Нѕ   

         ^

sketch_jul30c:25: error: stray '\276' in program

sketch_jul30c:27: error: stray '\315' in program

         digitalWrite(buzz, LOW)Нѕ   

         ^

sketch_jul30c:27: error: stray '\276' in program

sketch_jul30c:2: error: expected ',' or ';' before 'const'

const int buzz = 4Нѕ 

^

C:\Users\z\Documents\Arduino\sketch_jul30c\sketch_jul30c.ino: In function 'void loop()':

sketch_jul30c:17: error: 'val_2' was not declared in this scope

     val_2 = digitalRead(btn_2)Нѕ 

     ^

sketch_jul30c:20: error: 'val_1' was not declared in this scope

     val_1 = digitalRead(btn_1)Нѕ 

     ^

sketch_jul30c:20: error: 'btn_1' was not declared in this scope

     val_1 = digitalRead(btn_1)Нѕ 

                         ^

sketch_jul30c:24: error: 'state' was not declared in this scope

     if( state == true){   

         ^

sketch_jul30c:25: error: 'buzz' was not declared in this scope

         digitalWrite(buzz, HIGH)Нѕ   

                      ^

sketch_jul30c:27: error: 'buzz' was not declared in this scope

         digitalWrite(buzz, LOW)Нѕ   

                      ^

exit status 1
stray '\315' in program

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

#8 2018-07-30 15:06:28

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 771

Re: Пожалуйста подскажите?

Скетч из ПЕРВОГО поста выдает такие же ошибки...
Это видимо проблема с кодировкой символов при копипасте...
Принцип в программе ясен как добавить вторую кнопку.

#9 2018-07-30 15:25:31

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 771

Re: Пожалуйста подскажите?

byte val2, val3;
boolean running = false;


void setup() {
	pinMode(3, INPUT);
    pinMode(4, OUTPUT);
    pinMode(2, INPUT);
	}

void loop() {
  val2 = digitalRead(3);
    if( val2 == 1){ running = true; val3 = 0; }  
  
    val3 = digitalRead(2);
    if( val3 == 1){ running = false; val2 = 0; }    
  
  
    if( running == true ){    
        digitalWrite(4, HIGH);
    } else {  
        digitalWrite(4, LOW);
    }  
	}

http://i.piccy.info/i9/d42f211f33f529381e6d3e927efd3222/1532953498/255333/1260586/2018_07_30_152426.jpg

#10 2018-07-30 15:59:05

Kaka
Участник
Зарегистрирован: 2018-03-21
Сообщений: 358

Re: Пожалуйста подскажите?

Влад4325 пишет:

Вибило ошибку при компиляции

Таки нехрен было тупо из Интернетов копипастить - там хренова гора управляющих символов, которые ты не видишь, а они есть.

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

#11 2018-07-30 16:39:43

Вячеслав Азаров
Участник
Зарегистрирован: 2017-05-25
Сообщений: 1,732

Re: Пожалуйста подскажите?

Kaka пишет:

Таки нехрен было тупо из Интернетов копипастить ...

Ха! Так это-ж "по нашему, по бразильски". Раньше, вон, IBM370 и Intel скопипастили и должен сказать успешно. Сейчас ARM в буффере обмена. А тут какой-то скетч к Ардуинке. Копирование - самая интенсивная операция в интеллектуальных технологиях и вычислительных машинах!

Редактировался Вячеслав Азаров (2018-07-30 18:49:52)

#12 2018-07-30 18:45:11

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 8

Re: Пожалуйста подскажите?

Да спасибо

#13 2018-07-30 21:12:05

Kaka
Участник
Зарегистрирован: 2018-03-21
Сообщений: 358

Re: Пожалуйста подскажите?

Вячеслав Азаров пишет:

Раньше, вон, IBM370 и Intel скопипастили и должен сказать успешно.

Так они удаляли нечитабельные символы!

Тырить - это тоже профессия и необходимо иметь профессиональные навыки. А некоторые считают, что мол типа "любая беременная доярка сможет" - хренушки, уметь надо!

#14 2018-07-31 16:49:58

Green
Участник
Зарегистрирован: 2015-11-08
Сообщений: 588

Re: Пожалуйста подскажите?

И не просто украсть, но и изменить, улучшить.) Вон, на китайцев посмотрите. Копируют, но не тупо, как некоторые.)

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела