Skocz do zawartości

vtor

Użytkownicy
  • Zawartość

    33
  • Rejestracja

  • Ostatnio

Wszystko napisane przez vtor

  1. Na stronie ,w części " Communicating with other devices", omówiony jest przykład komunikacji po I2C. W sposobie tym każde urządzenie (mikrokontroler) ma przypisany adres, żaden nie jest zdefiniowany w trybie Master. Odbieranie transmitowanych do mikrokontrolera obsługiwane jest przez Wire.onReceive (receiveEvent); a wysyłanie przez Wire.beginTransmission (SLAVE_ADDRESS); Wire.write (x); Wire.endTransmission (); Testowałem tą metodę i wiem że działa i to z więcej niż dwoma mirokontrolerami. Wytłumaczcie mi proszę na jakiej zasadzie ten sposób działa. Istotą I2C jest to że musi być Master, tutaj wygląda to tak jakby go nie było. Czy wszystkie mikrokontrolery w tym przypadku działają jak Master choć są deklarowane jako Slave?
  2. Od czego zacząć naukę STM32? Co kupić? jaką płytkę? Chodzi mi o pisanie w STM32CubeIDE. Można zacząć od BluePill?
  3. Zamierzam zabrać się za STM32. Przeglądam trochę materiałów i ciekawi mnie jak w tych mikrokontrolerach realizuje się wielozadaniowość? W AVR Arduino wykorzystywało się millis(). A jak to jest w STM32? ( STM32CubeIDE). Bo dellay() jest mało funkcjonalne.
  4. Pytanie było z czystej ciekawości. Zewnętrzny flash podłącza się jak SD , przez SPI ?
  5. Czy w układach z rodziny Atmega można zwiększyć ilość pamięci na program, dołożyć przestrzeni?
  6. Problem wygląda na rozwiązany. Drgania wyeliminowane programowo. Na elemencie wirującym tylko jeden znacznik Program liczy ilość milisekund które upłynęły między impulsami. I na tej podstawie wylicza ilość obrotów.
  7. czujniki są po kabelku ze złączem , podłączone do pcb z kilkoma komparatorami, to pcb jest kabelkiem podłączone do kontrolera. Wiem że najrozsądniej było by przeprojektować PCB z komparatorami ale na to nie ma czasu i możliwości więc mogę ten układ tylko rozbudować o dodatkowe moduły. Więc co radzicie mi w takiej sytuacji? Co było by najrozsądniejszym rozwiązaniem? Z tego co piszecie to każde rozwiązanie sprzętowe problemu w moim przypadku równa się z budową nowego pcb a na to nie mam czasu.
  8. Dziękuję za wyjaśnienie tematu. Niestety układ z komparatorem jest już na gotowym PCB więc zamiana nie jest możliwa. Zostaje mi tylko modyfikacja programu mikrokontrolera. Wypowiedzcie się jeszcze w kwestii wstawienia między obecnym komparatorem a mikrokontrolerem kolejnego komparatora z histerezową bo to jest fizycznie możliwe.
  9. CNY70 mam połączony w taki sposób. Z tego co doczytałem , żeby stworzyć histerezę powinienem rezystorem połączyć wyjście komparatora z wejściem z napięciem referencyjnym ( to połączone z potencjometrem , u mnie wejście odwracające ). Czy taka modyfikacja jednym dobrze dobranym rezystorem rozwiąże problem w moim przypadku?
  10. Witam chce zbudować " obrotomierz ". Element wirujący czarny z białymi znacznikami. Cny70 podłączony do komparatora z potencjometrem. I tu wszystko działa , jak przed czujnikiem jest biała powierzchnia to komparator na multimetrze daje 0v , na czarnym 5v. Jak na Arduino dam przerwanie ze zboczem to układ zachowuje się tak jak by to zbocze w ułamku sekundy wystąpiło kilka do kilku set razów. W przerwaniu zmienna ma być zwiększana o 1 a wzrasta nawet o 300. Zauważyłem że dzieje się tak przy powolnym obracaniu elementu wirującego , od pewnej prędkości sytuacja wydaje się normalizować. Nie mam dostępu do oscyloskopu. Czy można to jakoś rozwiązać żeby jedno "mignięcie " białego znacznika było interpretowane jako jeden impuls?
  11. Musi być np. void receiveEvent (int x){ } bez int x jest błąd.
  12. Jak w Arduino IDE 1.8.10 zamiast płytki UNO wybieram Atmega 328 ( wcześniej doinstalowana paczka MiniCore). To wywala mi komunikat invalid conversion from 'void (*)()' to 'void (*)(int)' [-fpermissive] i podświetla na czerwono linijkę z kodem Wire.onReceive (receiveEvent); Po wybraniu płytki UNO nie ma takiego problemu i kod kompiluje się bez problemu.
  13. Witam 2 x zestaw Arduino UNO , stabilizator 3,3v , NRF24101+. Stabilizator 1A wydajności zasilany z 5V Arduino, na wejściu i wyjściu stabilizatora kondensator ceramiczny 100 nF. Podłączenie klasyczne jak w przykładach. Wszystkie połączenia sprawdziłem multimetrem. Kody programów: #include <SPI.h> #include <nRF24L01.h> #include <printf.h> #include <RF24.h> #include <RF24_config.h> RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; void setup() { Serial.begin(9600); radio.begin(); radio.setPALevel(RF24_PA_MIN); radio.openWritingPipe(address); radio.stopListening(); //radio.printDetails(); Serial.println("nadajnik"); } void loop() { const char text[] = "Hello World"; radio.write(&text, sizeof(text)); delay(1000); } #include <SPI.h> #include <nRF24L01.h> #include <printf.h> #include <RF24.h> #include <RF24_config.h> RF24 radio(7, 8); // CE, CSN const byte address[6] = "00001"; void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MIN); radio.startListening(); //radio.printDetails(); Serial.println("odbiornik"); } void loop() { if (radio.available()) { char text[32]; radio.read(&text, sizeof(text)); Serial.println(text); } } Od komentowanie radio.printDetails(); powoduje brak wyświetlania czegokolwiek nawet nadajnik/odbiornik. Więc czy ja coś robię źle , czy moduły NRF mogą być uszkodzone? Z analizujcie chociaż kody programów czy tu nie leży problem.
  14. Witam Wiem że pytanie dla większości jest trywialne ale jak wyliczyć wartości rezystorów znając zakres mierzonego napięcia i maksymalne napięcie ADC. Jakiś wzór był by mile widziany. Bo nawet nie wiem czego szukać w Google.
  15. sei() - czyli włączenie przerwań pomogło. Dzięki za biblioteki (teraz mam tą Adafrutową) .
  16. Problemem jest sprawdzanie pinów ekspandera a nie println. Taka sama funkcja z println i sprawdzaniem pinów mikrokontrolera i działa wszystko ok. A jak funkcja przerwania ma sprawdzać pin expandera ( bez println ) to program się zawiesza. Jest na to jakiś sposób ? Można zrobić tak żeby piny expandera działały jak piny przerwań ?? (np. metody z biblioteki)
  17. Witam Jak się mylę to mnie poprawcie. Sygnał na pinie przerwania arduino (UNO) wywołuje funkcję w której ma być sprawdzany stan na pinie expandera. void kontrola(){ Serial.println ("TEST"); if (mcp.digitalRead(0)== LOW){ A = 0; } } Gdy następuje przerwanie to na serial monitorze pojawia się tylko " TES " i program się zawiesza. Czy jest to spowodowane tym że w przerwaniu hamowana jest komunikacja z expanderem? Czy coś innego i można jakoś rozwiązać ten problem ?
  18. https://abc-rc.pl/product-pol-11741-Miniaturowy-modul-GSM-SIM800L-MicroSim-TTL-GPRS-3-7-4-2V.html
  19. Układ z Atmegą steruje pracą silnika szczotkowego DC (kierunek obrotu, prędkość obrotu, hamowanie silnika). Chciał bym wykorzystując pin analogowy mikro kontrolera mierzyć napięcie jakie jest na zaciskach silnika w momencie gdy układ sterujący nie podaje żadnego napięcia, a silnik sam generuje napięcie kręcąc się siłom rozpędu. Odczyt napięcia 0V na zaciskach był by informacją że wirnik silnika jest w spoczynku i można bezpiecznie zmienić już kierunek obrotu silnika. Atmega może mierzyć od 0v do 5v więc bez dzielnika napięcia się nie obędzie, Ale jak mierzyć ujemne napięcie. W/w sytuacji jest ważniejsze czy napięcie wynosi 0 czy nie , a nie czy napięcie wynosi -7 lub 11v. Z tego co się doczytałem to wzmacniać operacyjny jest mało dokładny a o tzw "sumowaniu napięć" na rezystorach nie znalazłem jakiegoś łopatologicznego wyjaśnienia zagadnienia. Proszę o doradzenie metody do tej sytuacji i łopatologiczne wyjaśnienie jak to zrobić.
  20. Wracam do tematu po paru dniowej przerwie , dzięki za przekazaną wiedzę, mam parę może trywialnych pytań ale wolę rozwiać wątpliwości amatora jakim jestem 1) diodę w kierunku przewodzenia w stronę mitrokontrolera tak żeby zasilać mikrokontroler na vdd czy vss? 2) kondensator równolegle ( +kondensatora do VDD uC , -kondensatora do VSS uC) między diodą a mikrokontrolerem? 3) zdecydowałem się na 2000 uF przy mikrokontrolerach z diodą schotkiego i 4700 uF przy baterii / mostku (bez diody)
  21. 1) Dzięki za wyczerpującą wypowiedz. 2) Jak powinien wyglądać ten układ z kondensatorem i diodą? Może być szotkiego? Jak i gdzie go podpiąć ? przy samych mikro kontrolerach i serwomechanizmie za przetwornicami ? Jakie pojemności kondensatorów? 3) Jeszce zobaczę czy problemem nie jest częstotliwość PWM. Ale kondensatory i tak warto wstawić tylko patrz ptk. 2.
  22. Silnik jest jeden naraz w modelu. Akumulatory są 2 szeregowo. Jak podłączyłem jeden akumulator na "krótko" to ruszył bez problemu. Jeszcze nie wstawiłem żadnych kondensatorów.
  23. Witam Mam pewien problem z projektem, auto sterowane przez BT: -Zasilane z 2x lipo 7.4 szeregowo (w sumie 14.8 nominalnie). -Silnik szczotkowy DC 12V (max 18). 0,8A bez obciążenia max 4,3A -Skręcanie serwem. -Silnik sterowany sterownikiem własnego autorstwa mostek H na mosfetach (drivery mosfetów na NPN) i Atmega zasilany 5V.(B). Mam możliwość ustawienia częstotliwości PWM oraz sterować wypełnieniem PWM. -Serwo i sterownik silnika sterowany z osobnego (własnego autorstwa) układu na Atmedze zasilanie 5V (A). Mikrokontrolery mają kondensatory 100nF na VCC i AVCC. Silnik i mostek H zasilany bezpośrednio z akumulatorów. Układy z Atmegami zasilam z przetwornicy na LM2596 (OKYSTAR OKY3502 ). Serwo zasilane z przetwornicy na MP1584EN (OKYSTAR OKY3504-2) , ale planuję wstawić podobną do tej od mikro kontrolerów. Wszystkie masy są z sobą połączone. Jak testowałem układy na małym silniczku i małym serwie to nie było problemów. Po podłączeniu docelowego osprzętu mikrokontrolery zaczęły się zawieszać i wariować. Po podłączeniu 5V z zewnętrznego zasilacza zauważyłem że podczas startu silnika napięcie z akumulatorów spada nawet do 3V. Pytanie czy wstawienie kondensatora elektrolitycznego w układ zasilania rozwiąże problem? Pytanie tylko gdzie wstawić kondensatory i jakie. Tylko na wyjściu zasilania z pakietu akumulatorów, czy dodać też na podłączeniu zasilania serwomechanizmu i mikrokontrolerów? Jaki kondensator dać na zaciskach silnika? 100nF?
  24. Tak chce użyć dwóch takich samych pakietów ( napięcie , pojemność, producent, model)
  25. Witam mam szybkie pytanie bo terminy mnie trochę gonią. Czy można łączyć szeregowo modelarskie pakiety Li-Po? Na przykład dwa pakiety 7.4v aby uzyskać 14.8v (minus jednego pakietu z plusem drugiego). Ładować te pakiety mam zamiar klasycznie ładowarką do pakietów 2S.
×
×
  • Utwórz nowe...