Skocz do zawartości

kaczakat

Użytkownicy
  • Zawartość

    300
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    5

Wszystko napisane przez kaczakat

  1. Zasilanie i logika nie do końca idą w parze, niektóre moduły wymagają zasilania 4.4V a logikę mają 2.8V (GSM) i na odwrót - NRF41l01 wymaga zasilania 3.3V, a radzi sobie z logiką 5V doskonale. Podciąganie linii komunikacyjne I2C powinno być dobrane adekwatnie do pojemności linii, napięcia zasilania i prędkości komunikacji. Ostatecznie można użyć jakiegoś multipleksera i zrobić przełącznik, 1 magistrala z uC, osiem urządzeń I2C na osobnych - TCA9548A I2C Multiplexer, rozdzielisz to co się ze sobą gryzie.
  2. Może korzystasz z gotowych modułów Arduino, każdy ma już swoje rezystory podciągające, Ty dokładasz jeszcze swoje. Moduły jak BME280 też często są przystosowane do komunikacji na poziomie 5V, bo są dla Arduino, jak im dokładasz konwerter to pogarszasz zamiast polepszać. Ale sam musisz to stwierdzić, sprzedawcy często podają, że jest 3.3V i najczęściej to zadziała zarówno po 5V jak i na 3.3, ale nie musi. Długość połączeń też ma znaczenie, typowo I2C to jest połączenie "wewnątrzpudełkowe", kilkanaście cm.
  3. Ten LCD podłącza się do magistrali I2C i by dobrze to działało musisz wybrać dokładnie te piny w Arduino, odpowiednio SCL i SDA. Na początek musisz potwierdzić jego adres, wgrywasz szkic I2Cscanner i sprawdzasz jaki adres ma LCD, informacje są wyrzucane na UART. Zwykle jest to 0x27. Potem dodaj sobie bibliotekę LiquidCrystal_PCF8574 lub jakąś LiquidCrystal z I2C w nazwie (jest kilka do wyboru w managerze bibliotek wprost w programie Arduino) i skorzystaj z przykładów.
  4. Na Ali można kupić za około 10$ taką podstawkę do chipów: Można szybko przetestować przed lutowaniem, czy chip jest sprawny, nie ma potem wątpliwości czy coś z tym poszło nie tak. Mam też zlutowany ESP32 na czystej płytce, moja nie ma tych rezystorów przy przyciskach (wlutowałeś je raczej). Do prawidłowej pracy musiałem dołożyć kondensator 1000uF, no ale tu problemy objawiały się dopiero na etapie łączenia do WIFI.
  5. Do czego go wlutowałeś? Piszę o innym module - całej kompletnej płytce, która na 99% powinna działać od strzału, jakiś WEMOS LOLIN32 czy DoIt. Nie używasz przypadkiem pinów GPIO 6-11? Tu znajdziesz pełną listę "kłopotliwych" GPIO w tym ESP: https://espeasy.readthedocs.io/en/latest/Reference/GPIO.html#best-pins-to-use-on-esp32
  6. Zaproponowałem Ci wymianę flasha bo to jest prostsze, tak jak szukanie zagubionych kluczy tylko pod latarnią. Widocznie jednak leżą gdzieś w ciemności. Ważne to nie mieć tylko tego jednego modułu, jak masz kilka to łatwo zweryfikować, czy to nie wina po stronie PC.
  7. Najwyraźniej uszkodził się w bardzo typowy sposób - odwrócona polaryzacja zasilania. To że nie wszystko poszło z dymem to jak widać niewielka pociecha. Zawsze możesz pobawić się hotair'em i próbować podmienić flash, kiedyś kupiłem paczkę 4MB 10szt za parę $.
  8. Komunikacja przez pokazany moduł różni się od zwykłego "Serial.println(jakieśwysylanedane)" tylko tym, że gdy nadajesz musisz ustawić dodatkowo stan na pinie podłączony do DE i RE (mogą być zwarte razem). Są też układy, które automatycznie przełączają kierunek przesyłania danych i wtedy to nie różni się niczym. Musisz umieć odebrać dane, poznać które literki to cyfry, zamienić je na liczbę, przypisać do zmiennych w odbiorniku i już. Można to zrobić w formie struktury i zamiast przesyłać tekst przesłać dane binarne w formie całego bloku. Przykład do parsowania danych tekstowych na UART jest np. tu: Przykłady ze strukturami są często używane w komunikacji radiowej z modułem NRF24l01 i zamiast print jest write, co przesyłasz z jakiej komórki pamięci i ile bajtów - poszło.
  9. Weź sobie przetwornicę xV->5V i zasil to co wymaga 1A, równolegle do tego zasilacza 12V podłącz Arduino, oba układy łączysz masą i całość będzie miała szansę działać bezpiecznie. Może być np. taka tu. Dzięki temu pobór prądu z zasilacza pozostanie na poziomie <1A, zamiast zamieniać nadmiar napięcia w ciepło z mocą 7W.
  10. Na początek ustal, czy kupiłeś wersję 5V czy 3.3V, wersja 5V nie chciała mi działać zasilana z 3.3V. A potem przetestuj to po prostu w UNO 5V (jeśli jest wersja 5V).
  11. Użyj biblioteki accelstepper.h (znajdziesz w Google) i tam masz, że podajesz punkt docelowy, w loop po prostu stepper.run() i zatrzyma się sam tam gdzie ma się zatrzymać. Krańcówka to może być dodatkowe zabezpieczenie, powinieneś wiedzieć że zamknięcie to np. 1234 kroki, ale z tą biblioteką po prostu możesz dodać if(cośtam) stepper.run();, gdzie "cośtam" będzie wymodzone z warunku czy kręci się do przodu, to ignoruje krańcówkę z tyłu i vice versa. W Twoim programie używając delay przez 2000x 1000us czyli 2s program ignoruje wszystkie krańcówki.
  12. V3 ma konwerter UART-USB CH340. Jak taki zainstalowałeś i masz inne działające klony Arduino z tym chipem to możesz założyć, że tu jest OK. Druga sprawa to kabel USB/gniazdo na płytce ESP. Czasami niby dobry kabel nie działał, z innym, lepiej dopasowanym, ciaśniejszym wszystko było OK. W jednej musiałem pociągnąć lutownicą po lutach, pewnie coś było tu nie halo.
  13. Musisz dokładnie wiedzieć ile danych jest wysyłanych i w jakim formacie, jak jest oznaczony początek i koniec transmisji, czy ewentualnie ilość przesłanych bajtów jest stała. Bierzesz przykład z Arduino IDE Serial Event, gdy następuje początek transmisji łapiesz bajty do tablicy, gdy jest ich tyle ile trzeba ustawiasz flagę, że ramka kompletna, w loop masz polecenie if(flaga==1) funkcjaKtoraCosZTymZrobi(); - sprawdzasz czy zebrane dane w ogóle mają jakiś sens, napełniasz swoje zmienne. Wszystko sprowadza się do lepszego poznania zarówno tej aplikacji w Androidzie jak i Arduino.
  14. Zmierz napięcia na pinach 5V i 3.3V czy wszystko jest od tej strony w porządku. Dobrze jest mieć jakiś programator i sprawdzić czy procesor jeszcze żyje. A jak tak sobie po prostu padło to masz ten luksus, że kupiłeś w PL i masz gwarancję.
  15. Dowiesz się jak zmontujesz. Ostatnio bawiłem się NRF i jedno Arduino NANO nie chce się programować jeśli mam podłączony moduł NRF24, uwaga: przez bootloader i UART, czyli nie ma to związku nawet z SPI, a nie wgrywa dopóki na czas programowania nie odłączę tego NRF24l01. W drugim układzie nie ma problemu (NRF ustawiony stale tylko na odbiór). Możesz dodać rezystory 1k na liniach SPI do NRF (sprawdź wcześniej czy to nie zaszkodzi komunikacji), a wtedy sygnały z programatora będą miały "większą siłę przebicia". Podłączyłem do swojego układu na stykówce z NANO+NRF24 (jako odbiornik) programator USBASP i bez problemu odczytałem zawartość flash, także "u mnie działa".
  16. Skoro się bawisz Arduino to raczej bym kierował swoje działania w stronę DCC, http://forum.modelarstwo.info/threads/dcc-samoróbka-oparta-na-arduino.39867/. Są gotowe schematy/moduły do rozjazdów/oświetlenia/dźwięków/lokomotyw/ itp. Można kupić lub małym nakładem zrobić samemu.
  17. Możesz wgrać każdy bootloader przeznaczony do Atmegi 328, najważniejsze by był skompilowany pod twój kwarc. Komunikacja po UART jest ściśle powiązana z częstotliwością taktowania. Dotyczy to zarówno działania w bootloaderze jak i w szkicu docelowym. Wgrasz od UNO, to kompilujesz i wgrywasz jak do UNO, jeśli z PRO MINI to jak do promini. Najlepszy jest ten od UNO, szybki i nie ma konfliktu z WDT jak stary bootloader od PRO MINI. Aktualnie w NANO i UNO jest ten sam bootloader i od strony Arduino IDE jest nie od rozróżnienia. Te od UNO i PRO MINI mają ustawioną inną prędkość komunikacji, jak wgrasz inny niż chcesz używać to Arduino nie dogada się z programem ładującym, bo będą gadały na różnych prędkościach. Wgrywanie szkicu przez programator USBASP nadpisuje bootloader, by potem znowu z niego skorzystać na nowo wgrywasz bootloader. Wciskanie resetu palcem jest OK, ale musisz wyczuć chwilę i nawet z dużą wprawą nie zawsze zadziała. Jak masz DTR na konwerterze UART to prościej jest dodać jeden kondensator 100n do swojej płytki (w szeregu między DTR i RST) i masz jak w Arduino bez gimnastyki.
  18. Wpisz w google i obejrzyj fotki jak ten moduł powinien wyglądać, znajdź brakujące elementy na swoim. Nie twierdzę, że bez nich będzie działał źle, ale widziałem już walkę jednej osoby z tym modułem w tej konfiguracji. Mnie to działa OK na około 50m, ale mam takie jak na fotce powyżej + antena z izolowanego miedzianego drutu, zwiniętego na walcu 4-10mm (tylko dla celów estetycznych), długość antenki około 17cm (potem można skrócić o jakieś pojedyncze milimetry ewentualnie). Długość oczywiście przed zwinięciem.
  19. Przecież po wpisaniu w google jest tego pełno z opisami i schematami, np. tu: https://www.arduino.cc/en/tutorial/arduinoISP do wszystkich płytek AVR. Ja tylko zmieniam na większą prędkość i zamiast ArduinoISP używam AVR ISP, bo działa z niezależnymi programami, jak np. AVR LAB++.
  20. Jak kupujesz w Botland to wielkiej różnicy nie zrobi jak się szarpniesz na taki: https://botland.com.pl/pl/programatory/2928-programator-avr-mkii-v3-zgodny-z-avrisp-mkii-isp-tasma-idc.html?search_query=MK+II+ISP&results=89, a przy okazji obsługuje więcej uC AVR i Atmel Studio. Jak Ci się nie spieszy to USBASP można kupić na Aliexpress za ~1$ Niestety czas dostawy nawet 6 tygodni. Do swojego Arduino MEGA2560 możesz też wgrać szkic ArduinoISP (zmień tylko prędkość na 115200) i masz programator AVR ISP.
  21. Doinwestuj swój park narzędziowy o programator USBASP (kilka-kilkanaście złotych) i wgrasz sobie hex, a ewentualnie jak Ci będzie zależeć również bootloader.
  22. Dodam tylko, że to, że sklep Ci w opisie podaje jakiś driver ILI9225 to też na to patrz tak z przymrożeniem oka. Taki zamówili, tak sprzedają, a ja wiem, że na przestrzeni 2 lat zamówiłem kilka ekranów (interfejs równoległy z dotykiem, kolor 320x240) z Aliexpress sprzedawanych niby z tym samym chipem, a było ich tam 6 różnych, co objawiało się właśnie białym ekranem, brakiem sprzętowego przesuwania lub inwersją wybranego koloru. Wszystko z czasem było naprawiane przez twórcę biblioteki i na dziś wszystkie moje działają, aktualnie ta libka (KBV mcu friends coś tam) obsługuje już z kilkadziesiąt modeli, ale jak jest u Ciebie to albo sam dojdziesz, albo wyląduje w szufladzie jako "uszkodzony".
  23. Zanim kupisz wyświetlacz to lepiej sprawdzić jakie biblioteki go obsługują. Bo prawie każdy do 320x240 da się uruchomić, ale nie do każdego są gotowce, a samemu to rozgryzać to zwykle nie dla kogoś, kto zaczyna z Arduino. Jak już znajdziesz bibliotekę to w niej jest opisane co do czego przy ustawieniach w szkicu, np. do ST7735 mam taki początek: #define TFT_CS 10 #define TFT_RST 9 // you can also connect this to the Arduino reset // in which case, set this #define pin to 0! #define TFT_DC 8 i nawet nie muszę wiedzieć jakie są funkcje tych pinów, po prostu je tu podłączam (reszta to SPI sprzętowe i wiadomo gdzie to podłączyć do UNO). SPI to 4 piny, MOSI, MISO, SCK i CS, I2C to CLK i DATA (dwukierunkowy). Twój być może ma opcję podłączenia jako I2C lub SPI, ale to zwykle konieczność zmiany jakiś rzeczy na płytce i jak kupiłeś go jako SPI to od prób z tym interfejsem bym zaczął. Zwykle MOSI to SDA (często w LCD DIN, data in), MISO się nie używa z LCD, chyba że coś odczytujesz, CS i CS masz to samo chip select, DC lub RS to przełącznik data/command i nie ma tego w I2C. Jak zerkniesz na grafiki przy wyszukiwaniu tutoriali do ST7735 to na pewno dojdziesz co do czego, a i do ILI9225 sporo pokazuje. Czy masz 5V czy 3.3V to widać po budowie płytki - jest jakiś bufor, regulator napięcie, tranzystory, ale ostateczny test to podłączenie na żywca i sprawdzenie czy padnie (szansę przeżycia zwiększają rezystory 100-1000om). Można podłączyć oscyloskop i popatrzeć jakie faktycznie są poziomy sygnału. To że ktoś ma wersję tego LCD kompatybilną z 5V, to nie znaczy że Ty taką masz, nie wszyscy chcą mieć 5V, jednak dużo więcej można zrobić z ekranem TFT na nowszych uC, a te zwykle są 3.3V - ESP, ARM. Bezpieczniej użyć konwertera logiki, są od 2zł.
  24. No to z Brzechwy niezły ignorant - plagiator, bo to była bajka braci Grimm z makiem i popiołem. Z grochem byłoby 5 minut roboty - sito, płukanie i impreza, czyli tak jak teraz CTR+F i zamień. Ale rymu by nie było.
  25. Mnie się wydaje, że kiedyś tam było i+1 i ktoś zaczął przerabiać na poprawne ideologicznie i++ i mu się odechciało w trakcie sprawdzić jaki był globalny efekt podmiany jednego ciągu znaków na inny. No i tam był mak w popiele, groch to inna bajka...
×
×
  • Utwórz nowe...