Skocz do zawartości

qwee

Użytkownicy
  • Zawartość

    42
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O qwee

  • Ranga
    3/10

Informacje

  • Płeć
    Mężczyzna
  1. Czy zna ktoś algorytm synchronizacji podnośnika dwukolumnowego? Konkretnie chodzi o podnośnik stenhoj. Napędzany jest dwoma silnikami trójfazowymi asynchronicznymi. Na kole pasowym śruby zamocowany jest magnes a pod nim czujnik halla z wyjściem OC, który służy do zliczania obrotów. Silniki sterowane są poprzez 4 styczniki. Po 2 na każdy silnik do zmiany kierunku obrotów. Styczniki sterowane przez tranzystory i ULN2003. Synchronizację zapewne ogarnia PIC16F, który uwzględnia tez krańcówki mechaniczne. Prawdopodobnie poleciał PIC. Tutaj pytanie czy wie ktoś w jakiś sposób przebiega synchronizacja silników? Złącza od czujników obrotów są jednoznacznie opisane jako Master i Slave, stąd wnioskuje, że obroty jednego są uwarunkowane obrotami drugiego, lecz mechanizm jest zapewne prostszy niż sterowanie prędkością obrotową ponieważ zastosowane są styczniki. Raczej logika jest dwustanowa.
  2. Dokładnie - element będzie pojawiał się przed nosem czujnika raz na obrót. W takim razie spróbuje z parą fototranzystor i dioda IR. Czy możecie polecić jakieś konkretne elementy? Jeśli to nie spełni moich oczekiwań to planuje umieścić magnes a jako czujnik wykorzystać czujnik halla. Pozostaje tylko problem jaki czujnik? Magnes rozumiem, że neodymowy, jak najmocniejszy.
  3. Dziękuję za zainteresowanie. Dokładnie to mam na myśli - Wykrywanie pojedynczego zdarzenia ma nastąpić nie częściej niż 500 razy na sekundę. Nie upieram się nad wykorzystaniem czujników optycznych aczkolwiek czujnik sharp GP2Y0A41SK0F byłby całkiem spoko. Nie wykluczam także czujników magnetycznych jednak czy osiągnę wymaganą czułość z odległości około 10 cm? Jaki magnes i jaki czujnik mogą spełniać takie wymagania? Maksymalny wymiar magnesu to około 2-3 cm szerokości i 10 cm długości.
  4. Potrzebuje pomocy. Mianowicie interesuje mnie pomiar przyspieszenie pewnego obiektu. Chciałbym to rozwiązać na zasadzie transoptorów odbiciowych lecz zakres działania powinien mieć większą odległość czujnika od obiektu. Obiektem jest obracające się aluminiowe ramie a czujnik może być oddalono o około 10 cm. Gotowe transoptory mają bardzo małą odległość działania wiec postanowiłem wykorzystać parę dioda - fototranzystor. Czy taka para https://botland.com.pl/analogowe-czujniki-odleglosci/1977-odbiornik-i-nadajnik-ir-liteon-940nm-para.html ma prawo działać w tym przypadku? Ramie ma kolor czarny lecz nie ma problemu z ewentualnym oklejeniem na biało. Ponadto czy jest sens zwiększenia czułości poprzez zastosowanie dwóch diod nadawczych? Nie interesuje mnie pomiar wartości analogowych tylko binarny sygnał pochodzący z odbicia. Może ktoś zna gotowe dedykowane rozwiązania? Częstotliwość pomiaru nie wiesza niż 500 Hz.
  5. To może doprecyzuje. Ma być to coś na kształt breloka, przywieszki, małego urządzenia które będzie przypisane do danej osoby. Gdy osoba wraz z tym układem zbliży się do bazy, wówczas następuje rozpoznanie takiego urządzenia w zasięgu i określona reakcja - np zwarcie styku. Najlepiej gdyby była identyfikacja obiektu, ale niekoniecznie. Zakładam, że będzie tylko 1 góra 2 małe urządzenia, które będą sporadycznie zbliżały się do bazy/centralki i wówczas nastąpi rozpoznanie i reakcja. Nie musi być autoryzacji, unikalności urządzenia, zakładam, że poziom bezpieczeństwa nie jest najwyższy. Oczywiście zasilanie bateryjne jak najbardziej wskazane. Zanim zacznę budować coś swojego chciałem zorientować się czy są takowe dostępne w handlu lecz nie mam pojęcia jak tego szukać, jakie to są urządzenia i gdzie znajdują zastosowanie.
  6. Witam, Poszukuje urządzenia lub zestawu urządzeń które pozwoli na wykrycie obecności innego urządzenia gdy to jest w pobliżu. Np baza, która zareaguje w określony sposób gdy zbliży się do niej jakiś czujnik. Zasięg max 5 m, nawet mniej. Ważne też aby czujnik/odbiornik był rozmiarów kieszonkowych. Czy zna ktoś takie rozwiązanie dostępne w handlu?
  7. Nie spodziewałem się tak obszernej i rzeczowej pomocy, jestem zaskoczony i niezmiernie wdzięczny:) Układ o któym mowa to C8051f120 od silicon labs. Pobrane dane nie są zewnętrzne lecz pochodzą z wewnętrznego przetwornika. Moim zadaniem jest tą funkcję zmodyfikować tak aby liczyć fft, a konkretnie daną harmoniczną. Uczę się asemblera stopniowo i tak naprawdę dopiero teraz poznaje mikrokontrolery. Jeszcze raz wielkie dzięki za naprawde pomocne odpowiedzi. Zapewne odezwę się z kolejnymi problemami. Pozdrawiam!
  8. Potrzebuje pomocy w analizie kodu dla 8051 od silicona w asm. Jest to problem natury dydaktycznej. Całe życie pracuje w c i nie znam ani trochę asemblera. Czy mógłby ktoś oświecić mnie w kilku kwestjach składniowych? Mianowicie: obl_20: movx A, @R0 mov MAC0AH, A mov MAC0BH, A inc R0 movx A, @R0 mov MAC0AL, A mov MAC0BL, A ; This line initiates the Multiply operation inc R0 djnz R3, obl_20 mov SFRPAGE, #CONFIG_PAGE cpl OBL_pin ret Czy dobrze kombinuje, że działa to tak: 1 do A (akumulatora???) przenosimy zawartość rejestru(?) R0 N 2 Następnie z A przepisujemy wartości do dwóch bajtów MAC ( mnożarki z 16 bitowej z dodawaniem ) 3 później zwiększamy R0 4. tak samo do kolejnych dwóch bajtów MAC W efekcie w rejsetrach MAC powinni być: MAC0AH = A MAC0AL= A MAC0BH = A MAC0BL = A Gdzie MAC0AH i MAC0AL to jedno 16 bitowe słowo, co powinno dać działanie : (256*A + 256*A) * (256*A + 256*A) ? A- wartość przepisana z rejestru R0. 6. następnie dekrementuj R3, lub skocz do obl_20 jeśli 0. Czyli po polsku for(R3=x, R3>0, R3--)? Nastomiast kompletnie nie czasje co mówi linia mov SFRPAGE, #CONFIG_PAGE Czy mogę liczyć na pomoc?
  9. Ok. szybkość zmian poznam badając pochodną, ale sygnał nie zmienia się pomiędzy wartościami od -1 do 1, lecz aplituda jest nieznana. Dla różnych wartości amplitudy będą różne pochodne dla tego samego kąta.
  10. Nie wiem czy to dobry dział, lecz szukam informacji na temat obliczeń, które wykonać się mają za pomocą układu stm32f4. Pierwsza sprawa, czy realny jest pomiar na 8 kanałach z częstotliwością próbkowania powiedzmy 32 próbki na okres? Ostatnio takie coś robiłem na atmedze i szczytem był pomiar na 2 kanałach z obliczaniem wartości skutecznej. Kolejna sprawa to właściwy problem. Mianowicie należy obliczyć przesunięcie fazowe między sygnałami na podstawie próbek. Nie wchodzi w grę szukanie przejścia przez zero i odmierzanie czasu. Czy istnieje algorytm obliczania tego na podstawie próbek w czasie rzeczywistym? Dodam, że sygnały są czysto sinusoidalne o jednakowej częstotliwości oraz nieznane są amplitudy.
  11. Ciąg dalszy poznawania STMa. Po udanym ogarnięciu SysTick i GPIO przyszedł czas na USART. Jako że to ustrojstwo operuje na napięciu 3,3V nie mam za bardzo jak przesyłać danych do konsoli - może max3232 rozwiąże problem, ale to już nie dziś, wymyśliłem sobie, że po prostu połączę piny Rx i Tx i to co wyślę natychmiast odbiorę i wyśietle sobie na LCD. Jak pomyślałem tak zrobiłem i jak zawsze nie działa. Na początku chciałbym bez wydziwnień z przerwaniami zrobić taki manewr. Może niedziała dlatego, że jest to niedopuszczalne a może dlatego, że coś źle ustawiam, więc zanim zacznę kombinować inne odbiorniki chciałbym aby ktoś sprawdził czy dobrze konfiguruję USART. #include <stm32f4xx_rcc.h> #include <stm32f4xx_gpio.h> #include <stm32f4xx_usart.h> #include <misc.h> #include "system_stm32f4xx.h" #include "hd44780.h" #include <stdio.h> int main(void) { SystemInit(); unsigned int a ; SystemCoreClockUpdate(); a = SystemCoreClock; if (SysTick_Config(SystemCoreClock/100 )) { while (1){}; } SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); LCD_Initialize(); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); RCC_AHB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Tx|USART_Mode_Rx; USART_Init(USART1,&USART_InitStructure); USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_Cmd(USART1,ENABLE); while(1) { LCD_WriteText(" "); USART_SendData(USART1,1); int c=USART_ReceiveData(USART1); char tekst[10]; sprintf(tekst,"%d",c); LCD_GoTo(0,0); LCD_WriteText(tekst); } } czy taka konfiguracja USART jest wystarczająca?
  12. Problem rozwiązany. Dodałem biblioteke syscalls z repository->common ->C library
  13. Zwracam się z pewnym upierdliwym problemem. Mianowicie używam coocoxa do programowania stm32f4. Wszystko gra dopóki chcę użyć biblioteki standardowej. Mianowicie do konwersji zmiennej liczbowej na tekstową chcąc użyć funkcji itoa lub sprintf, kompilator zaczyna krzyczeć. #include <stm32f4xx_gpio.h> #include "system_stm32f4xx.h" #include <stdio.h> #include <stdlib.h> int main(void) { while(1) { int c=10; char tekst[10]; sprintf(tekst,"%d",c); } } Treść komunikatu: Obawiam się, że to błąd od strony linkera, co jest dla mnie nie do przeskoczenia, gdyż zawsze używałem jakiegoś IDE czy to dla avr czy dla stm, więc o linkerze wiem tylko tyle, że istnieje. Czy może ktoś mi pomóc w tej sytuacji?
  14. 1. Zasilam z transformatora 230/8 V -> mostek prostowniczy -> 7805 z kondensatorami 2x2000uF. Reszta połączeń jak na schemacie. 2. 10k. Ale to raczej nie ma znaczenia bo liczy się stosunek dzielnika. 3. Tak też zrobiłem. Problem rozwiązałem. Zbyt szybko dokonywane były kolejne pomiary. opóźnienie pomiędzy nimi rozwiązało problem.
×
×
  • Utwórz nowe...