Skocz do zawartości

kaczakat

Użytkownicy
  • Zawartość

    318
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    6

kaczakat zajął 1. miejsce w rankingu.
Data osiągnięcia: 4 lipca.

Treści użytkownika kaczakat zdobyły tego dnia najwięcej polubień!

Reputacja

107 Mistrz

1 obserwujący

O kaczakat

  • Ranga
    6/10

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.

  1. Gdzieś tu opisywałem jak wgrywać przez BT HC-05, ma on pin "State", któremu się odwraca logikę komendą AT i podłącza się go do pinu RST przez kondensator. W momencie nawiązania połączenia BT powoduje to reset uC, potem leci wsad. Właśnie z PROMINI działa bez zarzutu, bo ten nie ma wbudowanego UART. Do ESP8266 jest w ogóle gotowy wsad, by z niego zrobić programator ISP.
  2. Jak wgrałeś ten bootloader z MINICORE dla 328P z 16MHz zegarem, to możesz teraz wybrać jako płytkę programowaną UNO, dla niej robić kompilację i wgrać przez ten bootloader - przez konwerter USB, powinno wszystko działać OK. Albo kompilować dla płytki wybranej z MINICORE. Inne wartość fuse bitów niekoniecznie oznacza, że coś faktycznie się zmienia w ustawieniach poszczególnych bitów, a w szczególności coś istotnego, np. inny będzie próg wyłączenia przy spadku napięcia. Której opcji byś nie wybrał z menu Arduino to jest to na tyle bezpieczne, że nawet jeśli nie będzie działać prawidłowo to nie
  3. Starszy bootloader poznasz po tym, że wgrywanie szkiców odbywa się z prędkością 57k, nowe ładują program z prędkością 115k. Najłatwiej to dostrzec w przypadku płytki NANO, wybierasz stary bootloader, wypalasz go, wgrywasz blinka, powinno działać, zmieniasz blinka na 100ms, zmieniasz na nowy bootloader, próbujesz wgrać, nie wgrywa, wypalasz bootloader (wgra aktualanie wybrany - nowy), ponawiasz wgranie, działa OK. Jak najdziesz na dysku katalog instalacyjny Arduino to jest w nim plik Arduino\hardware\arduino\avr\boards.txt, w nim jest definicja co ma wgrywać do danej płytki i jak ma
  4. Możesz wgrać dowolny bootloader "arduinowy" do PROMINI byle uC był zgodny, np. dla 328P do wyboru masz bootloader z UNO/NANO/PROMINI. Po tym jak wgrasz bootloader od UNO jako płytkę do wgrywania w Arduino IDE wybierasz UNO. Akurat PROMINI miał zwalony bootloader w zakresie działania WD, nowe wersje mają to poprawione, ale jak używasz klona to Chińczycy przez 10 lat nie wpadli na to by wgrywać aktualny. Jeśli masz w miarę nowy program Arduino IDE to wystarczy wgrać aktualny bootloader PRO MINI dołączony standardowo, to już powinien być ten od OPTIBOOT.
  5. Jak byś jednak załączył schemat i kod, to można by rozwiać wątpliwości jak wielki babol zrobiłeś. Np. widziałem, że ktoś używał jednocześnie UART sprzętowy w UNO i softowy na pinach 0 i 1.
  6. Kable w USB specjalnie są różne z obu końców, by nie łączyć ze sobą dwóch hostów lub dwóch klientów. Jesteś odważny omijając mechaniczne zabezpieczania by dopiąć swego, nie zadając sobie trudu przeczytania w Internecie, czy to ma jakiś sens. Jak jakieś urządzenie może być jednocześnie klientem i hostem to ma dwa rodzaje gniazd, kiedyś były takie dyski sieciowe, można było podłączyć go do sieci komputerowej, do niego ( jako hosta) inny dysk USB, ale i ten dysk sieciowy można było podłączyć jako dysk USB (klient) do PC. Zamiast pisać wypracowanie należy opisać problem, pokazać kod i sche
  7. Typowe przykłady w Arduino to DEMA, używają funkcji delay() do zarządzania czasem. Pierwszy krok w kierunku pisania normalnych programów to zastąpienie delay funkcją millis. Można wtedy migać regularnie LED co 100-1000ms, jednocześnie (a na prawdę w "międzyczasie") wyświetlać dane na ekran, odczytywać czujniki, wejścia analogowe i cyfrowe. Nie zrobisz programu wielozadaniowego łącząc DEMA w jeden program. Ale można tak połączyć DEMA, że działa raz jedno, raz kolejne.
  8. kaczakat

    Problem z HC-06

    Tak, używasz biblioteki softserial i wtedy piny dowolne wolne, na 9600baud powinna działać bez problemu. Dzielnik napięcia zabezpiecza przed uszkodzeniem, ale jedynie obniża napięcie modułowi HC do poziomu 3V, nie podbija w drugą stronę do 5V dla UNO, choć oczywiście zwykle to działa, tak samo jak zwykle nic nie uszkadzałem podłączając HC bezpośrednio do 5V. Oczywiście są różne moduły HC. Pewne działanie jest wtedy gdy poziomy logiczne są niższe od 1/3 i wyższe od 2/3 Vcc, pośrednie poziomy dają pewną dozę niepewności.
  9. kaczakat

    Problem z HC-06

    Fotografie, które załączyłeś są nieczytelne. Dzielnik napięcia dajesz tylko na TX Arduino, jeśli w ogóle, wszystkie moduły HC-05 i HC-06, które miałem działają bez problemu na logice 5V. Już lepiej dać konwerter poziomów, wtedy sygnały z 3V również są podnoszone do 5V na odbiorniku Atmegi. Kolejna sprawa to UNO ma tylko 1 UART i jest podłączony do portu USB. Do komunikacji z innymi elementami pozostaje softserial na innych pinach lub użycie płytki, która ma więcej sprzętowych (Leonardo, MICRO, MEGA). To czasami może działać, są rezystory 1k między UNO i USB, ale nie musi.
  10. Jak masz problem z wgraniem kodu to zacznij od wgrania przykładu, który działa zawsze i wszędzie - blink. Od razu wiedziałbyś, że też się nie wgrywa i zamieszczanie na forum kodu od NRF nie ma żadnego sensu. Żeby coś wgrać musisz mieć sprawną płytkę, podłączoną sprawnym kablem, do właściwego portu COM wybranego w menu. Jak płytka ma objawy, że na jakimś kablu pojawia się i znika to ten kabel (czasami gniazdo USB płytki) można sobie schować w koszu. Z drugiej strony właściwy port COM powinien pojawiać się i znikać gdy podłączasz/odłączasz płytkę. Oczywiście płytka musi być taka sama jak wybrana
  11. Raczej po prostu zrobiłeś to źle. Jeśli chcesz mieć tekst na ekranie stały przez całe działanie programu to robisz sobie bufor - tablice char, o ilości znaków na cały ekran +1 i tylko na niej "piszesz", a raz na sekundę (poczytaj tu w kursie o millis(), zobacz przykład w Arduino blinkwithoutdelay) wysyłasz taką tablicę na drugą linię LCD, to nadpisuje całą linię LCD, ale tylko tą drugą, napis na pierwszej pozostaje bez zmian. Jeśli w którymkolwiek momencie użyjesz lcd.clear(); to cały ekran znika i musisz wszystko odrysować od nowa. Oczywiście możesz sobie ekran podzielić na 4 części, ale nie
  12. Wykonanie funkcji Serial.print w Arduino nie trwa istotnie długo w porównaniu do szukanego czasu, bo to tylko przepisanie danych z bieżącej zmiennej do bufora nadawczego, a prędkość 9600 czy 115200 ma znaczenie tylko w sensie przepełnienia tego bufora - jeśli będzie to 9600 jest większe prawdopodobieństwo, że zapełnimy bufor zanim zostanie to wystukane na UART.
  13. Ktoś miał, opisywał to na forum ArduinoPolska, zmienił bibliotekę PCF8574 na inną i tak rozwiązał problem. Jak tylko się przymierzasz to po prostu uruchom i sprawdź czy jest konflikt, może akurat od razu trafisz na zgodne. Większą pewność działania daje UART sprzętowy, np. MEGA ma 4, LEONARDO/MICRO ma jeden, ale "dodatkowy" - nieużywany do komunikacji z PC.
  14. 0x3F i 0x27 to popularne adresy LCD na I2C. Szybciej by było coś powiedzieć, gdybyś po prostu pokazał kod programu. Są funkcje do wysłania jednego znaku, są do wysyłania tekstu. Ta pierwsza jest zwykle wykorzystywana w drugiej.
  15. Chyba tego brakuje: |(1<<ADFR) //tryb Free run
×
×
  • 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.