• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Wyprowadzenia wyświetlacza LED 8 segmentowy 4 cyfrowy. Test czy działa.
#16
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
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Wyprowadzenia wyświetlacza LED 8 segmentowy 4 cyfrowy. Test czy działa. - przez Ronin - 10-11-2017, 19:08

Skocz do:


Przeglądający: 1 gości