Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'biblioteka'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 4 wyniki

  1. https://botland.com.pl/wyswietlacze-do-arduino/4464-wyswietlacz-dotykowy-lcd-tft-rev-21-28-320x240px-spi-z-czytnikiem-microsd-shield-dla-arduino-waveshare-10684-5904422352608.html?fbclid=IwAR2Hht_LptyxYgvWfRCcs2hXsaxTBfCIVZZ_2bvxIhDw3aLOmWfBDs7vRUw Witam, Chciałbym zapytać czy ktoś może pracował z tym wyświetlaczem i podpinał go do ESP 32? Bo nie wiem czy są gotowe biblioteki współpracujące z tym mikrokontrolerem a wyświetlaczem, (które działają) Ewentualnie czy ktoś, może mi podpowiedzieć jakieś dostępne alternatywy bo na ekranie dotykowym mi nie zależy, tylko nie na wielkości.
  2. Jak w temacie. Znalazłem do DevKita, do LoLin32, ale do Lite nie. Ktoś coś? Bo leniwy jestem i nie chcialbym tworzyć lbr-a od zera jeśli można go skądś zassać...
  3. Cześć, Zgodnie z instrukcją z kursu starałam się pobrać bibliotekę dla listwy LED GB WS2812 5050, ale kompilator wyświetla mi za każdym razem błąd, że brak plików nagłówkowych. Nie wiem jak to przejść, sprawdziłam i w tym folderze są pliki z .h. Pomocy :c Arduino:1.8.10 (Windows 10), Płytka:"Arduino/Genuino Uno" E:\Arduino\arduino-builder -dump-prefs -logger=machine -hardware E:\Arduino\hardware -tools E:\Arduino\tools-builder -tools E:\Arduino\hardware\tools\avr -built-in-libraries E:\Arduino\libraries -libraries C:\Users\Julia\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2341_0X0043 -ide-version=10810 -build-path C:\Users\Julia\AppData\Local\Temp\arduino_build_28598 -warnings=none -build-cache C:\Users\Julia\AppData\Local\Temp\arduino_cache_121167 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=E:\Arduino\hardware\tools\avr -verbose E:\Arduino-programy\linijkargb\linijkargb.ino E:\Arduino\arduino-builder -compile -logger=machine -hardware E:\Arduino\hardware -tools E:\Arduino\tools-builder -tools E:\Arduino\hardware\tools\avr -built-in-libraries E:\Arduino\libraries -libraries C:\Users\Julia\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2341_0X0043 -ide-version=10810 -build-path C:\Users\Julia\AppData\Local\Temp\arduino_build_28598 -warnings=none -build-cache C:\Users\Julia\AppData\Local\Temp\arduino_cache_121167 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=E:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=E:\Arduino\hardware\tools\avr -verbose E:\Arduino-programy\linijkargb\linijkargb.ino Using board 'uno' from platform in folder: E:\Arduino\hardware\arduino\avr Using core 'arduino' from platform in folder: E:\Arduino\hardware\arduino\avr Detecting libraries used... "E:\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10810 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IE:\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IE:\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "C:\\Users\\Julia\\AppData\\Local\\Temp\\arduino_build_28598\\sketch\\linijkargb.ino.cpp" -o nul Alternatives for Adafruit_NeoPixel.h: [] ResolveLibrary(Adafruit_NeoPixel.h) linijkargb:2:10: error: Adafruit_NeoPixel.h: No such file or directory -> candidates: [] #include <Adafruit_NeoPixel.h> //Dołączenie biblioteki ^~~~~~~~~~~~~~~~~~~~~ compilation terminated. exit status 1 Adafruit_NeoPixel.h: No such file or directory Błędna biblioteka znaleziona w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel: brak plików nagłówkowych (.h) w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel Błędna biblioteka znaleziona w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel-master: brak plików nagłówkowych (.h) w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel-master Błędna biblioteka znaleziona w C:\Users\Julia\Documents\Arduino\libraries\arduino_680093: brak plików nagłówkowych (.h) w C:\Users\Julia\Documents\Arduino\libraries\arduino_680093 Błędna biblioteka znaleziona w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel: brak plików nagłówkowych (.h) w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel Błędna biblioteka znaleziona w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel-master: brak plików nagłówkowych (.h) w C:\Users\Julia\Documents\Arduino\libraries\Adafruit_NeoPixel-master Błędna biblioteka znaleziona w C:\Users\Julia\Documents\Arduino\libraries\arduino_680093: brak plików nagłówkowych (.h) w C:\Users\Julia\Documents\Arduino\libraries\arduino_680093
  4. Moja pierwsza w życiu biblioteka Arduino! Na samym początku naszej przygody z Arduino spotkaliśmy się z najsłynniejszym "migaczem": void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } Bardzo szybko możemy się przekonać o tym, że funkcja delay() blokuje wykonywanie innych zadań w międzyczasie. W wielu wypadkach może to stwarzać problemy. To tak jakbyśmy o godzinie 23:00 zaprogramowali siebie: WŁĄCZ SEN odczekaj(7 godzin) WYŁĄCZ SEN PÓJDŹ DO PRACY odczekaj(8 godzin) WYJDŹ Z PRACY i przekonali się, że odczekaj(8 godzin) całkowicie "zamraża" nas i uniemożliwia jakąkolwiek pracę. Doskonale opisuje to artykuł Kurs Arduino II – #9 – wielozadaniowość, opóźnienia z millis(). Znajdziemy tam też bardzo dobre rozwiązanie tego problemu: unsigned long lastTimeLCD = 0; void setup() { .... } void loop() { CAŁY CZAS PRACUJ if (lastTimeLCD == 0 || millis() - lastTimeLCD >= 1000) { lastTimeLCD = millis(); UAKTUALNIJ ZAWARTOŚĆ WYŚWIETLACZA } } Co jeśli chcemy wykonac funkcję określoną ilość razy? Możemy oczywiście dopisywać dalsze warunki i zliczać już wykonaną ilość iteracji. unsigned long lastTimePicture = 0; int iterationsDone = 0; void setup() { .... } void loop() { CAŁY CZAS PRACUJ if (iterationsDone < 3 && (lastTimePicture == 0 || millis() - lastTimePicture >= 1000)) { iterationsDone++; lastTimePicture = millis(); WYKONAJ ZDJECIE LUSTRZANKA PODLACZONA DO ARDUINO } } Taka potrzeba istnieje np przy interwałometrze WiFi podłączonym do lustrzanki cyfrowej (np mikrokontroler ESP8266 hostuje stronę WWW sterującą aparatem albo ESP32, które sterujemy poprzez Bluetooth za pomocą dedykowanej aplikacji na Androida). Może on dostać np zadanie: poczekaj 10s przed rozpoczęciem, wykonaj serię 15. zdjęć o czasie naświetlania 2s i interwale 5s. Oczywiście nadal problem rozwiążemy naszą słynną instrukcją warunkową if(....millis()... jakieś kolejne liczniki i warunki). Przy wielu różnych zadaniach wywoływanych asynchronicznie nasz kod stanie się mniej czytelny. O wiele łatwiej o pomyłkę. Nie możemy w końcu pomylić wielu różnych zmiennych odpowiedzialnych za przechowywanie czasu ostatniego wykonania zadania, interwały, ilość wykonanych iteracji, ilość oczekiwanych iteracji... Ten niekończący się wstęp powinien uzmysłowić Wam powód, dla którego napisałem Arduino Timer Library RZtimer. Przykład wykorzystania jej dwóch podstawowych metod: - wykonaj funkcję blinkLED() co każde 2000 ms: timer.addEverytime(2000, blinkLED); - wykonaj funkcję itWorks() dwa razy z interwałem 2000 ms, poczekaj 300 ms przed startem: timer.addTask(2000, 2, 300, itWorks); Kod w całości: #include "RZtimer.h" RZTimer timer; void blinkLED(); void setup() { Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT); timer.addEverytime(2000, blinkLED); auto itWorks = []()->void {Serial.print("It Works! "); Serial.print(millis()); Serial.println(" ms");}; timer.addTask(300, 2, 2000, itWorks); } void loop() { timer.run(); } void blinkLED() { Serial.print("ON "); Serial.print(millis()); Serial.println(" ms"); digitalWrite(LED_BUILTIN, HIGH); auto blinkLEDoff = []()->void {digitalWrite(LED_BUILTIN, LOW); Serial.print("OFF "); Serial.print(millis()); Serial.println(" ms");}; timer.addTask(1000, 1, 0, blinkLEDoff); } RZTimer timer; tworzy obiekt timer klasy RZTimer. Przykładowe funkcje wykonywane cyklicznie to blinkLED() oraz itWorks(). Pierwszą zdefiniowałem "klasycznie", drugą w celach edukacyjnych jako wyrażenie lambda (w takich zastosowaniach mogą się one okazać całkiem wygodne w użyciu). Nie zapomnijmy o wstawieniu timer.run(); gdzieś w pętli loop! Dodatkowym (i chyba unikatowym 😉 atutem jest możliwość usypiania mikrokontrolera przy równoczesnym asynchronicznym wykonywaniu zadań! Poniższy przykład będzie działać jedynie z mikrokontrolerami wspieranymi przez bibliotekę narcoleptic. #include "RZtimer.h" #include <Narcoleptic.h> //https://github.com/rcook/narcoleptic void delaySleep(unsigned long sleepTime) { delay(30); extern volatile unsigned long timer0_millis; noInterrupts(); timer0_millis += (unsigned long)(sleepTime - 30); interrupts(); Narcoleptic.delay(sleepTime - 30); } RZTimerWithSleep timer(delaySleep); void blinkLED(); void setup() { Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT); timer.addEverytime(2000, blinkLED); auto itWorks = []()->void {Serial.print("It Works! "); Serial.print(millis()); Serial.println(" ms");}; timer.addTask(300, 2, 2000, itWorks); } void loop() { timer.run(); } void blinkLED() { Serial.print("ON "); Serial.print(millis()); Serial.println(" ms"); digitalWrite(LED_BUILTIN, HIGH); auto blinkLEDoff = []()->void {digitalWrite(LED_BUILTIN, LOW); Serial.print("OFF "); Serial.print(millis()); Serial.println(" ms");}; timer.addTask(1000, 1, 0, blinkLEDoff); } Po drobnych modyfikacjach biblioteka powinna działać też w programach C++ uruchomionych na Raspberry Pi. Np zamiast "Arduinowego" millis() powinniśmy skorzystać z funkcji clock(), a same wartości zmiennych przechowywać w typie danych clock_t. Przykład zastosowania: kontroler akwarium. Co sekundę odświeża zawartość LCD. Włącza i wyłącza pompę "utleniającą wodę" o zadanej porze. Co dwa tygodnie sprawdza synchronizację czasu łącząc się z serwerem NTP.
×
×
  • 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.