Mabo
Użytkownicy-
Zawartość
16 -
Rejestracja
-
Ostatnio
Informacje
-
Płeć
Mężczyzna
Ostatnio na profilu byli
Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.
Osiągnięcia użytkownika Mabo
-
Witam, czy podłączenie do Arduino wyświetlacza z takim sterownikiem będzie różniło się od klasyka z HD44780?
-
Dziękuję wszystkim za pomoc - problem leżał w bibliotece a dokładnie pliku Potentiometer.h. Udało mi się znaleźć właściwa (nie najnowszą) wersje - i teraz wszystko śmiga 🙂
-
Najprostszy kod (płytka pracuje jako adapter do podłączenia fizycznych elementów do symulatora lotu) DCS: #define DCSBIOS_IRQ_SERIAL #include <DcsBios.h> DcsBios::Potentiometer tacVolKnob("TAC_VOL_KNOB", A0); void setup() { DcsBios::setup(); } void loop() { DcsBios::loop(); } U kolegi działa to OK, u mnie niestety potencjometr "zapycha" komunikację. Wymienię płytkę MEGA i zobaczymy - innej przyczyny nie widzę. Ale oczywiście będę wdzięczny za pomysł jeśli jest jakaś alternatywa 🙂 PS. Sprawdziłem dla pewności bibliotekę DcsBios.h - mam ostatnią wersję: czyli to też nie to.
-
Inaczej zapytam: w monitorze portu szeregowego powinny pojawiać się symbole tylko w czasie obrotu czy non stop?
-
Mam pytanie: czy potencjometr wysyła sygnał bez przerwy czy tylko w momencie obrotu? Mam sprzeczne informacje i nie wiem czy problem leży w płytce czy to normalne zachowanie. Czy ewentualnie jest możliwe zastopowanie tego sygnału jeśli potencjometr pozostaje nieruchomy? Podłączenie kilku częściowo obróconych potencjometrów powoduje zawieszenie płytki.
-
To ręczne wpisywanie mi jakoś nie wychodzi - cyfry nakładają się na siebie. Co robię źle? #define DCSBIOS_IRQ_SERIAL #include <SevenSeg.h> #include <DcsBios.h> SevenSeg disp(2, 3, 4, 5, 6, 7, 8); const int numOfDigits = 6; int digitPins1[] = {A0,A1}; int digitPins2[] = {A2}; int digitPins3[] = {A3}; int digitPins4[] = {A4,A5}; DcsBios::StringBuffer<2> vhfamFreq1StrBuffer(0x1190, NULL); DcsBios::IntegerBuffer vhfamFreq2Buffer(0x118e, 0x00f0, 4, NULL); DcsBios::IntegerBuffer vhfamFreq3Buffer(0x118e, 0x0f00, 8, NULL); DcsBios::StringBuffer<2> vhfamFreq4StrBuffer(0x1192, NULL); void setup() { DcsBios::setup(); disp1.setDigitPins(numOfDigits, digitPins1); disp2.setDigitPins(numOfDigits, digitPins2); disp3.setDigitPins(numOfDigits, digitPins3); disp4.setDigitPins(numOfDigits, digitPins4); } void loop() { DcsBios::loop(); disp1.write(vhfamFreq1StrBuffer.getData()); disp1.clearDisp(); disp2.write(vhfamFreq2Buffer.getData()); disp2.clearDisp(); disp3.write(vhfamFreq3Buffer.getData()); disp3.clearDisp(); disp4.write(vhfamFreq4StrBuffer.getData()); disp4.clearDisp(); }
-
Witam! Mam problem z powyższym - chciałem podpiąć 5 1 i 2-sekcyjnych wyświetlaczy ale powyżej 2-3 zaczynają migotać. Zakładam że to odświeżanie - czy można coś na to poradzić? Mój projekt zakłada export danych z symulatora lotu DCS A-10C stąd biblioteka DCS-BIOS. #define DCSBIOS_IRQ_SERIAL #include <SevenSeg.h> #include <DcsBios.h> SevenSeg disp1(2, 3, 4, 5, 6, 7, 8); SevenSeg disp2(2, 3, 4, 5, 6, 7, 8); SevenSeg disp3(2, 3, 4, 5, 6, 7, 8); SevenSeg disp4(2, 3, 4, 5, 6, 7, 8); SevenSeg disp5(2, 3, 4, 5, 6, 7, 8); const int numOfDigits1 = 2; const int numOfDigits2 = 1; const int numOfDigits3 = 1; const int numOfDigits4 = 2; const int numOfDigits5 = 2; int digitPins1[] = {A0,A1}; int digitPins2[] = {A2}; int digitPins3[] = {A3}; int digitPins4[] = {A4,A6}; int digitPins5[] = {12,11}; DcsBios::StringBuffer<2> vhfamFreq1StrBuffer(0x1190, NULL); DcsBios::StringBuffer<1> vhfamFreq2StrBuffer(0x118e, NULL); DcsBios::StringBuffer<1> vhfamFreq3StrBuffer(0x118e, NULL); DcsBios::StringBuffer<2> vhfamFreq4StrBuffer(0x1192, NULL); DcsBios::StringBuffer<2> vhfamPresetStrBuffer(0x118a, NULL); void setup() { DcsBios::setup(); disp1.setDigitPins(numOfDigits1, digitPins1); disp2.setDigitPins(numOfDigits2, digitPins2); disp3.setDigitPins(numOfDigits3, digitPins3); disp4.setDigitPins(numOfDigits4, digitPins4); disp5.setDigitPins(numOfDigits5, digitPins5); } void loop() { DcsBios::loop(); disp1.write(vhfamFreq1StrBuffer.getData()); disp1.clearDisp(); disp2.write(vhfamFreq2StrBuffer.getData()); disp2.clearDisp(); disp3.write(vhfamFreq3StrBuffer.getData()); disp3.clearDisp(); disp4.write(vhfamFreq4StrBuffer.getData()); disp4.clearDisp(); disp5.write(vhfamPresetStrBuffer.getData()); disp5.clearDisp(); }
-
Dzięki Panowie - już wszystko działa 🙂
-
Sorry, ale jestem jeszcze zielony. Jaką pętle powinienem zastosować / ewentualnie istniejącą jak zmodyfikować?
-
Fakt. Teraz czyści - pojawił się inny zgryz: przy wpisaniu MWS wyświetla zapis RDY i od razu OFF - czemu nie wychodzi z pętli po spełnieniu warunku i realizuje kolejną? #include <Wire.h> // standardowa biblioteka Arduino #include <LiquidCrystal_I2C.h> // dolaczenie pobranej biblioteki I2C dla LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Ustawienie adresu ukladu na 0x27 int wypelnienie = 0; int zmiana = 1; String odebraneDane = ""; void setup(){ Serial.begin(9600); lcd.begin(16,2); // Inicjalizacja LCD 2x16 lcd.backlight(); // zalaczenie podwietlenia lcd.setCursor(0,0); // Ustawienie kursora w pozycji 0,0 (pierwszy wiersz, pierwsza kolumna) lcd.print("OFF OFF OFF OFF"); lcd.setCursor(0,1); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("MWS JMR RWR DISP"); } void loop(){ Serial.println(odebraneDane); if(Serial.available() >0){ odebraneDane = Serial.readStringUntil('\n'); } if (odebraneDane == "MWS") { if (wypelnienie == 0) { lcd.setCursor(0,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); wypelnienie = wypelnienie + zmiana; odebraneDane = ""; delay(1000); } if (wypelnienie == 1) { lcd.setCursor(0,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("OFF"); wypelnienie = 0; odebraneDane = ""; delay(1000); } } if (odebraneDane == "JMR") { lcd.setCursor(4,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); odebraneDane = ""; } if (odebraneDane == "RWR") { lcd.setCursor(8,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); odebraneDane = ""; } if (odebraneDane == "DISP") { lcd.setCursor(12,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); odebraneDane = ""; } }
-
Mam zagwozdkę - próbuję napisać kod który umożliwi zmianę wyświetlanego tekstu po wpisaniu odpowiedniej sekwencji znaków w monitorze. Na razie taka zmiana jest ustawiona dla pierwszej pozycji MWS; po ponownym wpisaniu zaczyna naprzemiennie wyświetlacz oba przewidziane zestawy znaków (OFF i RDY) zamiast tylko ten drugi. Niestety mam z tym problem - będę wdzięczny za wskazówki jak to rozwiązać. #include <Wire.h> // standardowa biblioteka Arduino #include <LiquidCrystal_I2C.h> // dolaczenie pobranej biblioteki I2C dla LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Ustawienie adresu ukladu na 0x27 int wypelnienie = 0; int zmiana = 1; String odebraneDane = ""; void setup(){ Serial.begin(9600); lcd.begin(16,2); // Inicjalizacja LCD 2x16 lcd.backlight(); // zalaczenie podwietlenia lcd.setCursor(0,0); // Ustawienie kursora w pozycji 0,0 (pierwszy wiersz, pierwsza kolumna) lcd.print("OFF OFF OFF OFF"); lcd.setCursor(0,1); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("MWS JMR RWR DISP"); } void loop(){ if(Serial.available() >0){ odebraneDane = Serial.readStringUntil('\n'); } if (odebraneDane == "MWS") { if (wypelnienie == 0) { lcd.setCursor(0,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); wypelnienie = wypelnienie + zmiana; delay(1000); } if (wypelnienie == 1) { lcd.setCursor(0,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("OFF"); wypelnienie = 0; delay(1000); } } if (odebraneDane == "JMR") { lcd.setCursor(4,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); } if (odebraneDane == "RWR") { lcd.setCursor(8,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); } if (odebraneDane == "DISP") { lcd.setCursor(12,0); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("RDY"); } }
-
Przy kompilacji: no matching function for call to 'LiquidCrystal_I2C::begin()' Powinienem usunąć wcześniejsze biblioteki Liquid??? [ Dodano: 25-03-2016, 18:33 ] OK, problem rozwiązany. usunąłem wszystkie biblioteki Liquid, zainstalowałem na nowo soft i wessałem tylko tą bibliotekę ze strony. I wszystko śmiga!
-
/* * LCM1602 & Arduino Uno * VCC - > 5 V * GND - GND * SCL -> A5 * SDA -> A4 */ #include <Wire.h> // standardowa biblioteka Arduino #include <LiquidCrystal_I2C.h> // dolaczenie pobranej biblioteki I2C dla LCD LiquidCrystal_I2C lcd(0x27, 16, 2); // Ustawienie adresu ukladu na 0x27 void setup() { lcd.begin(16,2); // Inicjalizacja LCD 2x16 lcd.backlight(); // zalaczenie podwietlenia lcd.setCursor(0,0); // Ustawienie kursora w pozycji 0,0 (pierwszy wiersz, pierwsza kolumna) lcd.print("Hello, world!"); delay(500); lcd.setCursor(0,1); //Ustawienie kursora w pozycji 0,0 (drugi wiersz, pierwsza kolumna) lcd.print("BOTLAND.com.pl"); } void loop() { lcd.backlight(); // zalaczenie podswietlenia delay(5000); lcd.noBacklight(); // wylaczenie podswietlenia delay(5000); }
-
-
true no matching function for call to 'LiquidCrystal_I2C::LiquidCrystal_I2C(int, int, int, int, int, int, int, int, int, bool)' 1 no matching function for call to 'LiquidCrystal_I2C::LiquidCrystal_I2C(int, int, int, int, int, int, int, int, int, int)'