Domyślam sie że to jest BASCOM. GetAdc(x) - funkcja wykonuje pomiar na nodze ADCx. Czyli dobrze myślisz. Pozdrawiam Yakuza Edit: Tylko pamiętaj że przetwornik musi pracować w trybie SINGLE.
Odczyt z ADC czyli, Pomiar=Getadc(1) wrzuć do pętli głównej.
Poniżej fragment: Odczyt = 0 For Krok = 1 To 100 W = Getadc(1) Odczyt = Odczyt + W Next Krok Wyn = Odczyt / 100 Zmienna wyn to uśredniony pomiar ze 100 odczytów. Pozdrawiam.
Bascom operuje bezpośrednio na rejestrach. Poczytaj DS co i gdzie trzeba poustawiać, a potem czytaj wynik też prosto z rejestrów. Nie używaj getadc. To polecenie działa tylko w trybie single i o ile wiem wykonuje konwersję zawsze dwa razy zwracając wynik drugiego pomiaru. Wtedy o szybkości max nie ma co mówić.
Programik w porządku z małym ale Wart_ac = Getadc(1) Wart_ac = Getadc(1) ' dwa razy to samo zalecam i V = Wart_ac * 0.004884 ' też zalecam Jeśli nie zależy ci na czasach kolejnych odczytów to zalecane jest odczekać > niż 20ms przed kolejnym pomiarem z ADC Wart_ac = Getadc(1) Waitms = 50 Wart_ac = Getadc(1) to od strony programowej, teraz od elektroniki:...
Nie, GetRC służy do pomiaru czegoś innego... GetADC jest bardziej precyzyjne.
Znalazlem jakis stary programik.... odczyt 2 kanalów ADC z częstościa 100 razy na sekunde... Analize pozostawiam Tobie...(podpowiem że Help wszystko wyjaśni) Pozdrawiam $regfile = "m8def.dat" $crystal = 11059200 $baud = 19200 Config Adc = Single , Prescaler = Auto , Reference = Off Config Timer1 = Timer , Prescale = 256 On Timer1 Pomiar Enable...
Albo coś zakłóca pomiar. W końcu Uref pochodzi od zasilania. Jak możesz sprawdź na wewnętrznym napięciu odniesienia.
tak jak napisałem Zero = Getadc(2) If Zero < 780 Then Call Pomiar Call Diody End If
Chcąc bezproblemowo zmieniać kanały powinieneś zostawić GETADC() i w konfiguracji zmienić na SINGLE . W trybie FREE przetwornik mierzy ciągle (ustawiając flagi przerwania ADI F po każdym pomiarze), a ostatni wynik będzie znajdował się w zmiennej specjalnej ADCD (typu Word ). Jednak zmiana kanału pomiaru jest nieco problematyczna, bo kanały musiałbyś...
Musisz wiedzieć że ADC Atmegi ma 10Bit czyli w uproszczeniu skalę do 1023 Kiedy jako napięcie odniesienia dla ADC użyjesz napięcia zasilania procesora (AVCC) to dokładność pomiaru wynosi : 5V/1024 czyli -> 5000mV/1024 = 4,88mV na jedna podziałkę ADC. Nie napisałeś jaki masz ACS a wystepują w wersjach 5A, 20A i 30A Zakładając że masz ten najczulszy 5A...
Nie wiem jak teraz, ale kiedyś w BASCOMie każde polecenie GETADC robiło dwie konwersje i wynik brało z drugiej. Więc w BASCOMie nie trzeba odrzucać pierwszej konwersji bo robi to automatycznie polecenie GETADC (co jest bez sensu no ale mówię jak jest (lub było)).
Nie wiem po co wyłączasz i włączasz ten przetwornik, ale może jakaś oszczędność baterii czy coś.. W każdym bądź razie pierwszy odczyt po włączeniu przetwornika może być zafałszowany. Bascom i tak czyta dwa razy, ale uśrednia te dwa odczyty. Spróbuj wykonac dwa doświadczenia. W pierwszym pod "Nap = Getadc(4)" dopisz dokładnie taką samą druga linijkę....
Jeśli piszesz w BASCOM to wystarczy polecenie GETADC z parametrem liczbowym określającym numer kanału.
Sprawdź miernikiem napięcie podawane z LM35 na ADC. Przepisałem ten kod tak by był przejrzystszy. Przy okazji zaoszczędziłem 8% pamięci. To nieistotne. Istotne natomiast jest to, że teraz widać, że układ wyłączy się jeśli odczyt na ADC będzie w zakresie 250-300. Powyżej lub poniżej tego zakresu krążek będzie świecił. [syntax=vbnet]'Program "elektronicznej...
Normalnie (czytaj: nie znam bascom) można to rozwiązać na kilka sposobów. Możesz na przykład wystartować pomiar ADC, a stan bitu ADSC sprawdzać gdzieś w pętli głównej (realizując inne zadania) i zareagować dopiero, gdy bit ten wskaże na zakończenie pomiaru. Możesz także ustawić przerwania ADC i wtedy po zakończeniu pomiaru przerwanie się wykona. Mogę...
Wyrzuć ten wzór i obmyśl jakiś inny. W tej postaci to się absolutnie nie nadaje. Z ADC możesz uzyskać maksymalną wartość 1024, teraz podnieś to do potęgi 6 i wychodzi ci absurdalna liczba, program wywala się juz na pierwszym obliczeniu. Obliczanie napięcia może wyglądać tak: [syntax=basic4gl] Dim Obl_nap As String * 6 Dim Wartadc As Word Dim Tymcz As...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
Ten kod musisz okrzesać :D Czym to programujesz? Pytam bo umieściłeś dyrektywy dla programatora. Może i nie byłoby w tym nic dziwnego, ale w kodzie masz napisane 8MHz a tymi dyrektywami mikrokontroler zostałby ustawiony na fabryczne 1MHz... Inna sprawa to ten pomiar na ADC i zapisywanie jego wyniku po obliczeniach do PWM. Nie wszystkie tryby PWM mają...
po pierwsze, program nie uśrednia wyników - usuń to w=getadc(0) po pętli for, a typ zmiennej w zmień na long to co Ci wyświetla to wartość pomiaru z adc * 0.0049 :D
Witam , wklejam kod jaki udało mi się wypocić. Miało być tak pięknie a wyszło jak zawsze :-( Ten twój kod jest oczywiście błędny. Po pierwsze, jeżeli stosujesz napięcie referencyjne wewnętrzne, to dla AtMega 8 wynosi ono 2.56V. Zatem poziom napięcia mierzonego podanego na dowolny pin ADC nie może przekroczyc tej wartości. Jeżeli jednak ten warunek...
dobrze by było troszkę wzmocnić to napięcie (tak żeby można je było mierzyć) minimalne napięcie odniesienia dla 8535 to chyba 2V, ale możesz dać więcej. Procedura w bascomie jest banalna deklarujesz np: Config Adc = Single , Prescaler = Auto , Reference = Internal Pomiar: Zmienna_y = 0 Zmienna_v = 0 Do Incr Zmienna_y Start Adc Zmienna_x = Getadc(0)...
Mam pytanie: Czy mikrokontroler rozumuje w ten sposób: Wartość 400 (1000mV) na ADC da mi w kodzie: [syntax=basic4gl]Do A = getadc(0) LCD A Loop[/syntax] na wyświetlaczu 1000? Kolejne pytanie: Czy poniższy kod jest prawidłowy? [syntax=basic4gl] Do A = getadc(0) Temp = A / 10 LCD Temp ; "C"[/syntax] Załóżmy że wartość napięcia to 1000mV (400), więc na...
Getadc() jest w bibliotece głównej mcs.lib Nie ma tam nic nadzwyczajnego. Zwykłe ustawienie MUX i dwukrotne wyzwolenie pomiaru. Obstawiam raczej błąd programisty ;) W przerwaniu już innego przerwania nie obsłużysz a jak czekasz w nim na podwójną konwersję to coś Ci może umknąć ;)
Witam Mam takie małe pytanko jak napisać funkcje która by co pewien czas np: 10 minut sprawdzała wartość ADC? Jeśli chodzi o wartość czasu uzyskuje go z odbiornika GPS. Config Adc = Single , Prescaler = Auto , Reference = Internal Dim Adcc As Word Do Start Adc Adcc = Getadc(0) Lcd Adcc Loop End
Najprostszy dolnoprzepustowy filtr programowy: dim vs as single, sr as single, kfil as single, kfil1 as single, vi as integer coef=0.0049 kfil=... 'stała "czasowa" filtracji kfil1=kfil+1 vi=getadc(...) sr=vi*coef 'inicjowanie sredniej do ... vi=getadc(...) vs=vi*coef sr=kfil*sr sr=sr+vs sr=sr/kfil1 'średnia "ciągnięta"...
Nie używaj Timera. Po co? Użyj przerwania ADCC i ten start i stop ADC możnaby sobie podarować. Jak go używać w bascomie nie wiem, podejżewam że ten kompilator nie przewiduje aż takiej pomysłowości użytkownika... Samo przerwanie obsługuje, ale nie ma takiej instrukcji która wyzwala pomiar i nie czeka bezmyślnie na jego koniec. Getadc się nie nadaje,...
W takim razie wychodzi, że najodpowiedniejszy byłby kanał 18 (ADMUX0..4 = 10010) czyli piszę w bascomie : pomiar = GetAdc(18 ) a czy w Config Adc trzeba wpisać "coś specjalnego" czy wystarczy : Config Adc = Single , Prescaler = Auto , Reference = Internal dodano po kilku minutach... ----------------------------------------... wygląda na to...
Nie ma tu nic z C. Napisałem to kiedyś "z palca" :D Ciebie najbardziej powinno zainteresować "Adcmax3 = Adcr3(3)" bo to jest przepisanie aktualnie najwyższej wartości. Rejestr(43) i to obok to funkcja która liczy wartość skuteczną napięcia. Może niepotrzebnie tam zostawiłem bo to jest z urządzenia które jest Modbus Slave`em. Ten wpis !SBI ADCSRA , 6...
Możesz w Bascomie załatwić wszystko na samych rejestrach, skoro polecenie Getadc się "gubi": ADMUX=b11010000 ' Vref =2.56 z zewnetrznym kondensatorem, pomiar dla ADC0 ADCSRA=b11000111 'włączony ADC i uruchomiona konwersja, wyłączone przerwania, preskaler na 128 teraz czekasz np 100ms i odczytujesz stan rejestrów ADCH (MSB ) i ADCL (LSB) wyzwalasz następną...
i już masz troszke po angielsku :-) http://66.249.91.104/translate_c?hl=en&l... ten scalak ma około 55 dB dynamiki pomiaru http://www.analog.com/en/prod/0,,759_847... dokładnie jak opisał F6BON na WWW najprościej podać napięcie na miernik cyfrowy przez dzielnik napięciowy i...
Witam Wszystkich!! Mam nietypowy problem.Oto listing: Dim W As Integer Dim Channel As Byte Config Adc = Single , Prescaler = Auto , Reference = Internal Declare Sub Volt Do Channel = 2 Start Adc W = Getadc(channel) Waitms 1 Stop Adc Cls Lcd "Temp=" ; W ; " C" Wait 1 Loop Gdy za wartosc channel wstawiam cyfre(2 np.kanal 2) to wszystko dziala ok. A jak...
Może i to wina programu bo długo nad nim kombinowałem i jest dość rozbudowany. Oto fragment odpowiedzialny za sam pomiar napięcia [syntax=basic4gl]For Krok = 1 To 100 'pomiar napięcia Pomiar = Getadc(4) Napiecie = Napiecie + Pomiar Next Krok Napiecie = Napiecie / 100 Napiecie = Napiecie * 0.01452 Napiecie = Napiecie + 0.8[/syntax] Mierzy poprawnie więc...
Witam. Mam prosty woltomierz na ATmega8 i powstają problemy: Mam zabezpieczenie odwrotnego podłączenia napięcia badanego na tranzystorze IRF520 ale przecierz jak wpakuje mu te dajmy na to nawet 300V w dren to sie nie spali pomimo że napięcia nie będzie na żadnym innym pinie , przebije go czy nie? ile trzeba voltów aby go przebiło napięcie?? Czy dioda...
Witam, Nie wiem czy moja informacja coś pomoże ale może sama sugestia nasunie Tobie jakieś przemyślenia co do błędnego działania ADC. Nie znam składni języka C gdyż programuje w Bascomie ale spotkałem się tam z takim opisem: Uwaga! Z powodu zmian w kodzie bibliotecznym w wersji 1.11.7.2, funkcję GETADC() najlepiej wywołać dwukrotnie: W = Getadc(channel)...
Cześć. Wymyśliłam jeszcze coś takiego (na biurku działa): [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack = 8 $framesize = 20 Config Adc = Single , Prescaler = Auto , Reference = Avcc Declare Sub Kalibracja Declare Sub Zajete Declare Sub Wolne Set Portb.3 'Czujnik1 Set Portb.4 'Czujnik2 Config Pinb.0 = Input 'Zworka...
Był taki probem w BASCOMie z funkcją GETADC(). Po zmianie kanału odczytywała ona nadal poprzedni kanał, mimo iż multiplekser był przełączany poprawnie. Rozwiązanie problemu było dość proste. W rozwinięciu funkcji zastosowano dwukrotny odczyt stanu przetwornika ADC. Pierwszy odczyt odrzucano, i brano pod uwagę tylko drugi odczyt. Wada: Dłuższy czas oczekiwania...
Kiedy w końcu zrozumiecie, że nie każdy chce zostać programistą i ludzie czasem programują sobie po to by coś zrobić i mieć z tego satysfakcje. Wiem jak oprogramować ADC i to nie tylko w Bascom, ale zauważ że piszemy tu o Bascom. Języku który upraszcza wiele rzeczy dając Ci określoną ilość prostych w użyciu funkcji. Jedną z takich funkcji jest Getadc()...
A faktycznie niedopatrzyłem bo to wycięty fragment. Proszę więc. Kod jest po to by pokazać jak pomysł otrzymany na Forum można zamienić na coś działającego :P Nie ma wskazywać idealnego rozwiązania, a jedynie to co miałem na myśli a mam ich więcej bo pełno różnych projektów na głowie. Zmieniłem Sub w Funkcję. Nagram chyba kiedyś o tym jakiś film żeby...
Witam czy ktoś mógłby podany niżej program w Bascomie napisać w języku C? Próbuje zrozumieć ten program niestety Bascoma nie znam wogóle. Z góry dziękuje. Procedura odpowiedzialna za pomiar połozenia: Config Adc = Single , Prescaler = 128 , Reference = Avcc ,Procedura pomiarowa umieszczona w petli Do Loop Reset PORTC.1 Set PORTC.3 Set DDRC.1 Set DDRC.3...
Witam, Próbuję zbudować termometr elektroniczny oparty na Atmega8 o wbudowany ADC i układ LM50 i mam mały problem nie mogę poradzić z ustawieniem danych mianowicie: Termometr pokazuje mi w temperaturze pokojowej że jest 75 C dotknięcie ręką czujnika ją podnosi. Po podpięciu na krótko lm35 wszystko jest porządku termometr pokazuje realną temperaturę....
Ciekawe ale zastanówmy się troszeczke. 0,2mV to o ile dobrze liczę 0,0002 V i teraz 0,0002x20= 0,004V. Więc nawet przy wzmocnieniu x20 to kicha bo to powinno być w pobliżu połowy Uref. Więc tylko opamp i to nie złej klasy. A co do Bascoma to Getadc() działa, podajesz tylko odpowiedni nr kanału - z tabeli w shicie: Input Channel and Gain Selections mamy...
Witam. Program jaki mi napisałeś był faktycznie krótszy i robił to samo co mój. Dopisałem tylko tą procedurę by wyrzucał mi który jest to pomiar. Z tym że jest to jeszcze trochę przy banalne i muszę coś tam jeszcze dorzucić. Nauczyciel zasugerował coś w rodzaju termostatu. Żeby wyskakiwał jakiś napis jeśli temperatura będzie za wysoka i inny jeśli będzie...
AT90S2313 nie posiada przetwornika analogowo-cyfrowego więc do mierzenia napięcia stosowano komparator. Ty masz ATmega8 który ma owy przetwornik - nim najlepiej mierzyć napięcie z LM35. Poza tym ATmega8 ma tylko jeden komparator. Dim w As Word 'właczenie przetwornika CONFIG ADC = single, PRESCALER = AUTO, REFERENCE = internal w = Getadc(0) 'odczyt...
Witam Chciałem zrobić pomiar napięcia na mega16 na nóżce 7 portu A czyli ADC6 (PA.6). Na tym porcie też mam podłączony LCD (od PA.0 do PA.5) i czy to może być wina złego działania ACD???Program poniżej to gotowiec z elektrody więc powinien działać. Na Avcc mam +zasilania, AGND masę. W odpowiedzi dostaję 0.00 . [syntax=basic4gl]$regfile = "m16def.dat"...
Wystarczy wpisac X=Getadc(z) gdzie: x-zmienna, do ktorej przypisany jest wynik pomiaru z-numer kanału Nie zapomnij na poczatku skonfigurowac przetwornika.Wszystko jest pieknie napisane z przykladami w HELP`IE!!! Pozdrawiam
Witam, stosuje LM35 od wielu lat. Do odczytu temperatury jw Bascom stosuje następujący kod Zmienne zadeklarowane są następująco: Dim Volt As Word Dim Tp As Single Dim Tm As String * 4 ......... Volt = Getadc(0) Tp = Volt * 5 Tp = Tp / 10 Tm = Fusing(tp , "#.&") ......... Lcd Tm;" ";"C"
Najpierw poczytaj to: http://atmel.com/dyn/resources/prod_docu... http://atmel.com/dyn/resources/prod_docu... Czy dobrze rozumiem iz kolega wskazuje na problemy z samym przetwazaniem ADC mikroprocesora? Zbudowalem sporo ukladow i nie mialem problemow z dokladnoscia przetwarzania oczywiscie nieoczekujac zbyt wiele uklady...
Powinieneś raczej mierzyć prąd na rezystorze diody (tylko że ten rezystor dla ułatwienia pomiaru musi być od strony masy). Żeby mierzyć w połowie impulsu to musisz uruchomić przerwanie od Timera1 i w nim dać funkcję Getadc. A jeżeli już mierzysz napięcie zasilania a nie prąd diody, to nie musisz trafiać w połowę impulsu więc już teraz powinno działać.
Witam Wie ktoś jak za pomocą Atmega8 zbudować prosty woltomierz do pomiaru napięcia od 0 do ok. 5V i wyświetlić to na wyświetlaczu ?? w postaci np. Config Adc = Single , Prescaler = Auto, Reference = Internal Start Adc Dim W As Word , kanal As Byte kanal = 0 W = Getadc(kanal) W = Getadc(kanal) cls lcd W ; " volt " ; End Oto...
witam na elektrodzie znalazłem wiele informacji na temat przetwornika adc w atmega 8 jednak nie mogę poradzić sobie z jednym zjawiskiem mianowicie po odczytywaniu napięcia podawanego z potencjometru na wejście adc0 i adc2 i wyświetlaniu na lcd obserwuje takie zjawisko jak : napięcie z adc0 zmienia sie od 0 do 1024 zrozumiałe tylu bitowy przetwornik...
Witam Chciałem zrobić 3 - kanałowy termometr na atmedze8, lcd 2 * 16 i lm35 (3 szt). Ale na samym początku mam problem a mianowicie, podłączyłem wszystko tak jak na schemacie http://www.avrprojects.net/images/LCD%20... (tyle że mam inny wyświetlacz). Przerobiłem program z przykładu który znalazłem w internecie - http://www.avrprojects.net/index.php?opt...
Witam! Od razu mówie: nie chce gotowca, lecz oczekuję pomocy. Chodzi mi dokładnie o wbudowany w ATMege8 przetwornik A/C. Kod: woltomierzu . Nie wiem co czynić... Takie programy piszę, aby poćwiczyć BASCOM, aby bez większych problemów zrobić bin-zegar(z woltomierzem :) ). Pozdrawiam. Krawacik3 Poprawiłem tytuł - 3.1.15.
Witaj, chyba trochę mnie nie zrozumiałeś, nie mam zamiaru przesyłać danych synchronizować itp. Potrzebuje tylko żeby AVR po naciśnięciu guzika nadał częstotliwość np 200hz, a drugi AVR rozpoznał że jest to 200hz i zapalił diodę. Tych częstotliwości będzie może z góra 7-8 np. 50Hz 100Hz 150Hz 200Hz 250Hz 300Hz 350Hz 400Hz I przy zastosowaniu przetwornika...
Program napisany w BASCOM AVR i wyskakujące 3 błędy , mogę wiedzieć dlaczego one wyskakują podczas kompilacji , poniżej zamieszczam kodzik. 'podwójny woltomierz i amperomierz (dwa kanały pomiaru napięcia i dwa kanały pomiaru prądu 'UWAGA _ PONOWNE WGRANIE PROGRAMU SKASUJE WARTOŚCI WSP KOREKCJI Z PAMIECI EPROM '---------------------------------------...
po co korzystasz jako wyjścia z portu C , przecież do testów masz wolne pozostałe porty w ten sposób za każdym razem będziesz poprawiał program do sprawdzenia innego wejścia przetwornika $regfile = "M8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.7...
Witam, przerobiłem nieco program kol. Teedd, pod swój mikrokontroler i kwarc, niby działa, ale nie mam regulacji częstotliwości, reguluje mi tylko wypełnienie, kończą mi się pomysły.. $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 'default use 10 for the SW stack $framesize = 40 'default...
Witam Poprawiłem parę elementów i układ działa jak należy. Odłączanie uzyskałem na przekaźniku. Mam jednak kolejny problem. Korzystam z przetwornika ADC na PA0. Schemat podłączania brałem z kursu BASCOM. Jednak w tym przypadku mi nie działa. Mógłby mnie ktoś nakierować czy taki schemat ma możliwość poprawnej pracy? Obecnie wyjście POT to potencjometr...
Witam Przykład z działającego urządzenia odczyt dwóch adc i uśrednianie wyniku [syntax=basic4gl] Incr Usrednianie Odczytco = Getadc(7) + Odczytco 'odczyt adc co Odczytbl = Getadc(4) + Odczytbl 'odczyt adc bojler If Usrednianie > 5 Then 'usrednianie odczytów 'żeby nie skakał pomiar Co = Odczytco / 10 Bl = Odczytbl / 10 Odczytco = 0 'zerowanie zmiennych...
Witam. Buduję woltomierz do zasilacza laboratoryjnego. Jak zwiększyć zakres pomiarowy tego woltomierza ? Obecnie mierzy on od 0V do 24,04V. To fragment programu: Start Adc 'uruchamia wbudowany przetwornik 'początek pętli programu Wart_ac = Getadc(1) 'odczytanie wartości z wejścia 'ADC1 mikrokontrolera 'czyszczenie LCD 'kursor do drugiej linii...
Cześć Oczywiście że nie lepiej mierzyć osobno i odejmować, ale to osobna bajka. Do pomiaru różnicowego musisz jeszcze podać z jakim wzmocnieniem chcesz mierzyć i dla tego wzmocnienia określasz Mux Binarnie to będzie : 10000 dla x1 01001 dla x10 01010 dla x200 Tą liczbę wstawiasz do Getadc( .. ) czyli dla wzmocnienia x1 wstawiasz 16 Oczywiscie musisz...
Witam serdecznie, jestem w trakcie budowania miernika V-A do zasilacza laboratoryjnego na mega8 i mam problem po stronie pomiaru prądu, oto część programu: Config Adc = Single , Prescaler = Auto , Reference = Internal Dim X As Byte , Y As Byte Dim Wart_ac As Word Dim V As Single Dim Wart_nap As String * 3 Start Adc i pętla: Do Wart_ac = Getadc(4)...
Witam W mojej stacji lutowniczej skorzystałem z fragmentu kodu Kamila Szkutnika, na przeliczanie ADC na temperaturę Wart_ac = Getadc(0) Waitms 100 V = Wart_ac * 0.0049 Temp = V * 260 Temp = Temp + 25 Tylko z moją kolbą to się strasznie rozjeżdża, mógł by mi ktoś wytłumaczyć co w kodzie oznacza 0.0049 i 260? Lub jak inaczej ustawić by poprawnie czytało...
Witam, Jakiś czas temu wpadłem na pomysł, by stworzyć prosty rejestrator napięcia komunikujący się z PC za pomocą przejściówki RS232. Pierwsza wersja (płytka stykowa) jest oparta o uC Attiny13, z programowym uartem. Działa bardzo dobrze, aczkolwiek problem pojawił się z zasilaniem. Niestety prąd który można wyciągnąć z typowej przejściówki USB-RS232...
Witam wszystkich. Mam problem dość dziwny z pomiarem napięcia przy użyciu Portu A w mikrokontrolerze Atmega16> sprawa wygląda tak: z helpa przepisałem fragment programu: $regfile = "m16def.dat" $crystal = 8000000 Config Porta = Input Config Portb = Input Config Portc = Output Config Portd = &B00001111 Portd = &B11110000 'KONFIGURACJA...
Chciałem mierzyć napięcie baterii podtrzymującej układ PCF8563. Jest oczywiste, że należy dać rezystor z 10 k pomiędzy wejście ADC i GND, ale to powoduje szybkie rozładowanie baterii, więc może zrobić tak w podprogramie do odczytu z przetwornika ADC: Pomiar: 'Locate 2 , 13 Lcd "Pomiar" Start Adc ' włącz przetwornik ' Set On_pomiar For...
Witam. Robię mini komputer pokładowy. Funkcje to pomiar poziomu paliwa, temperatury w i na zewnątrz, i napięcia aku. Na razie mam paliwo i jedną temperaturę. Poziom paliwa symuluje na razie potencjometrem. Do pewnego poziomu fajnie wypełnia mi kolejne kwadraty, jednak gdy zapełnię pierwszą linię, i przekręcę jeszcze trochę potencjometr, to wypełnia...
co do pierwszej odpowiedzi to: mógłbyś mi powiedzieć gdzie dokładniej bo jakoś znaleźć nie mogłem, ktoś też mi mówił że widział na jakiejś stronie coś podobnego, ale jak dotąd ja tego nie znalazłem będe wdzięczny a co do drugiej odpowiedzi to: po co wogóle robić sobie woltomierz można kupić gotowy??? ja poprostu eksperymentuje z uC i właśnie robie sobie...
Witam. Mierzę nateżenie oświetlenia małej kompaktowej świetlóki przy użyciu fotodiody i mam pewien problem przy długim pomiarze wartość otrzymana z fotodiody systematycznie spada. Przebieg otrzymany w wyniku pomiaru jest w pliku wykres. Wartość pomiędzy 2000 a 5500 sek maleje im dłużej się mierzy, chociaż układ pozostawiony jest w bezruchu i odizolowany...
Zrobiłem układ układ do pomiaru dwóch napięć i pomiaru wzmocnienia na Atmedze8535. Wszystko pięknie działa. Mam tylko jeden problem ,wyświetlacz mi lekko pełga :cry: Piszę w bascomie ,jestem poczatkujący w tej dziedzinie. Co tu zmodyfikować,by się pozbyć tego lekkiego pełgania. Oto program : $regfile = "8535def.dat" $crystal = 8000000 Config Lcd = 16...
Ja bym to zrobił bez tablicy, bo szkoda pamięci... Przypominam, że Atmega8 ma tylko 1024 Bytes Internal SRAM Twój program skutecznie zjada 200 x 2 (2 tablice) x 2 (Wodr) = 800 Bajtów Czyli jeszcze jedna taka tablica i będziesz musiał kupować lepszy procek :) Wystarczą 2 zmienne i 2 ify. Dim Xmax As Word Dim Xmin As Word Xmin=1024 Xmax=0 For C = 1 To...
Pierwsze stosuję procki które maja oporniki . Stosuję zasadę minimalnego połączenia , żeby była zachowana . Zasilanie musi pochodzić ze wspólnego źródła ale zawsze procesor musi mieć oddzielny stabilizator . Napięcie referencyjne robię tak jak zaleca to producent procka (chyba wie co produkuje) Zawsze stosuję 7805 bo wiem że jest OK i mam zawsze 5.02V(byle...
Juz sie uporalem :) Kolega HOmiczek pomysl mial tylko teoretycznie dobry. Kolega Atom1477 mial dobry pomysl, troche go zmodyfikowalem. Efekt koncowy wyglada tak: http://obrazki.elektroda.net/54_12475942... A to kod: Tar: Cls Locate 1 , 4 Lcd "Tarowanie" Portd.5 = 0 Portd.6 = 0 Wait 2 For Z = 1 To 5 Wart_ac = Wart_ac + Getadc(0)...
... A więc, wynikało by z tego, że jeśli w pętli przemiatamy po kolei kanały ADC 0...7 to każdy pomiar zabierze minimum 25 cykli dla każdego kanału. Nie wspominając o tym, że w rzeczywistości bascomowa instrukcja GETADC() (pomiar i przypisanie wartości do zmiennej) może zabrać więcej niż 25 cykli. Nie do końca, mylisz illość taktów przetwornika ADC...
Sprawdziłem przed chwilą na mojej ATMEGA32 kod: [syntax=basic4gl]$regfile = "m32def.dat" ' specify the used micro $crystal = 11059200 ' used crystal frequency $baud = 115200 ' use baud rate Dim W As Integer Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Porta = Input Porta = 0 Start Adc Do W = Getadc(0) Waitms 200 Print W Loop End[/syntax]...
Witam Mam problem z moim układem. Przy pomiarze ADC w moim układzie wyskakuje mi cały czas wartość w okolicach 60 (zakres ADC do 1023). Obojętnie co podaję na wejście cały czas mam tą wartość. Jeżeli jednak dokonuję pomiaru miernikiem to mam odpowiednie napięcie, np 2,5V. Jednak co ciekawe, jeżeli podam te napięcie bezpośrednio na nóżkę w płytce prototypowej...
Czy jest możliwość obsłużenia tego w Bascomie? Funkcja GETADC() Przeznaczenie: Pobiera wynik przetwarzania z wbudowanego przetwornika ADC na wybranym kanale. Składnia: zmienna = GETADC( nr_kanału , offset ] ) gdzie: zmienna - zmienna typu Word do której wpisana będzie przetworzona wartość, nr_kanału - numer kanału przetwornika ADC. Zwykle z zakresu...
Witam Konstruuję prosty woltomierz (0-5V) w którym wskazówka napędzana jest silnikiem krokowym. Zadawane napięcie regulowane jest potencjometrem. Wczytywana wartość jest odpowiednio przeliczana na wolty, potem na odpowiednią ilość kroków silnika. Problem w tym, że na etapie wczytywania przez przetwornik A/C, wartość pomiaru nie jest stabilna. To znaczy,...
Nie zmienia, bo masz błąd w innym miejscu. Dokładnie to miałem na myśli-że błąd jest gdzieś indziej. Zastanów się, co oznacza nazwa trybu CTC (?) – w ang. jest to ‘Clear Timer on Compare’ (pol. - wyzeruj zawartość licznika/timera, gdy jego zawartość jest równa wyznaczonej z góry i ustalonej, bądź to wyliczonej jakiejś wartości w zmiennej...
Dzień dobry, na początek schemat: https://obrazki.elektroda.pl/5966427100_... Steruję silnikiem według schematu jak wyżej. Zasilanie uC 5V zasilanie silnika 12V. Wszystko zachowuje się jak należy, efekt końcowy osiągnięty - płynna regulacja. Chciałbym na tym silniku tym samym mikrokontrolerem (ATmega16a) poprzez Getadc() (piszę w Bascomie)...
witam otóż projektuje sobie zegarek z termometrem oraz czujnikiem ciśnienia MPX4115(analogowy), problem polega na tym że nie potrafię obciść wyniku ciśnienia do postaci xxx.xx lub samej wartosci xxx bez miejsc po przecinku. Jaka komendę trzeba zastosować aby wyświetlić porządany wynik ? [syntax=basic4gl]$regfile = "m644pdef.dat" $crystal = 16000000...
Witam. Szukałem na forum i niestety nie znalazłem jednoznacznej odpowiedzi na mój problem (tak czasami bywa). Tak więc atmega8 to tego wykorzystany wewnętrzny ADC, kanał 0, wpięty lm335+4k7 do VCC, kwarc 11059200, zasilanie przez dławik 10uH do AVCC, 10uF pomiędzy AREF i GND zgodnie z opisem z helpa, configuracja ADC: Config Adc = Single , Prescaler...
https://obrazki.elektroda.pl/8115173800_... Witam, w ramach konkursu na urządzenie pomiarowe przedstawiam bardzo prosty miliamperomierz do testowania gniazd usb w smartfonach i innych urządzeniach. Konstrukcja jest śmiesznie prosta, oparta na mikrokontrolerze attiny13 i zawiera tylko kilka elementów niezbędnych do działania. Miernik...
Z takim pięcioprzewodowym w praktyce się nie spotkałem jeszcze. Dobrze słyszeć co nieco o nim możliwe kiedyś się przyda :). Lecz w przypadku takich urządzeń jak np. moje wyżej tutaj prezentowane i innych podobnych dokładność pomiaru jest wystarczająca. Gorzej pewnie by było przy większej powierzchni ekranu, ale jak narazie nie miałem z takim przypadkiem...
Witam, Znalazłem w sieci program do prezentacji wartości napięcia na wejściach ADC uC, Podłączyłem sygnał audio przez LM358 o wzmocnieniu około 30 razy i niestety pomiar nie jest zbyt dobry... już nie chodzi mi o pomiar dokładnego napięcia tylko że linijka z LCD wcale nie działa w rytm muzyki tylko jakoś tak dziwnie... załączam program w bascomie domyślam...
Problem rozwiązałem w 50%. To znaczy dzięki podpowiedzią kolegów co mi brakowało żeby działał termometr, który pracuje bardzo dobrze ,dopisałem do programu woltomierz , który pracuje dobrze. Do zamknięcia tematu pozostał jeszcze amperomierz , który mierzy spadek napięcia na boczniku sygnał wzmocniłem wzmacniaczem LM358.Nie wiem jak przeliczyć spadek...
czesc. Wzielo mnie na zrobienie wskaźnika AFR. Założenie - sonda lambda pracuje w zakresie od 0 do 1V. ATmega16 i lcd 4 x 40 Uklad mierzy napiecie i zaleznosci od jego wartości wyświetla "kwadracik" na odpowiedniej pozycji. Nie znam perfekcyjnie bascomu ,pare lat temu sie go uczyłem i teraz mnie wzieło na zrobienie wskaźnika, narazie wszystko w fazie...
Nie chodziło mi o przerwanie od Timera tylko o coś takiego że odpalasz konwersję/pomiar oraz przerwanie kiedy będzie już wynik czyli procesor nie czeka a może w tym czasie zrobić coś innego. Jednak ta funkcja wykonuje się w 107 taktów zegara w 0.01ms więc myślę, że nie masz co kombinować. Lepiej byś napisał co to za procesor i jakie ma taktowanie bo...
Teraz mam inny problem. Chcę robić pomiar temperatury i zapisywać na kartę SD. Używam do tego modułu prototypowego tego autora: Ponieważ post dotyczy innego tematu niż oryginalny wątek, temat podzieliłem. Na przyszłość proszę w przypadku napotkania problemów niezwiązanych z oryginalnym tematem postu zakładać nowy wątek. W ten sposób inni będą mogli...
Wgryzam się dopiero w Bacoma i potrzebuję funkcję, która skalowała by jeden zakres na drugi. Np. mam pomiary z ADC1: 400-900, a z ADC2: 300-1000 i chce aby ADC2 zawierało się w zakresach ADC1... Do tej pory udało mi się napisać coś takiego: [syntax=vbnet] ' Deklaracja zmiennych (zmienne oprócz U1, U2, U3 to zmienne sczytywane z eepromu) Declare Function...
Witam. W moim układzie muszę mierzyć napięcie na kondensatorze. Gdy ładuję kondensator, przetwornik mierzy mi napięcie i wyświetla wynik. Napięcie na przetwornik dzielę przez 3 rezystorami 10k (choć planuję zwiększyć do 810k). Doświadczalnie ustawiłem tak kwant próbki że pomiar jest bardzo dokładny. Wszystko działa gdy kondensator ładuję, bo gdy mierzę...
jestem bardzo początkujący więc pewnie pytanie będzie banalne :-) szukałem na różnych forach, próbowałem i nie wiem gdzie wrzucić w kodzie 2 przycisk... idea programu ma być taka: po włączeniu zasilania pojawia się na wyświetlaczu "witaj" i po naciśnięciu przycisku 1 mierzy napięcie (kolejne naciśnięcie=kolejny pomiar). I do tego miejsca wszystko działa....
Witam! Bawiłem się przetowrnikiem A/C do pomiaru napięcia na mikrokontrolerze Atmega8. Myślę, że na Twoim układzie będzie tak samo. Nie mam w tej chiwli możliwości sprawdzenia czy działa, piszę na podstawie książki "Programowanie mikrokontrolerów AVR w języku BASCOM", którą aktualnie posiadam. Więc tak, najpierw konfigurujesz sobie LCD, częśctotliwość...
Witam Panowie Dzięki za zainteresowanie i poświęcenie czasu . Dzięki użyciu FLAGI "B" program w pętli głównej nie marnuje czasu na LCD i wyświetlanie wyniku zmiennej A . Nie najlepszy to przykład dla przedstawienia konceptu stosowania flag. Poniżej masz trochę zmodyfikowany twój przykład reagujący wyświetleniem wyniku V z pomiaru ADC tylko w przypadku...
Witam ponownie. Mam już wykonany program do pomiaru przyspieszeni, niestety mam spory problem z obliczeniem z tego prędkości. Próbowałem odczytywać wartość z przetwornika ADC co pół sekundy (16000000/256/500/125 = 1, a dla 63 to dwa razy na sekunde) i do tego wykorzystałem: $crystal = 16000000 ... Config Adc = Single , Prescaler = Auto , Reference =...
Witam Popełniłem ostatnio źródło prądowe do testowania zasilaczy. Wszystko chodzi fajnie, ale jak wiadomo apetyt rośnie w miarę jedzenia, więc pomyślałem że przydał by mi się do tego jakiś fajny miernik LCD żeby nie przełączać cały czas miernika uniwersalnego. W pisaniu programów jestem nowicjuszem- umiem napisać program który gasi i zapala led, a największe...
Witam Mam problemy z fazami w domu. chciałbym mieć stały pomiar wyświetlany na LCD i w przypadku przekroczenia napięcia 240V zapalaną diodę led podpiętą do nóżek procka(docelowo będą to przekaźniki) i sygnał dźwiękowy na syrence. Wykonałem w bascomie miernik faz na atmega8, tryb zaokrąglania wyniku zaczerpnąłem z jednego kodu z forum. Płytka z układem...
Wiem że na pewno trzeba zastosować jakiś dzielnik napięcia.. mam nadzieje że obędzie się bez stosowania dodatkowych wzmacniaczy operacyjnych bo to ma być płytka budżetowa :) czy podany program nada się do obsługi? jak przełączać wejścia adc w bascomie za pomocą switcha udało mi się sklecic coś następującego Config Lcd = 16 * 4 Cursor Off Noblink Cls...
Witam Pytanie natury technicznej... Przedstawiam wycinek programu, odczyt z 2 portów adc konwersja i potrzeba wyświetlenia wyniku pomiaru w formacie 0.00. Zauważyłem problem pojawiący się gdy w programie występują dwie instrukcje FUSING pracujące niezaleznie nad rożnymi danymi... coś mi sie zdaje że instrukcja FUSING korzysta ze zmiennych wewnętrznych...
Witam Miałem podobny problem z wyświetlaniem. Trzeba prawidłowo przypisać typy zmiennych a formatowane umieścić w poleceniu LCD "123";Fusing(X, #.##);"123". Tylko takie umieszczenie formatowania rozwiązało mi problem z wyświetlaniem całkowicie. Odpowiednie akcje na zmiennych należy wykonywać po zaokrągleniu do całości instrukcją np Round(Vol) lub Int(Vol)...
bascom getadc getadc bascom bascom atmega8 getadc
pracuje silnik wyjęciu kluczyka peugeot regulator nagrzewnicy laptop diagnostyki samochodów
kabel promieniujący mrugające fotokomórki
Samsung UE46F6640 - Migająca dioda standby, brak włączenia Gwinty w skrzyniach biegów Citroën - specyfikacja i rozmiary