не работает кнопка

alex1608
Offline
Зарегистрирован: 01.09.2015

не работает скейч выбор кнопками

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
 
 #define regim 10 
 #define regim2 11 
 #define oborot 1 
 #define oborot2 0
 void DS(){
   
  lcd.clear();
  lcd.setCursor(1, 1);
    lcd.print("DPKV");
    delay (10);
 }
  void   V(){  lcd.clear();
  lcd.setCursor(0, 1);
    lcd.print("ISKRA");
    delay (10);}
    
  void   fors(){ 
      lcd.clear();
  lcd.setCursor(1, 1);
    lcd.print("FORS");
    delay (10);}
    
void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
   pinMode(regim, INPUT);
   pinMode(regim2, INPUT);
   pinMode(oborot, INPUT);
   pinMode(oborot2, INPUT);
}

void loop(){
    
if (digitalRead (regim) == HIGH  ) 
 {V();}
else  (digitalRead (regim) == LOW )
{DS();}
delay(10);
}


 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Печально.

А что он должен делать? Что он делает? Чем второе отличается от первого? Не опишете? Самим догадываться?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Вот я смотрю на ваш скетч. Вы что его писали от балды 

/**/
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

#define regim 10
#define regim2 11
#define oborot 1
#define oborot2 0
/**/
void DS() {
  lcd.clear();
  lcd.setCursor(1, 1);
  lcd.print("DPKV");
  delay (10);
}
/**/
void   V() {
  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print("ISKRA");
  delay (10);
}
/**/
void   fors() {
  lcd.clear();
  lcd.setCursor(1, 1);
  lcd.print("FORS");
  delay (10);
}
//-------------------------------
void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  pinMode(regim, INPUT);
  pinMode(regim2, INPUT);
  pinMode(oborot, INPUT);
  pinMode(oborot2, INPUT);
}
void loop() {
  if (digitalRead (regim) == HIGH )  {
    V();
  }
  else {
    DS();
  }
  delay(10);
}

 

alex1608
Offline
Зарегистрирован: 01.09.2015

писал не от балды должен  в зависимости от сосотояния кнопок  (выв 10,11,1,0 )должен был вополнять  определеное действие   но он пока ина этом выдавал ошибку по этому пока далее не углублялся 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

alex1608.У вас там херня написана. Кнопка должна быть с подтяжкой. Где код для борьбы с дребезгом. Нет этого. А без этого нет работы.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

alex1608 пишет:

но он пока ина этом выдавал ошибку по этому пока далее не углублялся 

Кто "он" и какую ошибку? Из Вас клещами всё тянуть?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

qwone пишет:

 Кнопка должна быть с подтяжкой. Где код для борьбы с дребезгом. Нет этого. А без этого нет работы.

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

kalapanga
Offline
Зарегистрирован: 23.10.2016

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

В строке 39 либо напишите else if​, либо выкинте всё, что после else написано. И читайте раздел Программирование - ссылка вверху сайта. Оператор If..else

alex1608
Offline
Зарегистрирован: 01.09.2015

компиятор ардуино выдавал     expected ';' before '{' token  

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

alex1608 пишет:

компиятор ардуино выдавал     expected ';' before '{' token  

Вы издеваетесь?

Вам же ясно сказали

kalapanga пишет:

необходимо скопировать сюда полный текст сообщения об ошибке.

Вы понимаете, что означает слово "полный"?

Там ведь и номер строки есть!

Короче, если Вам нужна помощь, делайте что говорят, я больше не буду из Вас силой ничего вытаскивать, в конце концов кому это надо, мне или Вам?

alex1608
Offline
Зарегистрирован: 01.09.2015
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\eightanaloginputs" "-IC:\Program Files (x86)\Arduino\libraries\LiquidCrystal\src" "C:\Users\aser\AppData\Local\Temp\arduino_build_309177\sketch\sketch_jan08b.ino.cpp" -o "C:\Users\aser\AppData\Local\Temp\arduino_build_309177\sketch\sketch_jan08b.ino.cpp.o"
C:\Users\aser\AppData\Local\Temp\arduino_modified_sketch_342525\sketch_jan08b.ino: In function 'void loop()':
 
sketch_jan08b:40: error: expected ';' before '{' token
 
 {DS();}
 
 ^
 
Используем библиотеку LiquidCrystal версии 1.0.7 из папки: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal 
exit status 1
expected ';' before '{' token
 
так ЧТО ЛИ ?
------НОВИЧЕК Я ЕЩЕ В ЭТОМ --
nik182
Offline
Зарегистрирован: 04.05.2015

После else в 39 строке поставьте две косые прямые палочки //

kalapanga
Offline
Зарегистрирован: 23.10.2016

alex1608 пишет:

компиятор ардуино выдавал     expected ';' before '{' token  

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

Я же во втором абзаце сообщения #7 написал, как Ваш оператор if исправить. Он у Вас с ошибкой написан.

see_watson
Offline
Зарегистрирован: 03.11.2016
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
 
 #define regim 10 
 #define regim2 11 
 #define oborot 1 
 #define oborot2 0
 void DS(){
   
  lcd.clear();
  lcd.setCursor(1, 1);
    lcd.print("DPKV");
    delay (10);
 }
  void   V(){  lcd.clear();
  lcd.setCursor(0, 1);
    lcd.print("ISKRA");
    delay (10);}
    
  void   fors(){ 
      lcd.clear();
  lcd.setCursor(1, 1);
    lcd.print("FORS");
    delay (10);}
    
void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
   pinMode(regim, INPUT);
   pinMode(regim2, INPUT);
   pinMode(oborot, INPUT);
   pinMode(oborot2, INPUT);
}

void loop(){
    
if (digitalRead (regim) == HIGH  ) 
 {V();}
else  
{DS();}
delay(10);
}

У вас уже используется условие if(если regim = = HIGH, те (1) ),  else(иначе) при любом другом значении. T.е. (digitalRead (regim) == LOW ) писать не надо.

b707
Offline
Зарегистрирован: 26.05.2017

alex1608 пишет:

я по разному ставил скобки всеравно ошибка шла

Потому что методом тыка не программируют. Сначала учебник прочитайте от начала до конца. а потом в код лезьте.