![]() |
Arduino Nano konflikt - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Magazynowanie (https://forum.arduinopolska.pl/dzial-magazynowanie) +--- Wątek: Arduino Nano konflikt (/watek-arduino-nano-konflikt) |
Arduino Nano konflikt - StaCh - 23-08-2017 Witam! Jak juz pisalem buduje programowalny generator. Pojawil mi sie kolejny problem techniczny. Generator jest wyposazony w wyswietlacz LCD 2x16 i ze wzgledu na ilosc tablic z zestawami czestotliwosci i brakiem miejsca w RAM zdecydowalem sie wyposazyc go w dodatkowa karte pamieci microSD (2GB). Karte pamieci podlaczylem do zlacza ICSP dla sygnalow MISO, MOSI i SCK oraz pin CS podlaczylem do jedynego wolnego pinu cyfrowego D12. Niestety test karty SD nie dzialal. Zaczalem sie zastanawiac na przyczyna i podlaczylem sygnal CS do pinu 10 na Arduino jak sugerowal opis programu testujacego i test karty wykonal sie poprawnie.Przelaczylem wiec sygnal dla LCD z pinu D10 do jedynego wolnego pinu D12, poprawiajac konfiguracje skeczu i mimo to wyswietlacz nie dziala. Zostala mi tylko jedna mozliwosc wiec odlaczylem kabel sygnalowy od modulu karty SD i wyswietlacz ozyl ale nie mam dostepu do karty. Czy ktos moze mi podpowiedzic jak rozwiazac problem konfliktu wyswietlacza LCD i modulu karty microSD? Plytka Arduino Nano Wszystkie piny cyfrowe zajete analogowe sa jeszcze wolne oprocz 3 uzytych na klawiature. Wydaje mi sie ze korzystanie z sygnalow ICSP powinno zalezec od sygnalu CS ktory "mowi" z ktorym urzadzeniem procesor ma wymieniac informacje. Mozliwe jest zawieszanie komunikacji z LCD na czas odczytu z karty zestawu czestotliwosci do wykonania tylko jak to w takiej kombinacji zrealizowac? RE: Arduino Nano konflikt - StaCh - 28-08-2017 Troche musialem pozmieniac wykorzystanie pinow w Arduino Nano i mam takie ustawienia przy ktorych nie ma konfliktu pomiedzy modulem karty na starcie z wyswietlaczem LCD: LiquidCrystal lcd(11, 12, 9, 8, 7, 6); Pojawil sie natomiast inny powazny problem z odczytem danych z karty SD. Chcialem utworzyc fukcje odczytu danych z pliku ale wynik na monitorze jest porazajacy. W pliku zapisalem Notatnikiem zestaw czestotliwosci tak jak w procedurze w wywolaniu "case" ale po odczycie otrzymuje kaszane na przyklad: {86,32,42,06,20,84,69,02,12,92,62,06,62,24,22,46,62,516538520490580398384370516460490312336308480370412430400560460308336312528538464458480460434340412350, 600320,400380,800380,700380,06,6,7,7,5,3,5,0,5025,0052,50100200450550730850900930970150,150256,320291,500455,200553,400971} To w ogole nie sa wartosci zapisane w pliku na karcie (notatnikiem) Funkcja wyglada nastepujaco: Kod: // funkcja czytania z pliku na karcie Zatrzymalem sie w pracy niestety nie mam pomyslu gdzie jest blad. RE: Arduino Nano konflikt - StaCh - 30-08-2017 Jak widac na razie pisze sam ze soba :=( Sprawdzilem czy wplyw na kaszane ma jednoczesna z modulem karty praca wyswietlacza LCD i okazuje sie ze nie ma. Przy odlaczonym wyswietlaczu i bez dzialajacej biblioteki LiquidCrystal mam takie same wyniki (kaszana!) uzywajac skryptu Cardinfo poszerzonego o odczyt zawartosci konkretnego pliku z kartySD( jak wyzej). Parametry polaczenia, obecnosc karty i jej zawartosc (nazwy plikow) wyswietlane sa na "Serial monitorze" poprawnie natomiast zawartosc juz nie. W zasadzie do zakonczenia projektu brakuje mi tylko funkcji podstawiania zawartosci konkretnego pliku to tabeli dla odczytu przez funkcje _wykonaj_ do wygenerowania kolejnych czestotliwosci z listy. Plytka drukowana umozliwia mi uzycie zamiast Arduino Nano plytki Arduino Pro Mini, ktora jest pozbawiona portu USB a poza tym funkcjonalnie taka sama. Gdzie lezy problem? Moze ktos juz to rozwiazal? RE: Arduino Nano konflikt - StaCh - 30-08-2017 Ciag dalszy korespondencji sam ze soba. Po przeprowadzeniu ekpserymentow na roznych skryptach znalezionych w Internecie okazalo sie ze nie mialem racji twierdzac iz podlaczenie LCD 16x2 plus biblioteka nie ma wplywu na odczyt z karty jesli uzywany jest wspolny pin z ICSP. Niestety proba odczytu zmodyfikowanym skryptem cardinfo dziala a ten sam fragment kodu uzyty w obecnosci wyswietlacza LCD daje kaszane zarowno na wyswietlaczu jak i w odczytanych danych. Chyba trzeba bedzie uzyc klucza aby na czas odczytu odlaczyc piny sterujace LCD od pinow ICSP wykorzystywanych do obslugi wyswietlacza. Chodzi wlasciwie o piny 11 i 12 bo sadze, ze piny 6;7;8;9 nie blokuja dzialania odczytu z karty. Niestety nie jestem tego pewien i pewnie musze sprawdzic sam jako ze nikt nie kwapi sie z podpowiedzia :-( RE: Arduino Nano konflikt - StaCh - 04-09-2017 Dalszy ciag korespondencji z samym soba. Okazuje sie ze sie nie da bez dodatkowego sprzetu wykorzystac w projekcie czytnika kart i wyswietlacza LCD 16x2 standard. Cale szczescie ze ktos juz o tym pomyslal i mozna zastosowac do wyswietlacza konwerter I2C ktory potrzebuje 2 pinow analogowych i zwalnia piny cyfrowe dla innych zastosowan. Szkoda ze nikomu nie chcialo sie napisac jednego zdania w tym watku ze stwierdzeniem zebym przeszedl na I2C z LCD. Oszczedziloby to mi sporo czasu i testow. RE: Arduino Nano konflikt - StaCh - 21-09-2017 Problem o ktorym zaczalem pisac nie powinien istniec gdyby konstruktorzy modulow przykladali sie do tego co robia. Znalazlem a innym forum informacje, ze do takiego konfliktu sprzetowego jak u mnie nie powinno w ogole dojsc poniewaz modul karty microSD posiada na plytce drukowanej bufor odpowiednik LS125, ktory powinien odlaczac piny MOSI, MISO, SCK od modulu Arduino w czasie jesli nie ma procedury dostepu do karty. Jesli dodatkowo wezmiemy pod uwage ze iistnieje na wyswietlaczu pin Enable to mozna by bylo podczas transmisji z karta blokowac wyswietlacz a po zakonczeniu odlaczac modul karty SD od tych pinow. Z tego co pisal ow autor wynikalo ze ktorys z sygnalow MOSI lub MISO nie jest odlaczany przez bufor (ls 125) od szyny i dlatego blokowal w moim przypadku poprawna prace wyswietlacza. Myslalem nawet o zbudowaniu przelacznicy sygnalow z dwu takich komplementarnych buforow LS125 i LS126 gdzie w zaleznosci od stanu lini sterujacej przeplywemi (1 lub 0) piny Arduino laczone by byly z wyswietlaczem lub modulem karty. Ze wzgledu na koszty zastosowanie konwertera I2C do LCD wyszlo taniej choc nie obylo sie bez problemow programowych (biblioteka LCD_I2C). Ot taki kamyczek do ogrodka konstruktorow modulow :-( |