Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 9 kwi 2025, o 16:27


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 14 sty 2020, o 20:09 
    Offline
    Nowy

    Dołączył(a): 17 gru 2019
    Posty: 4
    Pomógł: 0

    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%??



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 sty 2020, o 20:29 
    Offline
    Użytkownik

    Dołączył(a): 09 lip 2019
    Posty: 116
    Pomógł: 11

    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

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Autor postu otrzymał pochwałę


    Ostatnio edytowano 14 sty 2020, o 20:43 przez moscow, łącznie edytowano 2 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 sty 2020, o 20:40 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sty 2020, o 08:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 31 mar 2015
    Posty: 310
    Pomógł: 18

    @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").



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sty 2020, o 18:20 
    Offline
    Nowy

    Dołączył(a): 17 gru 2019
    Posty: 4
    Pomógł: 0

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sty 2020, o 19:25 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 31 mar 2015
    Posty: 310
    Pomógł: 18

    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sty 2020, o 19:49 
    Offline
    Nowy

    Dołączył(a): 17 gru 2019
    Posty: 4
    Pomógł: 0

    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?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sty 2020, o 20:05 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 31 mar 2015
    Posty: 310
    Pomógł: 18

    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 postu otrzymał pochwałę


    Ostatnio edytowano 15 sty 2020, o 20:12 przez Wirnick, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 sty 2020, o 20:07 
    Offline
    Użytkownik

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    Zacznij kolego od podstaw - studiuj BB bo inaczej się nie da.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 sty 2020, o 08:30 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1168
    Lokalizacja: Kraków
    Pomógł: 93

    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ę):
    Składnia: [ Pobierz ] [ Ukryj ]
    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 postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 sty 2020, o 08:42 
    Offline
    Nowy

    Dołączył(a): 17 gru 2019
    Posty: 4
    Pomógł: 0

    Dziękuję kolegom za podpowiedzi teraz temat dlaczego trzeba użyć while się wyjaśnił ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 sty 2020, o 13:57 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 31 mar 2015
    Posty: 310
    Pomógł: 18

    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ę.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO