Skocz do zawartości

Kurs Arduino - #7 - Wyświetlacz tekstowy, LCD 2x16


Komentator

Pomocna odpowiedź

Czy sterowanie jasnością podświetlania można by zrobić całkiem analogowo, tak jak sterowanie kontrastem wyświetlacza? To znaczy wyjście z potencjometru podpiąć bezpośrednio pod pin 15 wyświetlacza (Vpod). Czy takie rozwiązanie byłoby mniej szkodliwe dla płytki? Czy dobrze rozumiem, że prąd pobierany z pinu 5V nie przechodzi przez mikrokontroler?

 

Edytowano przez LukaszWiktor
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Moje dzieła 😛

Zadanie 7.1:
image.thumb.png.91945104ff3669050cb8187b3662441c.png

 

Zadanie 7.4

#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

#define STARTBUTTON 8
#define STOPBUTTON 9

int recordTime = 0;

void setup() {
  lcd.begin(16, 2);
  lcd.clear();

  pinMode(STARTBUTTON, INPUT_PULLUP);
  pinMode(STOPBUTTON, INPUT_PULLUP);
}

void loop() {
  if(digitalRead(STARTBUTTON) == LOW){
    lcd.clear();
    recordTime = 0;
    while(digitalRead(STOPBUTTON) == HIGH){
      recordTime = recordTime + 1;
      lcd.setCursor(0, 0);
      lcd.print(recordTime);
      delay(1000);
    }
  }else if(digitalRead(STOPBUTTON) == LOW){
    lcd.clear();
    Serial.println(recordTime);
    lcd.setCursor(0, 0);
    lcd.print("KONIEC");
    lcd.setCursor(0, 1);
    lcd.print(String(recordTime) + " sekund");
    delay(1000);
  };
  
  delay(50);
}

 

  • Lubię! 1
Link do komentarza
Share on other sites

#include <LiquidCrystal.h> //Library adding 
LiquidCrystal lcd(2,3,4,5,6,7); //Info that new display is connected 
int sec = 0; //beginning second value
boolean Start = false; //beginning bool status

void setup() {
  lcd.begin(16,2); //Type declaration
  lcd.setCursor(0,0); //Cursor set
  lcd.print("Stopwatch"); //Text display
  lcd.setCursor(0,1); //Cursor set
  lcd.print("Second: "); //Text display
  lcd.print(sec); //value display
  pinMode(12, INPUT_PULLUP); //Start switch
  pinMode(13, INPUT_PULLUP); //Stop switch
}

void loop() {
  if(digitalRead(12) == LOW) { //if start switch press
    Start = true; //assignment bool status as true
    while(Start == true) { //if bool status is true
      delay(1000); //time of counting
      sec = sec + 1; //second counting
      lcd.setCursor(0,0); //Cursor set
      lcd.setCursor(0,1); //Cursor set
      lcd.print("Second: "); //Text display
      lcd.print(sec); //value display
      if(digitalRead(13) == LOW) { //if stop switch press
        Start = false; //assignment bool status as false
        while(Start == false) { //if bool status is false
          lcd.setCursor(10,0); //Cursor set
          lcd.print("Stop"); //Text display
          lcd.setCursor(0,1); //Cursor set
          lcd.print("Second: "); //Text display
          lcd.print(sec); //value display
        }
      }
    }
  } 
}

Zadanie 7.4

lcd.setCursor(0,0); //Cursor set
  lcd.print("Stopwatch"); //Text display
  lcd.setCursor(0,1); //Cursor set
  lcd.print("00"); //beginning minute value display
  lcd.setCursor(2,1); //Cursor set
  lcd.print(":"); //colon display
  lcd.setCursor(3,1); //Cursor set
  lcd.print("00"); //beginning second value display
  lcd.setCursor(5,1); //Cursor set
  lcd.print("."); //dot display
  lcd.setCursor(6,1); //Cursor set
  lcd.print("00"); //beginning milisecond value display
  pinMode(12, INPUT_PULLUP); //Start switch
  pinMode(13, INPUT_PULLUP); //Stop switch
}

void loop() {
  if(digitalRead(12) == LOW) { //if start switch press
    Start = true; //assignment bool status as true 
    while(Start == true) { //if bool status is start
      delay(7); //time of milisecond counting
      mili = mili + 1; //milisecond counting
      if(mili < 10) { //if milisecond value is less than 10
        lcd.setCursor(7,1);//Cursor set
        lcd.print(mili); //milisecond value display
        lcd.setCursor(6,1); //Cursor set
        lcd.print("0"); //milisecond value display
      } else if(mili < 100) { //if milisecond value is less than 100
        lcd.setCursor(6,1); //Cursor set
        lcd.print(mili); //milisecond value display
        }
        if(mili == 100) { //if milisecond value is equal 100
          mili = 0; //assignment milisecond value on 0
          sec = sec + 1; //second counting
        }
        if(sec < 10) { //if second value is less than 10
          lcd.setCursor(4,1); //Cursor set
          lcd.print(sec); //second value display
          lcd.setCursor(3,1); //Cursor set
          lcd.print("0"); //second value display
        } else { //if second value is greater than 9
          lcd.setCursor(3,1); //Cursor set
          lcd.print(sec); //second value display
        }
        if(min == 0) { //if minute value is equal 0
          lcd.setCursor(0,1); //Cursor set
          lcd.print("00"); //minute value display
        }
        if(sec == 60) { //if second value is equal 60
          sec = 0; //assignment second value on 0
          min = min + 1; //minute counting
          if(min < 10) { //if minute value is less than 10
            lcd.setCursor(1,1); //Cursor set
            lcd.print(min); //minute value display
            lcd.setCursor(0,1); //Cursor set
            lcd.print("0"); //minute value display
          } else { //if minute value is greater than 9
            lcd.setCursor(0,1); //Cursor set
            lcd.print(min); //minute value display
          }
        }
      if(digitalRead(13) == LOW) { //if stop switch press
        Start = false; //assignment bool status as true 
        while(Start == false) { //if bool status is not start
          lcd.setCursor(10,0); //Cursor set
          lcd.print("Stop"); //Text display
          if(digitalRead(13) == LOW && digitalRead(12) == LOW) { //reset function
            delay(3000);
            resetFunc();
          }
        }
      }
    }
  }
}

Trochę ulepszone

Link do komentarza
Share on other sites

Cześć,

Podlaczylem do UNO wyswietlacz z czterema wejsciami, sciagnalem biblioteke, zainstalowalem ,ale przy kompilacji wciaz wyswietla mi sie bląd jak w załączonym obrazku

Probowalem tez instalowac inne biblioteki typu I2C i zmieniac nazwe w programie, ale efekt jest wciaz taki sam

Prośba o poradę co robię nie tak

pozdrawiam

blad.jpg

Link do komentarza
Share on other sites

Ok popytam tam

Podpiąłem ta bibliotekę w treści programu zgodnie z kursem Forbot i poszło dalej ale tym razem przy kompilacji wywaliło polecenie POSITIVE, choć jest zgodnie z kodem

 

20240415_105940.jpg

Link do komentarza
Share on other sites

(edytowany)
24 minuty temu, sebura napisał:

Podpiąłem ta bibliotekę

Którą bibliotekę? Na pewno masz właściwą (bo one się mnożyły jak króliki)?

 

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.