Kijavitottam.
Meg a biztonsági dolgokat is megpróbálta M belevinni.
A gombok változó értéknövelő személyesen a secundumos várakozás szerintem arra jó hogy ha hosszabb an nyomom a gombot ne kapcsoljon végig. De ez csak tipp.
Kód: Egész kijelölése
/*jcb powershift transm. c.s.*/
#include "LiquidCrystal.h"
LiquidCrystal lcd(4,5,6,7,8,9);
byte gombok=5;
void setup() {
lcd.begin(16,2);
pinMode(A0,INPUT);//gomb+
pinMode(A1,INPUT);//gomb-
pinMode(A2,INPUT);//uzemi fek
pinMode(A3,INPUT);//kezi fek
pinMode(A4,INPUT);//motor uzem jel
pinMode(2,OUTPUT);//elorre irany
pinMode(3,OUTPUT);//hatra irany
pinMode(10,OUTPUT);//2 es fokozat
pinMode(11,OUTPUT);//3 as fokozat
pinMode(12,OUTPUT);//4 es fokozat
}
void loop() {
if(analogRead(A0)==HIGH){
delay(3);
gombok++;}
if(analogRead(A1)==HIGH){
delay(3);
gombok--;}
if(analogRead(A2)==HIGH){
delay(3);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
}
if(analogRead(A3)==HIGH){
delay(3);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("KEZIFEK BEHUZVA");
delay(1000);
lcd.clear();
delay(100);
}
if(gombok!=5 && analogRead(A4)==LOW){gombok=5;
lcd.setCursor(0,0);
lcd.print("ELINDULASHOZ");
lcd.setCursor(0,1);
lcd.print("NYOMJ FEKET");}
//ide lehet kotni motornak indito megszakitast is
/* pl:if(analogRead(A4)==LOW && analogRead(A2)==HIGH){digitalWite(x,HIGH);*/
//az x pin egy rellet vezerel ami a gepnek az indito jelet szakitja meg
// a motor uzemjelet akar az olajnyomas kapcsolorol is le tudom venni
//ha van olajnyomas akkor megy a motor(elmeletileg) :)
gombok=constrain(gombok,1,9);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("IRANY:");
lcd.setCursor(0,1);
lcd.print("FOKOZAT:");
switch (gombok){
case 5:
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
lcd.setCursor(7,0);
lcd.print("URES");
lcd.setCursor(9,1);
lcd.print("0");
break;
case 4:
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
lcd.setCursor(7,0);
lcd.print("HATRA");
lcd.setCursor(9,1);
lcd.print("1");
break;
case 3:
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
lcd.setCursor(7,0);
lcd.print("HATRA");
lcd.setCursor(9 1);
lcd.print("2");
break;
case 2:
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
lcd.setCursor(7,0);
lcd.print("HATRA");
lcd.setCursor(9,1);
lcd.print("3");
break;
case 1:
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
lcd.setCursor(7,0);
lcd.print("HATRA");
lcd.setCursor(9,1);
lcd.print("4");
break;
case 6:
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
lcd.setCursor(7,0);
lcd.print("ELORRE");
lcd.setCursor(9,1);
lcd.print("1");
break;
case 7:
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
lcd.setCursor(7,0);
lcd.print("ELORRE");
lcd.setCursor(9,1);
lcd.print("2");
break;
case 8:
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
lcd.setCursor(7,0);
lcd.print("ELORRE");
lcd.setCursor(9,1);
lcd.print("3");
break;
case 9:
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
lcd.setCursor(7,0);
lcd.print("ELORRE");
lcd.setCursor(9,1);
lcd.print("4");
break;}
}