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

x-files.dawleto...
Offline
Зарегистрирован: 09.01.2018

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

помогите найти ошибку

int a = 0;
int button =0;
int buttonstate = 0;
int f =0;
 
const int led = 13; // пульты подсоединены к контакту 13
const int kupura = 2; //монетник подсоединен к контакту 2
const int buttonpin =3; // кнопка запуска времени подсоединен к контакту 3
const int led2 = A0; // светодиод кнопки
const int leda = A1; // светодиод На старт
const int ledb = A2; // светодиод внимание
const int ledc = A3; // светодиод марш
 
 // дисплей WH1602
#include <LiquidCrystal_.h>  
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);// распиновка дисплея                       
 
void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT); // пульт выходной сигнал
  pinMode(kupura, INPUT); // монетник входной сигнал
  pinMode(buttonpin, INPUT); // кнопка входной сигнал
  pinMode(led2, OUTPUT); // светодиод выходной сигнал
  pinMode(leda, OUTPUT); // светодиод на старт
  pinMode(ledb, OUTPUT); // светодиод внимание
  pinMode(ledc, OUTPUT); // светодиод марш
 
   Serial.println("coin ready");// написать на экране койн готов
  lcd.begin(16,2); // 16 символов 2 строки
  lcd.clear();// очистить экран
  lcd.setCursor(0,0);lcd.print("balans");
  lcd.setCursor(0,1);lcd.print(a);
  delay(500);// ждать 1 сек
}
 
void loop() {
  buttonstate = digitalRead(kupura);
  button = digitalRead(buttonpin);
   
         
 if (buttonstate == HIGH) {
    a++;
    a=a;
    delay(70);
    Serial.println(a);
 
     lcd.clear();
    lcd.setCursor(0,0);lcd.print("balans");
     lcd.setCursor(0,1);lcd.print(a);
     
 }
    if (button == HIGH) {
    f=1;
  }
  else {
    f=0;
  }
     if (a>=30) {
      digitalWrite(led2, HIGH);
      }
         else {
      digitalWrite(led2, LOW);
    }
  
    if (a>=30 && f == 1) {
      a=a-30;
       a=a;
      lcd.clear();
    lcd.setCursor(0,0);lcd.print("balans");
     lcd.setCursor(0,1);lcd.print(a);
     if (a<30) {
      digitalWrite(led2, LOW);
      }
         else {
      digitalWrite(led2, LOW);
    }
  
      digitalWrite(led, HIGH);
        delay(2000);
       digitalWrite(leda, HIGH); // red
        delay(2000);
        digitalWrite(ledb, HIGH); //yellow
        delay(2000);
        digitalWrite(ledc, HIGH);  // gren
        delay(2000);
         digitalWrite(leda, LOW);
         digitalWrite(ledb, LOW); 
         digitalWrite(ledc, LOW);
 
        
      //f=0;
      delay(176000);
      digitalWrite(led, LOW);
      
 
      
     
    }
    else {
      digitalWrite(led, LOW);
       digitalWrite(leda, LOW);
       digitalWrite(ledb, LOW);
       digitalWrite(ledc, LOW);
    }
 
    
}
 
DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

1. Вставляйте код правильно: http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

2. Это раздел ВОЗМЕЗДНОЙ помощи, вы уверены, что вам сюда?

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

DIYMan пишет:

вы уверены, что вам сюда?

Думаю, он правильный раздел выбрал, так как

x-files.dawletow@mail.ru пишет:

помогите найти ошибку

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

KVadik
KVadik аватар
Offline
Зарегистрирован: 15.06.2014

ЕвгенийП пишет:

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

Судя по слову "LSD", такой дисплей может выдавать что угодно без всяких ардуин. ;)

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

Ну любит у нас народ LSD! Что с этим поделаешь!