Program do poprawienia. Co by zmienić aby go odchudzić? I jak zrobić żeby wynik wyświetlany był 00.00? Po 99 wskakiwała 1 . Np. 00.99 , 01.00, 01.01, 01.02..... Chce dołączyć te funkcje do mojego programu. Zamiast int x=0 można zapisać word x=0? To wtedy nie wejdzie na minus bez ustawiania zakresu?
Kod:
// Bibloteki
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
//Definiowanie pinów Arduino Uno
#define BUTTON1_PIN 2
#define BUTTON2_PIN 3
#define BUTTON3_PIN 4
#define BUTTON4_PIN 5
//Definiowanie zmiennej x
int x = 0;
void setup() {
pinMode(BUTTON1_PIN, INPUT_PULLUP);
pinMode(BUTTON2_PIN, INPUT_PULLUP);
pinMode(BUTTON3_PIN, INPUT_PULLUP);
pinMode(BUTTON4_PIN, INPUT_PULLUP);
Serial.begin(9600);
lcd.init();
lcd.clear();// czyszczenie ekranu
// Wyświetl wiadomość na wyświetlaczu LCD.
lcd.backlight();//Zapalanie podświetlenia
lcd.setCursor(0,0);// Ustawienie kursora na pierwszej lini i lewej stronie ekranu LCD
lcd.print("Licznik: 0000");//Wyświetlenie Licznik: 0000 na LCD
}
void loop() {
// Dodawanie + 1
if (digitalRead(BUTTON1_PIN) == LOW) {
while (digitalRead(BUTTON1_PIN) == HIGH) {}
x++;
// Ustawienie zakresu od 0 do 9999
x = constrain (x, 0, 9999);
delay(100);
Serial.print("Dodawanie: ");
Serial.print("Wartość zmiennej: ");
Serial.println(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("+ 1 :Suma: 0000");
lcd.setCursor(15,0);
if (x>9) lcd.setCursor(14,0);
if (x>99) lcd.setCursor(13,0);
if (x>999) lcd.setCursor(12,0);
lcd.print(x);
lcd.setCursor(0,1);
lcd.print(" RONIN & ");
delay(100);
}
//Odejmowanie - 1
if (digitalRead(BUTTON2_PIN) == LOW) {
while (digitalRead(BUTTON2_PIN) == HIGH) {}
x--;
// Ustawienie zakresu od 0 do 9999
x = constrain (x, 0, 9999);
Serial.print("Odejmowanie: ");
Serial.print("Wartość zmiennej: ");
Serial.println(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("- 1 :Suma: 0000");
lcd.setCursor(15,0);
if (x>9) lcd.setCursor(14,0);
if (x>99) lcd.setCursor(13,0);
if (x>999) lcd.setCursor(12,0);
lcd.print(x);
lcd.setCursor(0,1);
lcd.print(" ELEKTRODA");
delay(100);
}
//Dodawanie + 10
if (digitalRead(BUTTON3_PIN) == LOW) {
while (digitalRead(BUTTON3_PIN) == HIGH) {}
x+=10;
// Ustawienie zakresu od 0 do 9999
x = constrain (x, 0, 9999);
Serial.print("Dodawanie: ");
Serial.print("Wartość zmiennej: ");
Serial.println(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("+ 10:Suma: 0000");
lcd.setCursor(14,0);
if (x<=9) lcd.setCursor(15,0);
if (x>9) lcd.setCursor(14,0);
if (x>99) lcd.setCursor(13,0);
if (x>999) lcd.setCursor(12,0);
lcd.print(x);
lcd.setCursor(0,1);
lcd.print(" RONIN & ");
delay(100);
}
//Odejmowanie - 10
if (digitalRead(BUTTON4_PIN) == LOW) {
while (digitalRead(BUTTON4_PIN) == HIGH) {}
x-=10;
// Ustawienie zakresu od 0 do 9999
x = constrain (x, 0, 9999);
Serial.print("Odejmowanie: ");
Serial.print("Wartość zmiennej: ");
Serial.println(x);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("- 10:Suma: 0000");
lcd.setCursor(15,0);
if (x>9) lcd.setCursor(14,0);
if (x>99) lcd.setCursor(13,0);
if (x>999) lcd.setCursor(12,0);
lcd.print(x);
lcd.setCursor(0,1);
lcd.print(" ELEKTRODA");
delay(100);
}
}//Koniec