ATNEL tech-forum https://forum.atnel.pl/ |
|
ADC mapowanie zakresu. https://forum.atnel.pl/topic22788.html |
Strona 1 z 1 |
Autor: | gregory099 [ 14 sty 2020, o 20:09 ] |
Tytuł: | ADC mapowanie zakresu. |
Witam serdecznie wszystkich. W temacie programowania AVR jestem zielony;) Troszke miałem styczności z zabawą Arduinem UNO natomiast teraz wzięło mnie natchnienie na poznanie czystego języka C w AVR. I w związku z tym mam pewne zapytanie odnośnie ADC. Mianowicie gdy ustawie sobie już wszystkie parametry zwiazane z ADC w Atmega32 i powiedzmy przy przekręceniu potencjometrem zmieniają mi sie wartości od 0-1023 czy istnieje taka opcja aby użyć jak to w arduino było tzw. mapowania zakresu w sensie takim że np bedzie map_zakres(0,1023,0,100) wartość 0-1023 zamienić na wartości z przedziału 0%-100%? A następnie wykorzystać w sposób ze gdybym miał podpiety czujnik temperatury temperaturę mam np 20C więc uruchom wentylator przy pomocy timera i fast PWM na 30%?? |
Autor: | moscow [ 14 sty 2020, o 20:29 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Jeśli jakaś funkcjonalność z Arduino działa wystarczająco dobrze, to czasem najprościej zajrzeć do kodu źródłowego danej funkcji. Czasem można po prostu przekleić, czasem napisać samemu coś na podstawie. Googlując trochę - tutaj na stronie znalazłem ciekawą dyskusją na temat tej funkcji oraz potencjalnych wariantów (zaokrągleń). https://github.com/arduino/ArduinoCore-API/issues/51 W szczególności można wykorzystać pewnie ten fragment |
Autor: | micky [ 14 sty 2020, o 20:40 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Jak jesteś początkujący to najpierw rozpisz sobie jakie działania matematyczne należy wykonać by przeskalować wartości z 0-1023 na 0-100. Zaglądanie do kodów źródłowych Arduino to myślę, że powinno się robić na wyższym poziomie zaawansowania. P. S. Jak nie masz to polecam Mirkowego Blue Booka - potężna dawka wiedzy dla początkującego i nie tylko. |
Autor: | Wirnick [ 15 sty 2020, o 08:38 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
@gregory099 Poruszyłeś zagadnienie związane z porównaniem platform programowania w języku C/C++. Platformą na tym forum jest AVR Toolchain i jej funkcje wewnętrzne. Arduino ma swoje funkcje wewnętrzne. Wspólnym obiektem programowania jest mikroprocesor AVR. Rejestr ADCW zawiera wynik pomiaru ADC. Znając ten wynik wskazujesz co ma się znajdować w innych rejestrach wewnętrznych lub wyjściowych. Np. jeżeli ADCW jest 50% to pin PD0 ma być 0(dioda LED podłączona do tego pinu "świeci"). |
Autor: | gregory099 [ 15 sty 2020, o 18:20 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Witam. Spokojnie koledzy jak to mówią kto pyta nie błądzi. I wychodzi właśnie różnica pomiędzy Arduino a czystym pisaniem w C. Raczej chodziło mi na odwrót kolego Wirnick np że gdy termistor 10k podłączony do ADC odczyta wartość temperatury np 30 stopni C uruchom wentylator przy pomocy PWM w 50% jego pełnego zakresu. W Arduino wiem ze mozna było to zrobić tutaj widze że też by można było tylko raczej na piechote wszystko w sensie takim że ręcznie wpisywać wypełnienie w PWM. Chyba że jestem w błędzie to proszę o korektę mojej wypowiedzi Pozdrawiam. |
Autor: | Wirnick [ 15 sty 2020, o 19:25 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Niema takiej platformy programistycznej, by obeszło się od wklepywania programu ręcznie. Chociaż raz trzeba tego dokonać, by procesor z peryferiami stał się samodzielnym robotem. Też miałem problemy zrozumieć funkcjonowanie procesora i dzięki BB Pana Mirka poznałem co tkwi w szczegółach(wnętrznościach procka), a tego nie musisz wiedzieć programując w Arduino. Programuję też w arduino szukając pomocy w skieczach i helpach. |
Autor: | gregory099 [ 15 sty 2020, o 19:49 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Jest jest różnica między Arduino a AVR . Bob też mam od niedawna i staram się uczyć powoli. Myślę że kiedyś ogarnę temat;). A zapytanie jeszcze mam odnośnie porównania do Arduino w pętli loop bądź setup gdy jakiś program się wpisało np proste mruganie dioda poszło od strzała a dlaczego w AVR nie ruszy nic jeśli wszystkiego nie wezmę np w klamry pętli while? |
Autor: | Wirnick [ 15 sty 2020, o 20:05 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Przechodząc na platformy trzeba spełnić jej rygory. W arduino muszą być funkcje setup i loop. W C/C++ main(ciało programu) i while()(program główny). Warto zainstalować na komputerze program AVPlayer - otrzymasz dość pokaźną dawkę wiedzy z poradników wideo. |
Autor: | micky [ 15 sty 2020, o 20:07 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Zacznij kolego od podstaw - studiuj BB bo inaczej się nie da. |
Autor: | Marhef [ 16 sty 2020, o 08:30 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
gregory099 napisał(a): zapytanie jeszcze mam odnośnie porównania do Arduino w pętli loop bądź setup gdy jakiś program się wpisało np proste mruganie dioda poszło od strzała a dlaczego w AVR nie ruszy nic jeśli wszystkiego nie wezmę np w klamry pętli while? Jeśli znajdziesz sobie plik arduino.h (albo arduino.cpp. Albo coś w tym stylu), to w pewnym miejscu jest taki zapis (mniej więcej, z głowy piszę): język cpp Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Co to oznacza? Że to, co w czystym C/C++ musisz napisać sam, arduino załatwia "po cichu". Z mojej strony, polecam jednak odstawić arduino, w ten sposób nie nauczysz się programować. Piszę (niestety) z własnego doświadczenia. |
Autor: | gregory099 [ 16 sty 2020, o 08:42 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Dziękuję kolegom za podpowiedzi teraz temat dlaczego trzeba użyć while się wyjaśnił |
Autor: | Wirnick [ 17 sty 2020, o 13:57 ] |
Tytuł: | Re: ADC mapowanie zakresu. |
Dobrze, że się wyjaśniło.Ja zazwyczaj nie odpowiadam na PW, ponieważ cenię otwartość tego forum i przychylność userów w udzielaniu pomocy. Śmiało przedstawiaj pytania i wątpliwości. Jak przejdziesz w lekturze BB rozdział 4.5. to będziesz już na głębokiej "wodzie" w poznawaniu AVR i programowaniu w C/C++. Razem z tobą zaczynam powtarzać lekturę. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |