Skocz do zawartości

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


Komentator

Pomocna odpowiedź

Dobra to jeszcze jedno pytanie. Chcę użyć tego wyświetlacza:

http://www.artronic.com.pl/o_produkcie.php?id=1263

Czym się różni Vdd od Vcc? i jak to połączyć?

Mam jeszcze wniosek na przyszłość, żeby wstawiać również schematy w tradycyjnej formie. Początkujący by się przyzwyczajali do normalnych schematów a komuś kto nie korzysta z płytki arduino było by łatwiej korzystać z artykułów.

Link do komentarza
Share on other sites

Mechano, Vdd oraz Vcc jest tym samym, czyli dodatnim zasilaniem. Są to oznaczenia stosowane zamiennie. Zasilacz podłączasz identycznie jak w kursie (kolejność pinów).

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

zadanie 7.4

kod programu

#include <Wire.h>   // standardowa biblioteka Arduino
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 
#define przycisk 9
#define przycisk 10
int sec = 0;
void setup() {lcd.begin(16, 2); 
lcd.clear();//Deklaracja typu
 lcd.setCursor(0, 0); //Ustawienie kursora
 lcd.print("stoper: ");
 lcd.setCursor(0,1); //Ustawienie kursora
 lcd.print(sec);
 pinMode (9, INPUT_PULLUP);
pinMode (10, INPUT_PULLUP);
}

void loop() {if(digitalRead(10)== LOW){
 sec=0;
}
if (digitalRead(9)== LOW){
    lcd.clear();
  lcd.setCursor(0, 0); //Ustawienie kursora
 lcd.print("stoper: ");
 lcd.setCursor(0,1); //Ustawienie kursora
 lcd.print(sec);
     while ( digitalRead(10)==HIGH){
   lcd.setCursor(0,1); //Ustawienie kursora
 lcd.print(sec);
sec++;

 }
}
if (digitalRead(10)== LOW&&digitalRead(9)==HIGH && sec>0){

lcd.setCursor(7,1); //Ustawienie kursora
 lcd.print("zatrzymano");

}
}
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

Jest szansa na dodanie artykułu na temat wyświetlacza multipelksowanego 7-segmentowego SH5461AS ? Chodzi mi o samo podłączenie, wyjaśnienie pinów i skrótowo sterowanie przez Arduino (jakie polecenia do czego służą itp), chyba, że ktoś poratuje jakimś linkiem 😃 ? Ewentualnie 5161AS ? z góry dzięki za pomoc 🙂

Link do komentarza
Share on other sites

7.4 źle przeczytałem polecenie i mój stoper ma tylko jeden przycisk

#include <LiquidCrystal.h> //Dołączenie bilbioteki
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza
float czas =0;
int stan =0;

void setup()
{
 lcd.begin(16, 2); //Deklaracja typu
 pinMode(10, INPUT_PULLUP); //Przycisk
}

void loop() 
{
 if (digitalRead(10) == LOW) // przycisniecie 
 {
   lcd.clear();
   delay(200);
   stan = 1;
   czas = 0.2; // uwzglednienie poprzedniego delay
   while (stan == 1)
   {
       lcd.setCursor(0, 0); //Ustawienie kursora
       lcd.print("Pomiar czasu"); //Wyświetlenie tekstu
       czas = czas + 0.1;
       lcd.setCursor(0, 1); //Ustawienie kursora
       lcd.print(czas);
       lcd.print(" s");
       delay (100);
       if (digitalRead(10) == LOW) // kolejne przycisniecie 
       {
         stan = 0;
         delay(200); // usuniecie zaklocen 
       }
   }
 }
 lcd.clear();
 lcd.setCursor(0, 0); //Ustawienie kursora
 lcd.print("Ostatni pomiar");
 lcd.setCursor(0, 1); //Ustawienie kursora
 lcd.print(czas);
 lcd.print(" s");
 delay(200); // usuniecie zaklocen 

}
Link do komentarza
Share on other sites

Tak, problemy wynikały właśnie z użycia tylko jednego przycisku (program uruchamiał się i o razu zatrzymywał). Jednak wystarczyło dodać kilka opóźnień i uwzględnić to przy mierzeniu czasu (stoper nie mierzy od 0 tylko od 0,2!).

Link do komentarza
Share on other sites

Zadanie 7.4

#include <LiquidCrystal.h>
#define przyciskStart 8
#define przyciskStop 9
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
double czasStart;
double czasStop;
bool start = false;

void setup() {
 // put your setup code here, to run once:
 lcd.begin(16, 2);
 pinMode(przyciskStart, INPUT_PULLUP);
 pinMode(przyciskStop, INPUT_PULLUP);
 millis();
}

void loop() {
 poczatek();
 stoperStart();
 stoperStop();
}

void poczatek() {
 if (start == false) {
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Wcisni przycisk");
   lcd.setCursor(0, 1);
   lcd.print("start");
   delay(5);
 }
}
void stoperStart() {
 while (digitalRead(przyciskStart) == LOW) {
   czasStart = millis() / 1000.0;
   lcd.clear();
   start = true;
 }
 if (start == true) {
   lcd.setCursor(0, 0);
   lcd.print("Aktualny czas");
   lcd.setCursor(0, 1);
   lcd.print((millis() / 1000.0) - czasStart);
   lcd.print("sek");
 }
}

void stoperStop() {
 while (digitalRead(przyciskStop) == LOW) {
   czasStop = millis() / 1000.0;
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Koniec");
   lcd.setCursor(0, 1);
   lcd.print(czasStop - czasStart);
   lcd.print("sek");
   delay(4000);
   start = false;
 }
}
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.