Nie rozumiem dlaczego w tym przypadku korzystasz z przerwania od adc... Spróbuj odczytać adc w przerwaniu timera 2 wg. schematu: Start pomiaru, czekanie do końca pomiaru, odczyt adc. Dodatkowo zyskasz na pamięci bo zmienna adc_temp będzie nie potrzebna, chyba że wykorzystujesz ją jeszcze do czegoś innego:) pozdrawiam
Rynek czujników elektronicznych stale się rozwija, z dwucyfrowym tempem wzrostu rok do roku. Głównymi czynnikami napędzającymi ten wzrost jest duża liczba czujników wprowadzonych w urządzeniach Internetu Rzeczy (IoT), urządzeniach mobilnych (smartfonach i tabletach) oraz urządzeniach do noszenia. Bezprecedensowe scenariusze zastosowań są teraz możliwe...
Akcelerometr wykrywa dwa polozenia w ktorych sila jest zblizona do sily grawitacji, generowane sa przerwania I inkrementuje sie licznik, to tak w skrocie... To juz mam zrobione. Pytanie moje dotyczylo przesylania danych za posrednictwem urzadzenia o.niskim poborze energii. Abstrahujac juz od projektu, moglbys sie wypowiedziec na temat rmf12b czy sie...
EDIT: Czy to możliwe, iż powodem może być zasilanie? Arduino Pro mam w wersji 3,3V, podczas gdy w schemacie (w załączniku) akcelerometru na linii CS jest napisane 5,0V? Zasilanie nie, ale nie wiem czy zauważyłeś że ten akcelerometr jest także zasilany z 3,3V, więc wszystkie konwersje są zbędne, wtedy ten CS, SDA i SDC łączysz na krótko do proca, co...
Jak widzisz funkcja ta może byc konfigurowalna w taki sposób, że albo korzystamy z pollingu albo z DMA. Powiedz o jakich dokładnie błędach mówisz, bo z tego co pamiętam to jest to niemal to samo co mówi RM (z małymi wyjątkami w kolejności włączania np. SPI/ustawiania kierunku - eksperymentalnie doszedłem do poziomu bezbłednego przy jednoczesnie dużej...
Mi także się udało uruchomić na F4 bez problemu normalnie I2C:) Chcę uruchomić te I2C z DMA bo myślałem, że przy odczycie z akcelerometru to będzie lepsze. A mógłby się ktoś z Was mi podpowiedzieć, jak najlepiej zorganizować odczyt takiego czujnika. Posiada on opcję zewnętrznego przerwania gdy dane na I2C są gotowe do odczytu. Na chwilę obecną ciągle...
Cześć Mam problem z połączeniem akcelerometru ADXL345 i czytnika kart SD przez SPI. Oba urządzenia muszą pracować na jednym SPI. http://obrazki.elektroda.pl/1605558200_1... http://obrazki.elektroda.pl/3766164100_1... Czyli wychodzi na to, że karta SD pracuje ok, natomiast nie ma połączenia z czujnikiem ADXL345. Na innych...
Dzięki za odpowiedzi i uwagi ! Na pewno nastepnym razem zwrócę na nie uwagę, ale szczerze mówiąc teraz zależy mi bardzo na czasie, żeby to jakoś posklejać, jak to się mówi jakoś na ślinę i żebym mógł trochę danych zebrać. (at)BlueDraco: Tu jest aktualny kod odbioru danych GPS: void USART1_IRQHandler() { if (USART_GetITStatus(USART_GPS,...
witam, próbuję osbłużyć akcelerometr ADXL345 po i2c, ale komunikacja zawiesza się po pierwszej komendzie i w ogóle program nie wchodzi do pętli while(1). jak zakomentuje linijkę: i2cTransmit(ADXL345, POWER_CTL, 0) w mainie; to ATmega wysyła po USARCIE dane bez problemu, w przeciwnym razie zawiesza się. o to listing programu: ATmega168 + 20 MHz, na samym...
To tak nie jest. Po pierwsze - stosując filtr górno-przepustowy nie zlikwidujesz składowej stałej grawitacji. Zgodnie z twoją logiką jeżeli zostawisz akcelerometr nieruchomo i zastosujesz ten filtr to akcelerometr ma wskazywać około 0 ? - tak nie będzie. W przypadku układu różniczkującego (filtra GP), wartość napięcia na wyjściu filtra jest zależna...
Program jest następujący: Mam strukture dla czujników a w niej tablice dla której zapisuje odczytane dane z danego czujnika: [syntax=c] typedef struct { // jakies inne zmienne volatile uint8_t dataToCalculate[6]; // do zapisu danych } czujnik; [/syntax] Tworzę 3 globalne zmienne 'czujnik' (używam 3 czujników): [syntax=c] czujnik Zyroskop = { ...}; czujnik...
Widzę dane chcesz pobierać jak przyjdzie przerwanie z memsa. Niestety mam ten sam problem. Ten akcelerometr nie chce wysyłać przerwań. Zobacz na razie zrób odczyt wyzwalany timerem wtedy będziesz wiedział czy komunikacja działa. Bo z tymi przerwaniami coś jest nie tak.
Witam serdecznie. Bawię się ostatnio akcelerometrem: https://www.nxp.com/docs/en/data-sheet/M... Zaimplementowałem sobie tryb POTRAIT/LANDSCAPE oraz SINGLE TAP czyli kolejno: obrót ekranu oraz pojedyncze uderzenie (puknięcie) w akcelerometr (+przerwania do tego) Wszystko działa bez zarzutów. Chciałbym teraz wykorzystać go w taki sposób, że przymocowuje...
Z przerwaniami, bez przerwań, z DMA [url=https://forbot.pl/blog/kurs-stm32-f... HAL i I2C i nawet błędów nie znalazłem (w HAL bo w kursie nie pamiętam ale chyba też nie ma błędów). Przyznam, ze brakuje na Elektrodzie takiego kursu.
Zmieniłem swoje biblioteki (z akcelerometrem działały) mastera I2C na te z książki i wkopiowałem czysty kod przerwania od TWI i zaczęło działać. Dziękuję za pomoc. Przy okazji zauważyłem brak jednego volatile przy swoich zmiennych. W sprzętowy debugger muszę się zaopatrzyć.
franek.bmw mógłbyś pochwalić się wynikami tego akcelerometru. Nie wiem czy przy jego obsłudze poczyniłem jakiś błąd, ale szumy, które otrzymuje sięgają 20mg, bez znaczenia jest tryb, który wybieram low-noise/low-power. Odczyt działa poprawnie, zewnętrzne przerwanie, oraz automatyczny reset przerwania odbywają się prawidłowo najpierw wysyłam adres 0x02...
Witam. Próbuje skonfigurować akcelerometr tak, aby po "szturchnięciu" wybudzał procesor po czym przechodził w tryb uśpienia do kolejnego "szturchnięcia" (akcelerometr). Pobór prądu powinien spadać wtedy do kilku uA. Samo przerwanie od szturchnięcia działa. Robię je zgodnie z tym co jest tu: https://www.nxp.com/docs/en/application-... na...
Patrzyłeś kiedyś na przebiegi graficzne tego co daje na wyjściu? Oj, nie pamiętam, ze 4 lata temu go uruchamiałem, zresztą potrzebowałem tylko detekcję ruchu z akcelerometru i jedną oś żyra. Był chyba spory szum w danych z akcelerometru ale ręki sobie nie dam uciąć. Ja miałem z LSM330DLC inny problem, raz na kilka miesięcy potrafił się zawiesić przy...
http://obrazki.elektroda.net/65_12873448... Schemat To jest schemat gamepada podłączanego do portu USB wbudowanego w kierownicę. Oprogramowanie firmware’u zostało napisane w języku PicBasic Pro i implementuje urządzenie HID USB posiadające 2 osie i 4 przyciski. Urządzenie jest rozpoznawane przez Windows XP/Vista jako standardowy gamepad...
Witam podepnę się pod temat by nie zakładać nowego. Mam sobie układ Atmega32 -> konwerter poziomów napięć ST2378 -> ADXL345 Transmisja pięknie hula po SPI na 2m kabelku. Mam natomiast problem z przerwaniami w ADXL345. Ma on 2 programowane wyjścia wysyłające przerwanie. W zależności od wyboru: dane gotowe do obioru, pojedynczy klik, podwójny klik (i...
http://obrazki.elektroda.pl/1784240100_1... Projekt wykonany przez dwójkę studentów integruje 3 rodzaje pomiarów: pomiar ilości przebytych kilometrów, pomiar szybkości kroków oraz prawidłowości chodu poprzez analizę nacisku na poszczególne punkty na stopie, wykrywając przy tym skrzywienie stopy i kilka innych parametrów, które mogą...
Ma dole jest rozwiązanie problemu wraz z kodem obsługi KAmodMEMS2 przez I2C Witam, Chciałbym podłączyć akcelerometr LIS35, używając interfejsu I2C. Problem pojawią z obsługą biblioteki TWI (jest to inna nazwa I2C prawda?), Próbuję zrobić tak: #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h>...
Poznałem już DMA o czym napisałem parę postów wyżej, w kontekście obsługi ADC. Właśnie taki sposób obsługi I2C jak w przypadku ADC via DMA byłby ideałem. Przy transmisji z ADC dzięki DMA nawet przez chwilę procesor nie jest wykorzystywany. Jedynie sprawdza co pewien czas czy dane z tablicy tych wyników mieszczą się w ustalonym przedziale. Przeoczenie...
Jestem w trakcie tworzenia licznika rowerowego z funkcją alarmu przeciwkradzieżowego. W cały układzie mam akcelerometr, który wykrywa większe zmiany przyspieszenia. Chciał bym żeby to wykrywanie odbywało się podczas wyłączonego licznika. Powerdown mode odpada ponieważ wyłączone jest praktycznie wszystko i nie miał bym jak wykryć większych przyspieszeń....
Dziekuje za odpowiedzi, mnie rowniez sie wydawalo ze kolega przesadzil z tymi taktami dla floatow. Jestem zaszczycony otrzymaniem odpowiedzi od autora mojej pierwszej ksiazki o AVRach :D Co do propozycji czestotliwosci probkowania to faktycznie jest to chyba najbardziej prawdopodobny powod, ATMega jest taktowana 16 Mhz, w tym samym przerwaniu jest zaprogramowane...
Witam Serdecznie Na początek kod: [syntax=c]#define F_CPU 4000000UL #include <avr/io.h> #include <avr/iom128.h> #include <util/delay.h> #include <avr/interrupt.h> volatile uint8_t i=0; int main(void) { DDRA = 0xFF; ASSR &= ~(1<<AS0); TCCR0 |= (1<<CS01) | (1<<CS02); TIMSK |= (1<<TOIE0); TCNT0 = 131;...
Tak, możesz podłączyć kilka urządzeń do jednego interfejsu SPI, ale... - urządzenia wybierasz pinami !CS (ile urządzeń, tyle dodatkowych linii) - musisz zwrócić uwagę w którym trybie (są 4) pracuje każde z urządzeń, jeżeli są różne dla urządzeń, to sprawa się trochę komplikuje - trzeba przełączać tryb pracy z każdą transmisją - musisz zwrócić uwagę...
Witam :) mam pytanie dotyczace wspolpracy AVRa i akcelerometru ADXL mianowicie chodzi mi o pomiar wypelnienia (w sposob opisany ponizej) ustawienie przerwania Int0 zeby dzialalo na zbocze narastajace (do tego wejscia bedzie podpiety czujnik) w chwili wyzwolenia zboczem narastajacym jest zerowany a nastepnie uruchamiany timer0 a nastepnie jest zmieniana...
http://obrazki.elektroda.net/5_123282988... ADXL345 jest najnowszym członkiem rodziny akcelerometrów iMEMS. Jest on przeznaczony do sprzętu zasilanego z baterii, gdyż pobór mocy zredukowany może być do 25..130 µA przy napięciu zasilania równym 2.5V. Układ mierzy przyspieszenia do ±16g z 13 bitową rozdzielczością. Pomiary przesyłane są dalej...
Witam, Mam następujący problem. Chciałbym próbkować dane z akcelerometru, żyroskopu oraz magnetometru z częstotliwością 1 KHz, przez okres 7 sekund. Dane te chciałbym zapisać na karcie SD. Dotychczas aby zapisać dane na kartę SD korzystałem z biblioteki Fatfs (SDIO). Teraz jest to dość problematyczne, ze względu na czas realizacji zapisu. Dane muszą...
No to odpalasz przetwarzanie ADC. I jakieś przerwanie. No i w przerwaniu powiedzmy co sekundę robisz pomiary ADC i zapisujesz je do FLASHa. Do jakiejś tablicy No i zwiększasz index tablicy. A odczyt to chyba łatwo skoro już odpaliłeś komunikację po USB. W sumie to nie wiem w czym masz problem.
Dziękuję za odpowiedź:) Analizowałem Wasze wypowiedzi ale niestety nie zrozumiałem wszystkiego na tyle dobrze aby stworzyć sobie kod. Nie mielibyście jakiś adresów stron www na których jest to opisane w prostszy sposób lub z większą ilością przykładów. Jeśli chodzi o moje zastosowanie tego to potrzebuję odczytywać wartości z przetwornika analogowo-cyfrowego...
Dziękuje za odpowiedź. Zdecydowałem się jednak na komunikację poprzez I2C. Jeśli prędkość nie będzie wystarczająca to spróbuje po tym SPI. Jednak niestety natrafiłem na następujący problem. Napisałem sobie kilka funkcji pomocnych przy obsłudze I2C. Chcę odczytać dane tylko z żyroskopu na razie z jednej osi. Podczas odczytywania cały czas wyświetla mi...
Hej Troche przykombinowales z tym printf, nie prosciel bylo nadpisac funkcje fputc... i w ciele tej metody umiescic obsluge wysylania pojedynczego znaku przez UART, w dodatku mozesz rozroznic strumienie i wyslac np. tym samym printf na CDC dodac sobie poziomy DBG itp np... int fputc(int ch, FILE *f) { if( f== stdout) { while...
Witam, buduję robota balansującego z wykorzystaniem atmegi328p oraz czujnikiem MPU-6050 akcelerometr + żyroskop (moduł DFRobot). Po dziesiątkach godzin nieudolnych prób doboru nastaw regulatora PID zacząłem doszukiwać się jakiś błędów, ponieważ robot wykazuje opóźnioną reakcję, i nie jest zdolny utrzymać się nawet przez 5 sekund. Moje podejrzenia padły...
Witam, Potrzebuję, aby co 24h wywoływany był alarm z RTC na STM32L051. Konfiguracja i obsługa przerwania wygląda tak: [syntax=c]... SYSCFG->EXTICR[1] =SYSCFG_EXTICR2_EXTI4_PB; // przerwanie od EXTI na PB4 SYSCFG->EXTICR[3] =SYSCFG_EXTICR4_EXTI15_PA; // przetwaie od kontaktronu EXTI->IMR = EXTI_IMR_IM4 | EXTI_IMR_IM15 | EXTI_IMR_IM17; // RTC...
Problemem okazały się brak mocy procesora, stąd wyższy poziom optymalizacji pomógł go, przynajmniej tymczasowo, rozwiązać. Dalej jestem ciekaw czemu tak się stało, mimo poszlak, że procesor tej wolnej mocy powinien mieć więce Nie podałeś jakim zegarem taktujesz procek (XMEGA domyślnie to 8 MHz, ale można max 32 MHz), Zegar taktowany jest 24MHz. Wynika...
Pokaż program po zmianach. [syntax=c] /* BAUD RATE: 9600 */ #include <avr/io.h> // Załaduj bibliotekę input/output #include <util/delay.h> // Załaduj bibliotekę opóźnień #include <avr/interrupt.h> // Załaduj bibliotekę obsługi przerwań #include "ioinit.h" // Załaduj bilbiotekę zew. (do ustawienia portów ATMega 8) #include "uart.h"...
Witam!!! Mam pytanko dotyczące ADXL202. Ostatnio podłaczyłem sobie taki do procka 8515(narazie tylko os X) i zaczałem mierzyc czasy T1 i T2, czyli okres przebiegu i czas trwania stanu wysokiego. Przy zastosowaniu rezystroa Rset 120k T2 powinien wynosci 0,960ms(z pomiaru przy pomocy procka wynika ze wynosi mniej bo ok 0,900ms), ale głowny problem to...
http://obrazki.elektroda.pl/8544906200_1... Witam. Jestem studentem Politechniki Gdańskiej. W tym semestrze jako projekt wykonywany w ramach zajęć wymyśliliśmy sobie zdalnie sterowany samochód za pomocą smartfona. Projekt wykonuję razem z kolegą, a ponieważ jest on już praktycznie ukończony, czas na prezentację :) Główne założenia projektu:...
Jestem w trakcie rozwijania pewnej (narazie prostej) konstrukcji. Zastosowałem jako enkodery transoptor szczelinowy, a jako tarcze dziurkowane kółko z LEGO. Niestety to rozwiązanie nie umożliwia mi badania, w która stronę się kręcą koła, ale jest już jakaś prosta podstawa do pomiaru obrotów kół. Tarcza jest umieszczona przed przekładnią ślimakową, więc...
Z tego co widzę czujnik ten wysyła sygnały PWM (modulacja wypełnieniem pulsu) o częstotliwości 100Hz i wypełnieniu 50% dla 0g. Zmiana wypełnienia o 20% oznacza zmianę o 1g gdzie czujnik ma gwarantowane działanie na +/- 1.7g min. Czyli wypełnienie 50%=0g, 30%=-1g, 70%=1g. Minus tych czujników jest taki, że żeby to dobrze obsłużyć to musisz łapać te zmiany...
Używam przerwań. Funkcja read_ms() z nich korzysta. Oto kod wykorzystujący przerwania: scaledy na scaledx i od tego momentu zaczęły się te problemy. Nawet po powrocie do scaledy program ląduje w DH.
Witam, Gdy nastąpi jakiś błąd transmisji przez I2C program się zawiesza, gdzie może być błąd? [syntax=c]#include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include "uart.h" // częstotliwość CPU w MHz #ifndef F_CPU #define F_CPU 16000000UL #endif // prędkość transmisji 9600 #define UART_BAUD_RATE...
Witam. Podczas projektowania robocika 4 kołowego z 4 silnikami(pololu lub HL149) chciałem założyć na oś 4 tarcze z myszy kulkowej i układ opto (dioda IR +fototranzystor podwójny)+komparatory LM358D Planuje kontrolować przebytą drogę jak i kierunek obrotu kół(coś ala kontrola trakcji), 8 wyjść z komparatorów planuje podłączyć pod 8 przerwań zewnętrznych...
mierzący prąd w mA A po co mierzyć prąd, chyba lepiej napięcie (większość mikrokontrolerów ma wbudowany przetwornik AC, a jak umiesz liczyć to policzysz sobie prąd z prawa Ohma). Zresztą weź cyfrowy akcelerometr, będziesz się komunikował po np. I2C i z głowy masz jakikolwiek pomiar wielkości analogowych. i zapamiętujący czasowo jego przebieg w funkcji...
Witam, standardowo akcelerometr na płytce przeznaczony jest dla komunikacji SPI, ale wydaje mi się, że nie powinno być problemu, żeby skonfigurować go pod I2C. 1. Ustawienie czujnika w tryb I2C po przez ustawienie stanu wysokiego na nożce CS podpiętej do pinu PE2 lub PE3 (PE3 jest raczej prawdą). 2. Ustawienie LSb adresu czujnika na 0 po przez zwarcie...
witam, Chciałbym podpiąć się pod temat. Robię aplikacje okienkową w Builder C++ do wizualizacji(wykresów) z akcelerometru trójosiowego ADXL345. Komunikacja uC z czujnikiem jest przez SPI, a uC przesyła to do PC przez RS232. I teraz chciałbym przejść do robienia programu na PC w Builder C++. I chciałbym, aby całą transmisją rządził komputer, i zamiast...
Dzięki za odpowiedź:) Negacja składowych GX, GY jak najbardziej wynika z orientacji sensorów. Na płytce ewaluacyjnej (Rysunek 3) Widać, iż osie X,Y żyroskopu L3GD20 mają są przeciwnie zorientowane względem założonego układu współrzędnych i co do tego nie mam wątpliwości. Zastanawia mnie natomiast oś Z, a właściwie potrzeba zanegowania GZ. Dziwi mnie...
Witam, robię amatorsko quadrocopter i jak wiadomo do okreslenia orientacji przestrzennej uzywam oczywiscie magnetometru, akcelerometru i zyroskopu. Teoretycznie mozna by orientacje okreslac jedynie na podstaie magnetometru i akcelerometru, ale one z siebie same troche szumia i dlatego postanowilem zrobic taka fuzje czujnikow dolaczajac jeszcze zyroskop...
akcelerometr piezoelektryczny żyroskop akcelerometr akcelerometr mikrokontroler
odpalić wymian akumulator wystrzał świecy zapłonowej belinea monitor mruga dioda
charakterystyka diody charakterystyka diody
MAN TGS 18.440 ADR DC Circuit Breaker Specs, Faults, and Replacement Zamiennik TPA3130D2 – TPA3110D2, TPA3116D2, MA12070, SSM3582 – porównanie wzmacniaczy klasy D