Skocz do zawartości

kaczakat

Użytkownicy
  • Zawartość

    327
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    7

kaczakat zajął 1. miejsce w rankingu.
Data osiągnięcia: 26 lutego.

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

Reputacja

114 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. Chyba mylisz numery pinów z numerami GPIO. "Wewnętrzność" ma kilka poziomów, chip ESP32 to tylko ten kwadracik na module, a cały moduł składa się z chipa ESP32, flash, kwarc, kondensatorów, itp. Część pinów jest wykorzystywana do konfiguracji i można ich użyć w ograniczonym zakresie, część jest podłączona do flash i może da się je wykorzystać inaczej, choć w początkowym okresie łatwiej o nich zapomnieć. Cały taki moduł najczęściej jeszcze jest wlutowany na większą płytkę, gdzie mogą być przyciski, ledy, gniazda SD i znowu część pinów jest "wewnętrznie lvl2" zajęta. https:/
  2. Dla trybu AT się ustawia prędkość jaką się chce, AT to normalny tryb komunikacji przez UART gdy nie ma sparowanego BT pod drugiej stronie radia, po sparowaniu wszystko wpisane w UART leci do odbiornika, przez radio prędkość sobie dopasuje sam, 38400 zawsze domyślnie gdy się go uruchamia "awaryjnie" z wciśniętym przyciskiem (wciskasz przycisk i podłączasz zasilanie, nie każdy moduł ma przycisk), dzięki temu zawsze można wejść w tryb komend AT ze znaną prędkością. Oczywiście zamiast przycisku może być odpowiedni sygnał na odpowiedni pin, ale tego nie próbowałem, bo mam przyciski. Z innych trikó
  3. Dla int nie warto używać String skoro oczekujemy tablicy char dla funkcji biblioteki GSM, lepiej już wspomniany wcześniej sprintf. uint32_t czasTeraz,czasPoprzedni,tik=10; //tik musi byc mniejszy niz 1000 i dzilic 1000ms na rowne czesci uint8_t nTik,sekundy,minuty,godziny,dni; //liczniki tikow, sekund, itd. bool fnTik,fsekundy,fminuty,fgodziny,fdni; //flagi zdarzen nowy tik, nowa sekunda,minuta, godzina, dzien char napis[10]; void setup() { // put your setup code here, to run once: Serial.begin(115200); pinMode(LED_BUILTIN,OUTPUT); } void loop() { // put your main code here, to run
  4. LGT8F328P to nie jest płytka AVR w pełni zgodna z ATMEL/MICROCHIP, LGT8F328P to mikrokontroler bardzo podobny do Atmega328P, ale tylko podobny, należy zainstalować CORE do LGT https://github.com/dbuezas/lgt8fx tak jakby się używało np. ESP8266 w Arduino. Ja akurat aktualnie posiadam https://github.com/wemos/Arduino_XI - jest całkiem niezła, ale niedoskonała, np. konieczna była nieznaczna korekta funkcji millis, bo się mocno rozjeżdżało. Ten uC ma wiele ciekawych zalet, np. nie ma EEPROM, ale ma taką emulowaną w pamięci FLASH, za to może pracować z prędkością 32MHz już przy Vcc 1.8V,
  5. Może uściślij czy masz matryce przycisków 4x4/3x3/5x4/itd. czy faktycznie klawiaturę numeryczną na USB podłączoną przez jakiś shield/konwerter host USB. Bo kod masz powyżej pokazany do klawiatury komputerowej USB, a piszesz coś o 1 przycisk na 1 pin. A może wybebeszyłeś taką klawiaturkę USB i chcesz ją podłączyć inaczej z pominięciem USB? Do matrycy odpowiednia jest biblioteka np. Keypad @author Alexander Brevig gdzie definiujesz ile masz rzędów i kolumn, definiujesz piny gdzie podłączyłeś rzędy i kolumny, jakie znaki mają być generowane przy wykryciu wciśnięcia danego przycisku (przykła
  6. kaczakat

    Arduino UNO i czujnik DHT11

    Nie trzeba ustawiać pinu w setup na INPUT, bo tak jest ustawiony przy starcie, trzeba to zrobić tylko wtedy, gdy wcześniej się ustawi na OUTPUT. Jak standardowy przykład nie działa to można zmienić pin, kabelki, stykówkę, sprawdzić wybrany zestaw stykówka/kabelki/pin w komunikacji softuartem z innym arduino, zdemontować , odłożyć do szuflady i nazajutrz ze świeżym umysłem zmienić czujnik na inny egzemplarz, inne arduino, powtórzyć. Czasami przydaje się też analizator logiczny (jakiś klon Saleae z Al za 4 dyszki) by podejrzeć, co Arduino wysyła, co czujnik odpowiada. Trzeba też zmierzyć opór
  7. Arduino to nie tylko UNO/NANO/PRO MINI z Atmega328p, jest też MEGA, a i parę innych też.
  8. kaczakat

    Termostat

    No to dodaj sobie np. float tempCO=sensors.getTempC(CO) i if, że jeśli tempCO>=85 lub tempCO<=0 (wyłącz przekaźniki, zapal czerwony led awarii, odczekaj 5s, zapisz licznik awarii++ w EEPROM, zresetuj WDT układ), może po resecie czujnik zacznie działać, jak nie, a licznik awarii przekroczy ileś tam zatrzymaj całkiem w while 1 i czekaj na interwencje serwisu. Możesz tu dać reset od jakiegoś przycisku przez WDT, który przy okazji zresetuje licznik awarii w EEPROM. Przykład użycia WDT /* 1 s WDTO_1S ATMega 2 s WDTO_2S ATMega 4 s WDTO_4S ATMega 8 s WDTO_8S ATMega wdt_enable(WDTO_4S
  9. kaczakat

    Termostat

    sensors.requestTemperatures() robi "delay" ~750ms (zależy od ustawienia czujników, tyle standardowo dla 12bitów), więc swój delay możesz wywalić. Lepiej czujniki odczytywać po numerze seryjnym, jest to w przykładach biblioteki, a jak określonego zabraknie zawiesić wykonywanie programu, unikniesz porównywania czegoś do przypadkowej wartości. No i jeśli zakres temperatur szczęśliwie mieści się w zakresie np. 0.01-84.99oC to inne odczyty można określić jako błędne i również zareagować, błędy z czujnikami mogą sugerować temperatury -127;0;85 oC. Jeśli program miałby robić później coś więcej to jed
  10. 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.
  11. 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
  12. 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
  13. 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.
  14. 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.
  15. 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
×
×
  • 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.