(at)pjasinski91 Przede wszystkim musisz tak przetworzyć sygnał analogowy z mikrofonów, aby miał postać cyfrową, łatwą do detekcji przez MCU. Jak się z tym uporasz, to pomiar czasu nadejścia impulsu już jest relatywnie prosty. Oczywiście XMEGA ci tu pomoże bo łatwo można nadawać markery czasowe sygnałom na dowolnych pinach IO. Na klasycznej ATMega też...
Tak. To ten.
Czas odpowiedzi fotoopornika zależy od oświetlenia - w ciemności to są minuty, przy zmiennym słabym oświetleniu prąd fotoopornika zależy od całej historii jego oświetlenia. fotolot (bo to on, a nie oryginalny autor Kuki520 teraz pyta) pisze o częstotliwości do 1kHz i zliczaniu iskier - do tego fototranzystor wystarczy, fotoopornik nie. Ale gdyby celem...
Weź pod uwagę że to jest Arduino UNO, jeszcze w wersji z ATmega THT. Więc ja się tam raczej nie spodziewam stromych czasów narastania. Sondę 1:100 kiedyś kupiłem w TME, raczej z tych tanich. Do pomiarów przepięć. Ale gdzieś ją wrzuciłem i nie mogę znaleźć. Wybrałem sobie też już sondę TESTEC 1:10, i chyba jednak na taką postawię ponieważ istotne są...
Nie rozumiem czemu w Twoim kodzie sumujesz dwa odczyty: Nie sumuję :) Poza tym nie mógłbym uruchamiać timera w momencie pierwszego zbocza(opadającego) a zatrzymać a następnie go zerować jak nastapi drugie zbocze(narastające) ? Wszystko zależy od Ciebie. Możesz kombinować na wiele sposobów w zalezności od dokładności pomiaru jaką chcesz uzyskać oraz...
http://obrazki.elektroda.pl/5431448900_1... 74HC74 bramkuje sygnał wejściowy tak aby jego impulsy nie były krótsze niż impulsy taktowania licznika 74HC590(już samo to wyfiltrowuje część krótkich szpilek) - blokuje to możliwość wyzwalania przerwania ICR1 z nadmierną częstotliwością. W układzie jak na rysunku 74HC590 zlicza gdy sygnał...
Tak jest to dość istotne... Do pomiaru używany jest 16-bit'owy timer 1 (atmega162 ma dwa ale po takim ogólnym rzucie okiem na pdf wygląda na to, że nie ma różnic w konfiguracji)... Co przy częstotliwości taktowania 8MHz prescalerze 8 daje max ~65,5ms przy dokładności do 1us... Poniżej fragment kodu który mierzy czas trwania stanu wysokiego... ... volatile...
Poszukaj info i pomiarze częstotliwości czy też długości impulsu na AVR. Mnóstwo przykładów w necie.
Ok, w takim razie input capture na odpowiednim zboczu i pomiar okresu. Dodatkowo aktywne przerwanie/test bitu OCF1A i modyfikacja OCR1A o obliczoną stałą - raz dodajesz opóźnienie, raz szerokość impulsu. Pozdrawiam, Dr.Vee
Weź pod uwagę, że przy 100 kHz i taktowaniu ATMega128 równym 16 MHz, na jeden okres sygnałju badanego przypada zaledwie 160 taktów zegara. A więc rozdzielczość z jaką będziesz mierzył sygnał jest mocno ograniczona. Oczywiście jeśli interesuje cię pomiar szerokości impulsów. Druga sprawa - w jaki sposób planujecie wysyłać po RS te dane? Bo jeśli masz...
Albo najlepiej zastosować zupełnie inną metodykę - piny podpiąć pod przerwania zewnętrzne (PCINT, INT + diody 1n4148 itp.) i skorzystać z jednego timera generującego podstawę czasu.
Witam Mam nadzieję że doświadczeni fachowcy pomogą. Potrzebuję zmierzyć ile impulsów z Timer1 mieści się w zewnętrznym impulsie. Doczytałem informacje że można to zrobić poprzez przechwycenie zawartości Compare1a po podaniu tego zewnętrznego impulsu na pin. ICP1. Pewno są na to też inne sposoby , o których nie pisze w pomocy i w googlach. Nie wiem od...
To sobie na tych rysunkach zobacz jak wpływa wartość rezystora podciągającego na szerokość tych szpilek (czyli wypełnienie przebiegu) i zastanów się jaki to ma związek z CTR. Naprawdę nie musisz z siebie robić błazna, tylko dlatego, że nie masz racji. Dodano po 2 Aha, a teraz patrząc na definicję stanów logicznych, spróbuj jeszcze pokojarzyć związek...
Rzeczywiście, z zaremowaną funkcją bitwait zmienna W przybiera wartości. Nie mam pojęcia dlaczego. Musisz tu zrozumiec mechanizm pomiaru długości trwania impulsu w instrukcji "PULSEIN": patrz 'Bascom help' Pulsein W , Pinc , 0 , 1 W tym konktetnym przypadku pomiar czasu dokonywany jest pomiędzy zboczami, z których pierwsze jest rosnące a drugie opadające....
Witam Proszę o pomoc. Potrzebuję wykonać okład mierzący bardzo krótkie odcinki czasu. START podanie impulsu na któryś pin, STOP podanie drugiego impulsu na kolejną nóżkę. Procesor Atmega32 język Bascom. Jaki najmniejszy odcinek czasu mogę zmierzyć ? Jak wygląda procedura pomiaru czasu miedzy Start a Stop? Bardzo proszę o podanie fragmentu kodu. A czy...
Sam pomiar w przerwaniu nic nie da. Bo zawsze wskaże porównywalny prąd (impulsowy podczas trwania impulsu PWM). Ten prąd trzeba przeliczać w zależności od wypełnienia PWMa. I dlatego pytałem jaki chcesz prąd. Średni czy skuteczny. Jak średni to mnożysz przez wypełnienie PWMa (przeskalowane do zakresu 0...1). A jak chcesz skuteczny to mnożysz przez wypełnienie...
Nie mam jak określić dokladnie częstotliwości, ale mniej więcej z przełożenia czujnika w skrzyni myślę że od 0 do 4000 impulsów na sekundę ( tak orientacyjnie), szerokość impulsu to 1/16 obrotu czujnika. Znalazlem dziś jedyny projekt, z którego mógłbym wziąć podstawę, ponieważ jest to obrotomierz czyli też zliczanie impulsów i podobno działa na takiej...
Potrzebuję czterech PWM i dwóch wejść odmierzających długość impulsu o zakresie od 1 do 2 ms. Pytanie czy atmega 8 się wyrobi czy muszę brać 16 . I jak rozumiem z wszystkich postów muszę pwm zrobić programowo bo potrzebuję pozostałych timerów do pomiaru impulsów. I pytanie o oscylator wewnętrzny czy mogę go użyć czy lepiej kwarc bo zależy mi na wielkości...
Nie tędy droga, Ty musisz zrobić coś dokładnie odwrotnego - nie wygenerować sygnał, ale go zmierzyć. Rozwiązania są 2, ale jeśli programujesz w bascomie i nie masz ochoty na operacje na rejestrach w procesora to kurczą się do jednego. Mianowicie: 0. ustawiasz timer na zliczanie impulsów i zmianę wartości jakiejś zmiennej - parametry dobierz w zależności...
Ponieważ tzw. casting w BASCOMie jest nieco zbyt prosto zrobiony to proponuję zrezygnować z: Dim Xl As Word Dim Xh As Word A w przerwaniu pobierać zawartość z rejestru ICR za pomocą specjalnie generowanej dla tego celu zmiennej typu Word: Capture1 . Pętlę Do..Loop zamieniłbm na sprzętowe porównywanie i kasowanie licznika przez CTC. Niech takimi rzeczami...
http://obrazki.elektroda.pl/3185739500_1... Witam. Przedstawiam dziś kolejne urządzenie z serii: Atmega8 + LCD z nokii 3310. Jest to graficzny rejestrator napięć oparty na mikrokontrolerze ATMEGA8A - AU i jego wewnętrznym Przetworniku A/C. Jest to coś ala oscyloskop cyfrowy, jednak do oscyloskopu sporo mu brakuje głównie ze względu na ograniczenia...
http://obrazki.elektroda.pl/5016503100_1... Układ nadążny za słońcem- inaczej układ śledzący, jest rodzajem układu sterowania, który umożliwia automatyczne lub półautomatyczne wodzenie za Słońcem. Układy tego typu wykorzystuje się najczęściej w celu znacznego podniesienia wydajności baterii fotowoltaicznych lub kolektorów słonecznych....
Dzięki za tak szybkie odpowiedzi :-) Rozumiem, ze zmienne zadeklarowales jako volatile, czy zapomniales o tym?:) Druga sprawa - komplikujesz. Ustaw 16-bitowy timer tak, zeby np. mial impuls co 1us, albo czesciej, w zaleznosci jaka potrzebujesz rozdzielczosc. Tak, zmienne mam jako volatile, ale rzeczywiście nie policzyłem, że counter tak szybko się przepełnia...
W Bascomie jest do tego specjalna instrukcja Zaglądnij do Helpa na polecenie Pulsein Zauważ że zarówno instrukcja pulsein jak i pulseout mierzy tylko czas trwania impulsu a nie całego cyklu; patrz paniżej diagram: http://obrazki.elektroda.pl/1148630500_1... Zmierzysz tylko L1 albo L2 . Autor potrzebuje zmierzyc czas L (czas pomiędzy...
te instrukcje zerują bit w rejestrze ok. wielkie dzięki ale czytając książki na temat programowania tego ustrojstwa atmega było napisane że wystąpienie przerwania w trybie przechwytywania następuje w skutek wykrycia zmiany sygnału na wejściu icp1 gdy timer ustawiony jest w tryb przechwytywania ale mam teraz pytanie (problem)?-brak weny twórczej to kilka...
Witam Poniższy program mierzy długość trwania impulsu / stanu niskiego podanego na INT1. Pomiar jest wyzwalany przerwaniem, zboczem opadającym, następnie następuje włączenie timera i przestawienie przerwania na zbocze narastające. Gdy ono nastąpi jest wyzwalane kolejne przerwanie, które zeruje zatrzymuje timer. Odczyt timera (rejestr TCNT1) następuje...
Witam Może zostałem źle zrozumiany :) opisywaliśmy jedną z koncepcji, czyli zastosowanie Atmegi i jej przetwornika, ale : - nie sugerowałem zasilania PT100 z wewnętrznego źródła Atmegi, tylko wykorzystania źródła wewnętrznego do ADC (zakres 0V - 2,56V ), - jak starałem się zasugerować pomiar bezpośredni napięcia nie wypali z powodu braku rozdzielczości,...
Niby rozumiem to co piszecie. Ale mam nadal kilka pytań. Rezystora ma być taki aby przy największym testowanym napięciu odłożyło sie na nim maksymalny badany prąd. Czyli 20V / 6.5A = 3ohmy. Teraz PWM steruje tranzystorm mocy, Atmega mierzy spadek napięcia na rezystorze, wylicza sobie prąd i koryguje PWM żeby utrzymać zadany prąd. Ale czy kondensator...
Sterowanie najlepiej mikrokontrolerem, np ATMEGA. Pomiar prądu można by zrobić poprzez pomiar spadku napięcia na rezystorze wzorcowym, Jak rozumiem prąd ma być utrzymywany stały - 20 A, a więc przy R=0,01 Ohma moc na nim będzie się wydzielać 4W, a nominalny spadek to 200mV - da się zmierzyć. Trzeba napisać program(lub algorytm jeśli to ma być projekt)...
Podłączyć je można na na kilka sposobów. Generalnie chodzi o pomiar czasu trwania impulsu powracającego (dla tego czujnika, który wskazałeś). Najpierw policz czasy trwania odebranych impulsów dla odległości maksymalnej i minimalnej. Na tej podstawie będziesz już mógł podejmować pierwsze decyzje. Wzory masz w linku który podałeś. No i zacznij może od...
Ja mam to zrobione poprzez pomiar szerokości impulsu wynik natychmiastowy i bardzo dokładny, a jak czesto wyswietlam i z jaką dokładnoscia to juz ja decycuje a nie mam ograniczen pomiarowych. Dorób następujące funkcje: -wyswietlanie na którym biegu jedziesz -sygnalizacja mozliwosci przełaczenia biegu (nie musisz wciskac sprzęgła:) -rejestrator przejchanych...
Czyli przyjmujemy, że nie ma problemu z drganiami styków i innymi zakłóceniami. Jeżeli dobrze zrozumiałem zasadę działania czujników oraz Twój cel i chcesz wykorzystać obydwa INTx, to zrobiłbym tak: 1. pod INT0 podpinasz sygnał decydujący o starcie i końcu zliczania 2. pod INT1 podpinasz sygnał, który ma być zliczany Pseudo kod: 1. inicjacja: 1.1 INT0...
Dziękuje za tą uwagę na pewno to sprawdzę i dam znać jak będą pozytywne efekty.
Temat na pewno dokończę tylko jak zwykle brak czasu...żeby pokombinować między pracą a małym dzidziusiem :) dlatego zacząłem od zbierania danych i cieszy mnie że jest dużo rzeczowych odpowiedzi... najprostsze chyba by było rozwiązanie kamyczka - jeden ic i po sprawie ale z drugiej strony jest trochę za drogi co przy późniejszej produkcji będzie miało...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
Postawiłem sobie zadanie opracowania licznika prędkości. Powiedzmy, że do roweru. Konstrukcję i jej sens odłóżmy na razie na bok :) Zadanie dla procesora niby banalnie proste - liczyć prędkość przez badanie impulsu na pinie. I teraz zaczynają się schody. Mogę to zrobić na kilka sposobów (te które znam): 1) mierzenie czasu między impulsami 2) mierzenie...
nie uwzględniałem. Nie wiem czy są takowe w ogole, a poza tym ja liczę czas trwania impulsu sterującego - czyli masy. Myślę, że bez oscyloskopu w samochodzie się nie obejdzie...
Pozostaje sprawdzić oscyloskopem lub analizatorem logicznym jaki jest rzeczywisty czas impulsu. Osobiście stawiałbym na to, że czujnik jest ok. Problem może być z częstotliwością pracy uP, albo działaniem funkcji Pulsein. Nie mam doświadczenia z Bascomem, ale i tak nie mam zaufania do wbudowanych funkcji bibliotecznych takich środowisk.
To raczej inaczej się robi. Wykorzystaj piny ICP i przypisane im rejestry. Timer musi pracować z częstotliwością zależną od wymaganej przez ciebie rozdzielczości pomiaru czasu. W przerwaniu odczytujesz zamrożone stany rejestru i masz pomiar w tyknięciach licznika timera. Czyli trzeba to zrobić tak: Ustawić przerwanie na zbocze narastające, zapisać...
No więc zgodnie z moimi przypuszczeniami masz tam sygnał cyfrowy, w którym informacja o położeniu jest kodowana jako czas trwania impulsu - 1,5ms położenie neutralne, 1 lub 2ms położenia skrajne. W takim przypadku to co potrzebujesz to: 1. Porzucić pomysły związane z ADC, 2. Zająć się timerem, a dokładniej układem pomiaru czasu trwania impulsu - input...
Proszę. Nie testowane bo ja tu mam mnóstwo roboty ;) Normalnie użyłbym raczej wejścia ICP1, ale takie cos to możesz mierzyć chyba z palcem w uchu :D Powinien pokazać czasy stanu wysokiego i niskiego ;) [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000 $hwstack=64 $swstack=32 $framesize=128 Config Lcd = 20x4 Config Lcdpin = Pin , Db4 = Portb.2...
Nie przez wstawki asemblerowe- ale przez założenia. No może potem- przez wstawki. Jak byś uważnie przeczytał co napisał emarcus- to może byłoby bliżej. Jest tak- mamy bramkę AND i oba liczniki są podłączone do wejść. Jeden z nich otwiera jedno z wejść bramki na czas 1s a a na drugie wejście bramki w tym czasie podajemy impulsy. Potem pierwszy licznik-...
Witam, Wzorując się na poradniku: www.ja(usun-to)glarz.com/ja/elektronika/... napisałem funkcję: Wszystkie czasy zawarte w powyższym kodzie wynikają z dokumentacji technicznej wysyłania i odbierania impulsu RESET i PRESENCE. Według dokumentacji układ Master powinien ustawić linie w stan niski na czas min. 480µs, następnie ustawić w poziom...
Skoro procesor nie wydala dla tak małych prędkości (50Hz) to znaczy, że jest czymś poważnie zajęty. Arduino i cała ta biblioteka ma sama w sobie duży narzut. Najpewniej w czystym C byłoby to o wiele szybsze. Ale i tak twoje podejście nie jest do końca dobre - do mierzenia czasu impulsów powinieneś wykorzystać timer w połączeniu z jego pinem ICP (input...
Przy tak niskiej częstotliwości impulsów lepiej nie zliczać impulsy w czasie, lecz użyć zewnętrznego przebiegu do bramkowania licznika, który zlicza impulsy ze swojego zegara o dużej częstotliwości. Dzięki temu dostaniesz informację o liczbie taktów zegara referencyjnego przypadających na okres sygnału zewnętrznego. Umożliwia to dokonanie pomiaru w...
Filtr to R5 i C2 na schemacie który wstawił Paweł Es, właściwie to ja pierwszy go wyrzuciłem. A teraz myślę czy właśnie to filtrowanie napięcia zasilającego wzmacniacz nie jest konieczne. Podaj też tu parametry tego regulatora PWM (częstotliwość - czy stała wartość, ile? czy też zmienna, a stała wartość impulsu, ile?). Co to jest za silnik (typ, model)?...
Witam, Mam taki problem, jak zrobić szybki pomiar przetwornikiem ADC na procku Atmega 128. Dostaję przerwanie że powinienem mierzyć i natychmiast po tym przerwaniu musze spróbkować impuls na wejsciu. Procek jest na kwarcu 8MHz bo to wersja L. Obecnie mam pomiar ręczny (nie Free run) ale coś kiepsko wyrabia.
Zerknij na to [syntax=c]/* * Timer0_fast_pwm_adc_irq_1.c * * Program uruchamia licznik Timer0 w trybie modulacji szerokości impulsu, tzw. Fast PWM. * Wyjście modulatora PWM na końcówce (OC0) PORTB.3. * Zostaje uruchomiony przetwornika ADC, pomiar z kanału 0, pomiar 10-bitowy, wyz. ADC z przepełnienia Timer0. * Częstotliwość PWM zależy od prescalera,...
Witam Kod jak poniżej służy do zliczania czasu trwania jednego impulsu (ta funkcja działa prawidłowo) oraz do zliczania czasu (w celu zliczania ilości impulsów na jednostkę czasu). volatile unsigned char pomiar = 0; volatile uint32_t cw_impuls,impuls = 0; unsigned char sreg; float tc1; char czas[8]; void Inicjalizacja(void) { LCD_init();...
Witam, Napisałem prosty program wysyłający i odbierający sygnał z diody podczerwonej. Układ nadajnika składa się z: uC ATMEGA16, trzech przycisków i diody IR TSAL6200, a układ odbiorika z uC ATMEGA8, odbiornika IR TSOP1138 i diody led. Obok odbiornika dałem też elektrolit 47uF. Oto program nadajnika: [syntax=c] #define F_CPU 8000000L #define SET(port,...
Witam, mam taki problem i pytam czy wybrane przeze mnie rozwiązanie jest optymalne. Musze zmierzyć czas trwania impulsu (logiczna jedynka). W tym celu podaje ten sygnał na wyprowadzenie INT0. Ustawiam przerwanie INT0 na zbocze narastające. Jeśli pojawi się zbocze narastające w funkcji obsługi przerwania ustawiam flage ZN. W pętli głównej sprawdzam flage...
Witam. Kombinuję już od jakiegoś czasu nad włącznikiem RC ale nie typu on/off tylko w zależności od zapotrzebowań, tyle ma być stanów. Na chwilę obecną docelowo mają to być 3 stany off/1/2. Wygrzebałem w googlu kawałek kodu, który jest odpowiedzialny właśnie za pomiar długości trwania stanu wysokiego na wejściu ICP1 (input capture). Jednak za żadne...
Witam, opiszę Wam mój problem. Próbuję odczytać atmegą 16 częstotliwości w zakresie [0-1MHz] . Pod kontroler podłączony jest wyświetlacz, który co jakiś czas ma pokazać wartość ICR1. Powoli przesiadam się na język C i jest on dużo wygodniejszy ponieważ dużo problemów można rozwiązać samemu z pomocą DataSheet-a. Tak więc z niego wyczytałem co muszę wpisać...
Kody w C do czytania ukladu DS18B20. U mnie dziajaja :D Dodano po 3 #define ENABLE_BIT_DEFININTIONS #include <io2313.h> #include <ina90.h> #include "hardware.h" #include "headers.h" #pragma bitfields=default // definicje zmiennych globalnych int TEMPERATURE= 9999;//ta liczba okresla blad pomiaru lub brak czujnika char DALLAS_Buf[9]; C_task...
Witam, Napisalem program na atmega8 do regulatora dwukierunkowego, którego schemat można znaleść tutaj. [url=http://www.modelhobby.republika.pl/... Licznik pracuje z zegarem 8Mhz i prescalerem 64. Czyli licznik powinien zapelnić sie minimalnie po 2ms. Sygnał z odbiornika trwa od 1ms do 2ms. Najpierw zliczam czas impuslu. W zależności...
Witam Od początku dzisiejszego dnia "męczę" się z ultradźwiękowym miernikiem odległości HC-SR04. Poszperałem w internecie napisałem program itp. Nawet działa, ale tylko do określonej odległości (ok. 30cm). Połączenia raczej mam dobre, próbowałem odmierzać impulsy z wykorzystaniem wejścia ICP1 (PB0 i wtedy diody wskazujące odległość bardzo słabo świeciły),...
Witam. Z racji że lada dzień dotrze do mnie programator postanowiłem zacząć pracę nad pierwszym projektem, mianowicie obrotomierzem do pojazdów 2T. Projekt nie łatwy jak na początek. Ukończyłem tylko kurs dawnego dioda.pl, i napisałem kilka prostych programów dla nauki, dlatego nie mogę się zdecydować co do rozwiązania. Po 3 dniach poszukiwań znalazłem...
Dla mnie wydaje się być dosyć oczywiste, że jeżeli sygnały na dwa wejścia przychodzą jednocześnie i niezależnie, to też jednocześnie, a nie po kolei, należy je obsługiwać. Zatem cała idea Twojego programu jest niepoprawna. Poprawnie, to w programie powinny się (z grubsza) jednocześnie i niezależnie wykonywać trzy rzeczy: - odczyt czujnika nr 1 (pomiar...
http://obrazki.elektroda.pl/3606329200_1... Miernik ESR. Jak ważną rolę w układach elektronicznych pełnią kondensatory, nikomu nie trzeba tłumaczyć. Ale fakt, że kondensator to nie tylko pojemność, już nie dla każdego jest taki oczywisty. Kondensatory elektrolityczne -bo na nich się głównie skoncentrowałem- pełnią najczęściej rolę filtrów...
Faktycznie, mój błąd. Postanowiłem jeszcze raz napisać kod od początku: [syntax=c]#include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #include <util/delay.h> #include "HD44780.c" volatile unsigned long int okres; volatile unsigned int przepelnienia; volatile unsigned char cykl; volatile unsigned char koniec_pomiaru;...
Oba procesory taktowane są kwarcami zewnętrznymi. Co prawda mają różne MHz, ale to nie ma znaczenia. Pierwszy uP jest tylko testowym sygnałem podającym impuls. Docelowo ma liczyć drugi uP i zupełnie inne impulsy. Spróbuję jeszcze dokładniej zrobić podanie impulsu z uP1 na przerwaniach. Powinno to chyba wyeliminować zmienny błąd pomiaru i dać stałą błędu...
Witam, Chce mierzyć długość trwania impulsu (stan niski) przy użyciu ATMEGA32. Napisałem poprawnie działający programik, problem w tym, że w czasie pomiaru impulsu procesor nie może robić nic innego. Do wykrycia stanu niskiego użyłem przerwań z INT1 a do odmierzania czasu trwania impulsu użyłem Timer2. Czy jest jakiś sposób, żeby mierzyć czas trwania...
A czy bedą czesciej impulsy czy rzadziej to i tak sie nie doczeka. Na to jest prosta rada: Gdy impulsy nie przychodzą przez okreslony czas to znaczy że samochod stoi i na wyswietlaczu pojawia sie zero i żadna filozofia to zrelizować programowo gdzy wystarczy liczyc przepelnienia przerwan. Nie zmienia to faktu że gdy impulsy są duzej czestotliwosci to...
A moze by tak zastosowac AT89S8252, ma bardzo fajna funkcje do liczenia czasu pomiedzy impulsami, licznik T2 tego uC po sygnale na wejscie T2EX przepisuje wartosc licznika do specjalnych rejestrow i zeruje się i tak do kolejnego impulsu. Ja to wykorzystuje do sprawdzania prędkości generatora SRG. pozdrawiam trikess Oparcie pomiaru na Input Capture...
jej indukcyjność to 150uH ale opór prawie 17Ω :| . No i co z tego? Ten opór po prostu dokłada się do impedancji "widzianej" dla impulsu poboru prądu, to nawet lepiej. A dla statycznego poboru prądu rzędu nawet 1mA masz tam spadek 17mV. I wydaje mi się że ładowanie kondensatora na VREF powoduje spory spadek napięcia na AVCC, przez co przetwornik...
Wygoda, wolę kręcić niz kombinowac z przyciskami, zwłaszcza te strt/stop. Chodziło mi o to że nie ma płynnej regulacji w locie (a jest w opisie). Takie zaglitch-owaneraczej trudno nazwać płynną i w locie. Płynna to nie, w locie to tak (raczej tak) PS nie pytałem o R-MIK tylko o ten projekt. A pytania zadałem bo IMO nieuczciwie kolega (at)gdL prezentuje...
Wykresy zawsze sie robi tak samo - w excelu :) Moim zadaniem informacje z procka sa przesylane do komputera, a poznjiej zbiera sie wartosci z np. 30 pomiarow i robi sie z tego wykres.
Jeśli wybierzesz pomiar ilości impulsów w jednostce czasu, zamiast pomiaru długości impulsu, dla niskich częstotliwości, pomiar będzie obarczony błędem. Przykład : wiatr wieje z taką prędkością, że impuls pojawia się co 0,4s. W ciągu sekundy odczytasz 2 impulsy, co da f = 2Hz, podczas gdy realnie wiatrak obraca się z prędkością f = 2,5Hz, błąd 25%....
Witam W prockach dopiero raczkuje. Robię obrotomierz do samochodu (choć można zastosować to wszedzie). Oparłem to na atmega16 bo taki akurat teraz mam, ale docelowo ma byc na 2312.Na razie jest wszystko w fazie testowej na biurku, ale założenia są takie: na kole zamachowym umieszczam siakiś czujnik, podaje to na układ formowania impulsu, z którego będę...
No w sumie zależy to od budowy sterownika serwa. Jeżeli serwo poza pomiarem czasu trwania impulsu każdy impuls traktuje jako wyzwalacz sterowania silnikiem to oczywiście będzie kiepsko przy impulsach kilkaset Hz. Może trafiłem na odpowiednie serwa. Natomiast 60Hz zamiast 50Hz to żadna różnica. Wiec to nie to jest problemem drgania serw.
16000000 / 256 / 250 / 90 = 2,777777778 Hz Skąd ci się wzięło 250? Jeżeli ładujesz taką wartość do timera to przepełni się on po 6 taktach timera. Wstaw większy fragment kodu, bo z tego co podałeś nic nie wynika. Zakładając, że timer będzie liczył te 250 taktów to: T=1/f=1/(16000000/256)=0,016ms/impuls timera Mnożysz liczbę taktów timera, liczbę pętli...
Robię komputer pokładowy do starego samochodu. Wyżej wspomniany blok kodu odpowiada za pomiar długości impulsu wtrysku, odstęp między impulsami od cewki silnika i odstęp między impulsami od czujnika halla, odpowiedzialnego za mierzenie prędkości kół. W poprzedniej wersji pętla wykonywałą się właśnie 8192 razy na sekundę. Teraz chciałem podwoić dokładność....
Może faktycznie szum nałożony na zbocze jest tu przyczyną wielokrotnego wywołania przerwania przy jednym impulsie. W poniedziałek przyjrzę się dokładniej temu zboczu i spróbuje coś zaradzić. Ale z drugiej strony gdyby tak było, to dlaczego impulsy zliczane są prawidłowo wtedy gdy program okrojony jest do minimum? Jaka jest szerokość impulsu? Maksymalna...
No właśnie, ja źle to wcześnie zrozumiałem. Ja muszę zmierzyć czas powrotu fali, czyli to już nie będzie pomiar napięcia jak wcześnie myślałem i 3 dni bawiłem się z przetwornikiem:( ale jak ten czas zmierzyć to już dokładnie nie wiem. Napisałem taki program żeby mierzył czas z czujnika i wartość wystawiał na 8 diodach, jest impuls i czujnik reaguje...
Witam Jestem tu nowy więc proszę o wyrozumiałość. Od pewnego czasu próbuję zdekodować pilot(y) IR. O ile dużo jest wątków poświęconych dekodowaniu RC5 i innych to jednak nigdzie nie mogę się doszukać jak sprawdzić czas impulsu. Wykorzystuję timer i przerwanie zboczem narastającym ICR1 . W przerwaniu zmieniam na zbocze opadające a następnie dokonuję...
Schemat w załączniku. A to fragmenty kodu odpowiedzialnego za czujnik: [syntax=c]// inicjalizacja przerwania sensora koła void init_int0(void) { DDRD &= ~(1 << 2); // nozka 2 (int0) jako wejscie PORTD |= (1 << 2); // z podciaganiem do 1 MCUCR |= (1 << ISC01); // przerwanie wyzwoli zbocze opadajace //GICR |= (1 << INT0); //...
Program bez przetwornika ADC. Program działa prawidłowo Dodano po 42 Od kiedy praca dyplomowa jest tajna? Pytam z ciekawości- kiedyś była jawna na całym etapie pisania. Dlaczego w pętli głównej blokujesz przerwania- potem wykonujesz sporo obliczeń- a potem odblokowujesz? A co będzie jak w tym czasie pojawią się dwa przerwania? Jedno pójdzie się kochać....
Witam to mój pierwszy post na tym forum, stąd możecie mi wierzyć jak bardzo jestem zrozpaczony:) jeśli temat jest w złym miejscu to prosiłym moderatora o przeniesiegnie i z góry przepraszam:) zwykle staram się rozwiazywać wszystkie problemy sam ale tym razem mam coś czego nie jestem w stanie zrozumieć. Pracuję chwilę nad programem którego działanie...
Sygnał dla serwa to wypełnienie impulsu. Okres coś chyba 2ms a środek serwa to 1,5ms przy czym najmniejsze wychylenie przy 1ms. Tak więc przy prawie pełnej skali może różnicy nie widac a widać tylko tę bliżej nizszych wartości. W rozwiazaniu zagadki zacząłbym od prostego pomiaru czestotliwości [syntax=vbnet]Config PORTB = &HFF Do PORTB = Not PORTB Loop[/syntax]...
Witam, Piszę program do atmega8 i mam problem z ustawieniem Timer1. Dopiero zaczynam programować więc proszę o wyrozumiałość. Chciałbym ustawić tak timer1 aby zaczął liczyć czas od pojawienia się na portd.3 pierwszego impulsu do drugiego impulsu, zapisał wartość do zmiennej, wyzerował się i zaczął zliczać czas od drugiego do trzeciego impulsu zapisał...
https://obrazki.elektroda.pl/2265369100_... https://obrazki.elektroda.pl/5580852100_... https://obrazki.elektroda.pl/6036416800_... - Wyświetlacz 8xled 7-seg + 2x16 LCD (niebiesko czarny). - Przetwornik ICL7135 - W trybie double ADC w AVR - Procesor AtMega1281 - USB: FT201 + izolacja na ADuM1250 -...
Witam Potrzebuje mierzyc czas pojedynczych impulsow dodatnich o czasie trwania od 0 do okolo 5 s podawanych na jedna z koncowek ATmega8 z kwarcem 4MHz. Moge zastosowac tylko Timer2. Jak wlaczyc ten timer po pojawieniu sie tego impulsu i jak go potem wylaczyc po jego zakonczeniu. No i jakich dokonac obliczen, aby czas trwania tego impulsu wyswietlic...
Ostatecznie możesz zrealizować taki pomiar w oparciu o układy cyfrowe. Budujesz generator o odpowiednio dużej częstotliwości do tego jakiś licznik i układ bramkujący ...a mikrokontroler stosujesz do sterowania tym układem oraz odczytem wartości z licznika i akwizycji na wyświetlacz. Wspomniane mikrokontrolery XMEGA są oczywiście lepszym wyjściem z sytuacji...
Mam pytanie czy potrzeba było stosować zasilanie seperowane dla każdego tyrystora? Nie chciałem transformatorów impulsowych. W takim razie musi być seperacja od sieci. Daje to możliwość dowolnych manipulacji w długości impulsu. Czy w tym układzie można zadać kąt wysterowania tyrystora, czy jest sprzężenie zwrotne w programie oddziałowujące na kąt zapłonu...
masz rację na temat enkodera praktycznie nie ma zbyt wiele informacji , może kontakt z tym co pozostało po PZO pozwoli na otrzymanie dokładniejszych informacji http://www.pzo.warszawa.pl/ myślę że jednak to 512 impulsów na obrót , zapytam czy zastosowałeś układ kształtowania impulsu z enkodera , z informacji które można jeszcze znaleźć wynika że były...
Masz na tym żółtym przewodzie cały czas napięcie, a kiedy jest "impuls" to spada do zera? To podciągnij rezystorem do plusa... :arrow: Przecież już jest podciągnięte do plusa( cbi(DDRD,4);sbi(PORTD,4); ) czyli PIN jako wejście oraz podciągnięty do VCC , i dodanie rezystora nic nie zmienia, taki sam efekt jak ściągnięcie do masy. :arrow: To wygląda...
witam, jak zmierzyć czas między dwoma impulsami wchodzącymi na INT0 od odbiornika podczerwieni TSOP1736. czy włączenie timera poczekanie do nasepnego impulsu i cała procedura może odbyć się w ISR(SIG_INTERRUPT0) { } edit: napewno w kodzie musi się pojawić to: TCNT0 = 0; // wartość początkowa T/C0 TCCR0 |= (1<<CS01); //preskaler...
Program przepisałem całkowicie z http://student.agh.edu.pl/~coni/avr_1wir... zmieniłem tylko port na PC5. Najpierw podłączyłem dobrze i otrzymywałem takie coś: -16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00... No w moim mieszkaniu to tak ok 24°C. Potem wyciągnąłem...
TRIG potrzebuje impulsu 10us by wyzwolić pomiar. W odpowiedzi na pinie ECHO mamy impuls o różnej długości, zapewne dłuższej niż 10us. Pin Echo HCSR04 połączyłeś z pinem TRIG. Sprawdzałeś, czy nie będzie sam siebie wzbudzał?
Dobra pierwsze podejście do kodu: Atmega8 ustawiona fusami na 8Mhz Najpierw dobór preskalera. Jak już wcześniej pisałem pomiar jest od 1,2-1,9ms więc zliczanie czasu moim zdaniem powinno być mniejsze od 0,05ms. Dobrałem preskaler 64 po czasie 524.288ms następuje przepełnienie T1 dla 0xFFFF, a więc jeden takt zliczania ma 524.288/65535 czyli 0,008ms...
Pomiar czasu pomiędzy impulsami radzę stosować dla małych prędkości obrotowych. Dla większych prędkości , lub odczytywaniu impulsów z enkodera ( np . 1000 impulsów na obrót ) czasy pomiędzy impulsami mają małą wartość , należy wtedy zliczać impulsy w czasie . Daje to większą dokładność. Np dla 1000 obr/min 100 impulsach na obrót i czasie pomiaru 1 sek...
Witam, mam zrealizować pomiar prędkości obrotowej wiatraczka za pomocą magnesu+kontaktronu+Atmega (pomiar okresu). Obawiam się jednak o wytrzymałość tego ostatniego ponieważ przewiduję dużą liczbę impulsów. Chciałbym zastąpić go czujnikiem halla. Zakpiłem w tym celu hallotron bipolarny (teraz wiem że to było błędem) ale oczywiście nie działa. Czy dobrze...
To może dodaj rezystor o wartości równej R1 między diodę i PD5? Możesz też wstawić dodatkowe rezystory rzędu R1 x20 do masy? W ten sposób każdy kanał ADC będzie mierzył coś sensownego dla każdej polaryzacji i nie będzie problemu z podciąganiem wejścia do zasilania przez wewnętrzny pull-up. Rozważyłbym też podłączenie do PB1 i PB2, które są wyjściami...
Witam Potrzebuję wykonać miernik częstotliwośći i amplitudy dla przebiegu sinusoidalnego. Częstotliwość generatora będzie się zmieniać w zakresie 20Hz - 15kHz amplituda do ok. 10V. Napięcie sinus. jest podawane na komparator shmitta coby zamienić je na impulsy a następnie impulsy będą zliczane przez T0 atmegi 16 w czasie 1s. Niestety do zasilana komparatora...
Ślicznie dziękuję wszystkim, kod działa, i to jak=]. Poprawiony kod, z eliminacją zakłuceń #include <avr/io.h> #include <avr/interrupt.h> #include "remote.h" #include <compat/deprecated.h> #define OSC 4 #define LED_ON PORTC |= 0x02 #define LED_OFF PORTC &= 0xFD unsigned int licznik=0; void waitms(unsigned char x)...
mozesz zwinac przewod pradowy w cewke a w jej srodku dac kontaktron. prad wzrosnie zalaczy kontaktron dajac impuls o przekroczeniu wartosci zadanej innym rozwiazaniem jest bocznik i pomiar spadku napiecia
Hmmm... dowiedziałem się w końcu jak ma wyglądać włączanie tego oświetlenia. Przełącznik w pozycji -1 - oświetlenie wyłączone (impuls 1ms) Przełącznik w pozycji 0 - włączone stroby (impuls 1.5ms) Przełącznik w pozycji 1 - włączone stroby i dodatkowe oświetlenie pozycyjne. (impuls 2ms) Oczywiście pomiary trzeba by było zrobić z jakąś dokładnością (impulsy...
Szukałbym przyczyny najpierw w potencjometrach. Co się dzieje, kiedy zmieniasz np. stopniowo wypełnienie lub częstotliwość co jakiś czas, a nie na podstawie odczytu ADC? Ponadto prawdopodobieństwo, że dwa razy pod rząd dostaniesz z pomiarów ADC tę samą wartość jest niewielkie.
...nie odrzucam sposobu mierzenia prędkości poprzez pomiar czasu pomiędzy kolejnymi impulsami. Lecz nie bardzo mam pomysł jak to zrealizować programowo. Będe wdzięczny za podpowiedzi. W sumie to jest bardzo proste, wykorzystaj do tego jakiś timer z dość dużą częstotliwością (czym większa tym dokładniejszy pomiar). Zerujesz go w momencie przyjścia impulsu,...
pomiar szerokości impulsu atmega pomiar impulsu trwania impulsu atmega
esp8266 flashowanie iphone blokada ekran kostka radia toyota corolla
philips senseo obnizenie napiecia baterii
Jak wyświetlić godzinę na telewizorze Samsung Lokalizacja przekaźnika świateł drogowych w Mercedes Sprinter 319