Dzięki za podpowiedź taniego anemometru. W sumie to przeglądając Twoje filmy można już złożyć kompletną stację meteo. Mamy kompas - do określenia kierunku wiatru, ciśnienie, temperaturę, wilgotność, kilka wyświetlaczy i przesył danych bezprzewodowo. Wystarczy zebrać wszystko do kupy i trochę pokombinować. W podanym przez Ciebie sklepie jest też tani czujnik opadów.
Właśnie stałem się posiadaczek takiego czujnika wiatru, dodatkowo czujnika opadów deszczu N77NF i czujnika kierunku wiatru N81NF :D Teraz tylko będę musiał znaleźć czas by ogarnąć te i inne pomysły :)
+Andrzej Dunowski Witam, czy działał Pan coś z czujnikiem kierunku wiatru od maplin? Czujnik został już do mnie wysłany i zastanawiam się jak są odbierane kierunki z niego? Jak Pan go wpiął w Arduino? Tutaj już nie wystarczą chyba podłączenie plusa i masy. Które piny z gniazda RJ11 odpowiedzialne są za odczyt tych danych i w jakiej formie one przychodzą? Z góry dziękuję za odpowiedź
+Krystian Lisowicz Jeszcze się tym nie bawiłem, ale z tego co się już zorientowałem to są tam w środku 4 kontraktony i 360 stopni jest podzielone na 16 części i każda z tych części ma własne wskazanie kontraktonów. Znalazłem taki rysunek i.stack.imgur.com/tkelG.png
+Andrzej Dunowski A jak wyglądałoby podłączenie tego pod arduino? Bo o ile w czujniku prędkości było dość prosto to tutaj chyba się zaczną schody. Trzeba będzie każdą żyłę podpinać do osobnego wejścia? Bo jeśli jest tak jak mówisz, że dla każdego kontaktronu jest osobne wskazanie to na któryś pin muszą się te wskazania zrzucić. Najbardziej mnie zastanawia właśnie komunikacja tego z arduino.
Właśnie gdyby mierzyć czas pomiędzy jednym stanem wysokim, a drugim czyli długość przerwy/rozwarcia to można uzyskać dokładniejsze pomiary. Bo w tym przypadku pomiar prędkości ma skok co 2,4km/h.
Do multitaskingu (obsługi przerwań) obecnie lepiej użyć biblioteki takiej jak Timer playground.arduino.cc/code/timer. Przy użyciu np. delay(1000) kod jest uruchamiany minimalnie później niż 1000ms, przy testowaniu nie robi to większej różnicy, ale uruchamiając kontroler na kilka godzin czas może nam się rozjechać z faktycznym - częsty błąd przy używaniu funkcji opóźniających, to właśnie inkrementacja czasu w tej funkcji o czas jej opóźnienia (np. setInterval(() => {czas+=1000}, 1000)) - BŁĄD!, żeby pozbyć się tego efektu za każdym razem musimy liczyć różnicę w czasie między obecnym i poprzednim wywołaniem funkcji, i o tą wartość inkrementować (np. setInterval(() => {czas+=obecny_czas-poprzedni_czas}, 1000)).
Dzięki za wymienienie mnie na filmiku :) Miło mi, że mogłem na coś naprowadzić i pomóc :) Polecam tez, ze swojej strony zainteresować się książką Mirosława Kardasia "Pasja programowania" Wprawdzie tyczy się to języka C, a nie czystego Arduino (ale przecież Arduino to w końcu C++.Więc większość tego co tam się znajduje, można 1:1 żywcem zaadoptować dla Arduino ). Mam jego obie książki i wiele z nich wyniosłem i mimo, że jakoś nie potrafię się do "C" przekonać, to tu przy Arduino bardzo są mi pomocne. Tu łatwiej operować tymi wszystkimi portami, przesunięciami i konfiguracją wszelkich peryferii mikroprocesora niż w C. Po drugie Człowiek ten uczy myślenia, a nie podaje jedynie suche rozwiązania, które wklepujemy nie myśląc nawet jak działają. Ma tu na jutubie swój kanał - polecam zainteresowania. Pozdrawiam i czekamy na nowe filmiki i pomysły :)
Da się do tego zrobić jakąś stronę, żeby prowadziła statystyki prędkości wiatru? Albo spiąć to jakoś z domoticzem żeby tam był podgląd dzienny/miesięczny/roczny prędkości wiatru?
Witam. Świetna robota ! Ile by kosztował taki anemometr.. ? ;) Potrzebuje do turbinki wiatrowej.. ! Co by co sekunde pokazywał wynik.. :) Pozdrawiam ser. PP
Wszystko fajnie, ale na prawdę prosiłbym o stosowanie wcięć w kodzie, ponieważ bez nich b. ciężko się go czyta i trudno się połapać gdzie się dany blok kodu kończy a gdzie zaczyna. Poza tym poradnik spoko ;) na 5. ! :)
Witam. Wszystkie poradniki są bardzo fajnie zrobione. To co mi się najbardziej podoba, to że pokazujesz jak coś zrobić. Chciałbym Cię nakłonić do zakupu i spróbowania sił z "vs1053". Jest to dekoder MP3. Mi nie udało się tego ogarnąć, gdyż moja znajomość j.ang. jest b. słaba. Myślę, że Tobie, szanowny kol. uda się to.
Hmmm. Fajny moduł - jeszcze takiego nie widziałem. To niesamowite ile jest dostepnych na rynku rzeczy o których istnieniu nie miałem pojęcia a z których można by zrobić cos fajnego.
Kiedyś próbowałem takie radio internetowe uruchomić www.serasidis.gr/circuits/Arduino_WebRadio_player/Arduino_WebRadio_player.htm ale mi się nie udało. Sypało błędami przy kompilacji.
W zasadzie żaden procesor nie jest wielowątkowy (mówimy o mikrokontrolerach). Nie wiem jak z Arduino, bo nie jestem w tym jakoś super dobry, ale normalnie programując mikrokontrolery Atmela w języku C, to do takich wielowątkowości używa się przerwań. Działa to na takiej zasadzie, że jeśli jakiś programowo określony warunek zostanie spełniony, to wykonuje się instrukcja przerwania, czyli program skacze do miejsca w kodzie, gdzie zdefiniowane są instrukcje dla tego przerwania, wykonuje je i wraca do tego miejsca, w którym skończył. Biorąc pod lupę Arduino UNO (Atmega328) mamy do dyspozycji możliwość obsługi przerwań na każdym pinie -> www.atmel.com/devices/atmega328p.aspx. Do tego najlepiej użyć wewnętrznego Timera, który takie przerwanie wywoła sam z siebie jeśli osiągnie określony czas. Myślę, że pisanie kodu z funkcją delay(1) jest troszkę omijaniem problemu, chociaż działa w 100%. Ale... programowanie to w sumie ciągłe rozwiązywanie problemów :)
Witam, a jak zamiast migania użyć 3x wyjść "PWM" do sterowania diodami w ten sposób aby każda dała się regulować osobno, a dodatkowo mieć możliwość załączania dodatkowych 2 diod??
Poczekajcie chłopak dojdzie do taimerów , dojdzie do watchdoga . Jak czytacie książki to zaczynacie czytać od końca . Na podstawie komentarzy na tym kanale jest dużo młodych nowych elektroników . Marku wydaje mi się że przy wyższych obrotach on przekłamuje . Przy małym wietrze kontraktron będzie sie sprawdzał stąd ta różnica w cenie . Powinna być zastosowana optyka lub Hallotron , a to z prostego powodu jak zauważyłeś tzw. drganie styków ( czas jaki uwzględniłeś może być za krótki ) oraz bezwładność kontraktronu . Posługujesz się też makro definicjami a one nie są wykonywane w nanosekundach i to nie zależy od tego czy wyświetlacz oled czy lcd.
Czytałem trochę informacji na temat możliwych rozwiązań. Areecki dostarczył mi sporo literatury na ten temat. W przypadku profesjonalnych anemometrów stosowane są fotodiody lub inne układy optyczne mierzące prędkość obrotową czujnika z łopatkami. Ale ceny zaczynają sie od $50 i więcej za sam czujnik. Dla poprawienia dokładności można tutaj jeszcze mierzyć czas w którym kontaktron jest np zwarty lub rozwarty i na podstawie tego czasu wyliczyć prędkość obrotową samego czujnika i potem prędkość wiatru. Z drugiej jednak strony czy w prostej stacji meteo przed domem potrzebujemy aż tak dokładnych wyników? Czy nie wystarczyła by po prostu sześciostopniowa skala: powietrze stoi, lekka bryza, lekki wiatr, mocny wiatr, piździ jak na Uralu, urywa łeb ? Myślę że to by wystaczyło do określenia mocy wiatru. I nie byłoby problemu z rozrzutem rzędu nawet 5-10 km/h
Elektro Maras Masz rację między można do tego tematu powrócić , podpowiem że można we własnym zakresie zrobić takie urządzenie z małego silniczka komutatorowego , ramiona z połowy pingponga lub łyżek plastikowych pomysłów jest wiele . Miło cię znowu słuchać życzę samych piątek . Pozdrowienia
Elektro Maras sześciostopniowa skala: powietrze stoi, lekka bryza, lekki wiatr, mocny wiatr, piździ jak na Uralu, urywa łeb Piękne określenie. Lepiej bym tego nie ujął. Tak trzymać.
Mam pomysł na biznes dla Ciebie 😉 jakbyś stworzył konstrukcję do ciągłego pomiaru wiatru zasilanego z baterii lub panelu solarnego, oraz możliwością zapisu danych i sczytywania na przykład z pendrive do excela to nie nadążysz z produkcją. Mam potrzebę zrobienia pomiarów wiatru na działce na której nie mam jeszcze prądu by policzyć czy kalkuluje się wiatrak, i ceny dedykowanych urządzeń do czegoś takiego, to jakiś absurd a nic innego nie umiałem znaleźć. 😊
Jak wygląda sprawa czujnika prędkości wiatru, jest rozbieralny? bo wtedy mógłbym kupić i wymienić czujkę na optoelektroniczną lub czujnik hala. Znalazłem taką czujkę za 2 funty+przesyłka tylko że jak nic się nie da z tym zrobić to będzie kłopot.
Jest jakiś sposób na zamówienie części z maplin.co.uk do Polski? Czujnik kierunku wiatru, czujnik prędkości i opadów kosztuje tam razem około 100 zł, można więc zrobić pełną stacje pogodową wartą 400 zł i sporo się przy tym nauczyć.
Preem84 Nooo nie. Na początku ustalam stan (st1) na 1 czyli wysoki. Czyli po 1 sekundzie dioda gaśnie. Teraz tylko widzę że powinienem ją odpalić już w funkcji setup. Bo tak na początku jest stan nieokreślony i po sekundzie zmienia się na LOW(0). Potem już działa tak jak należy. Więc jeśli ktoś będzie chciał powtórzyć doświadczenie to w funkcji setup niech doda 3 linie: digitalWrite(LED,st1); digitalWrite(LED1,st2); digitalWrite(LED2,st3);
Elektro Maras Zamiast zmieniać st1 na 1 jakbyś zmienił cnt na 1000 to powinna się dioda od razu zapalić przy starcie programu na sekundę. Popraw mnie, jeżeli się nie mam racji.
Witam :-) 1. Mógłbyś podać link do datasheet'a? bo: 2. Znalazłem dokumentację do czegoś podobnego: www.sparkfun.com/products/8942 i cytat: "Anemometer The cup-type anemometer measures wind speed by closing a contact as a magnet moves past a switch. A wind speed of 1.492 MPH (2.4 km/h) causes the switch to close once per second." Czyli, że w w/w przypadku wiatr wiejący z prędkością 2,4 km/h powoduje zamknięcie kontaktronu raz na sekundę. 3. Ergo: Licz od nowa. Wynika, że jednak będziesz musiał przeprosić się z funkcjami "Timer" i "Interrupt" czy jak tam one się w Arduino nazywają. Powinieneś utworzyć "pudełko czasowe" odmierzające 1s lub (jeszcze lepiej) kilka sekund a w nim liczyć impulsy, najlepiej przy wykorzystaniu przerwania sprawdzającego wystąpienie zbocza opadającego lub narastającego. Niestety arduino widziałem na obrazku, więc dokładniej Ci nie wytłumaczę, ale uważam, że dasz sobie radę :-) Pozdrawiam Krzysiek
Filmik fajny, ale ja nie rozumiem tego. Skoro anemometr robi "tik" przy każdym okrążeniu to nie lepiej mierzyć czas okrążenia tak samo jak zmierzyłeś czas procedur wyświetlania na oled? Jeśli okrążenie trwa 5s to prędkość 2,4/5 co dałoby wyższą rozdzielczość początkową i płynną pośrednią, tak nie wiadomo co się dzieje między 0-2,4-4,8-7,2. No i w przykładach Arduino jest Debounce pokazujący jak eliminować drgania styków przełączników takich jak klawisze czy własnie kontaktron. Tego millis zresztą używa się właśnie do "wielowątkowości" bez timera sprzętowego wraz z dzieleniem modulo. A najlepiej czas obrotu mierzyć oczywiście w przerwaniu jak w Twoich nowszych filmach. Minęło 2 lata, pewnie dzisiaj byś to napisał inaczej? Może napiszesz? No i przy czasie dłuższym niż 5s/tik to można podać 0. Profesjonalne wiatraczkowe mają wiarygodne pomiary powyżej 0,5 m/s czyli gdzieś 1,2km/h. Kalibracji takiego cuda można też dokonać w samochodzie w bezwietrzną pogodę względem prędkościomierza lub GPS. Raczej to nie jest liniowe i powyżej pewnej prędkości prędkość obrotowa może nawet maleć.
Kawał czasu minęło od publikacji tego materiału. Zamiast kupować anemometr siądę do Fusion 360, narysuje i wydrukuję na drukarce. Jedynie zamiast kontraktona wykorzystam czujnik Halla.
Pewnie że się da. Ale w sumie przerwania to troche wyższa szkoła jazdy (przynajmniej w teorii). Poza tym zamierzeniem moim było przedstawienie prostej zasady liczników dzięki czemu każdy, nawet początkujący może ją wykorzystać bez zagłębiania sie w meandry programowania.
Kolego Maras - 20 minuta 2 sekunda mówisz że czujnik jest w stanie zmierzyć 240 km/h i że połamały by się mu łopatki natomiast ja używam tego czujnika już jakiś czas na balkonie gdzie mam otwarty teren a dodatkowo przy wieżowcu są straszne zawirowania wiatru już nie raz okna mi trzeszczały od wiatru dlatego też byłem ciekawy jak mocno wieje u mnie na balkonie. Jak na razie wiatr sięgnął maksymalnie przy chwilowych porywach 108km/h i łopatki żyją :) Więc nie jest on aż taki słaby :) swoje powinien wytrzymać :) Wyniki mojej stacji są na meteo.avrtech.pl stacja zbudowana na atmega32 program pisany w C Warto też nadmienić że ten sam model wiatromierza generuje 1 impuls na pełen obrót ale są też takie same modele N76NF które generują 2 impulsy na obrót wtedy nadal jeden pełen obrót będzie wynosił 2,4 km/h ale zliczy już 2 impulsy czyli można zliczać ilość impulsów w ciągu 1 sekundy (ja tak robię) i mam rozdzielczość 1,2 km/h gdyż mój czujnik N76NF generuje 2 impulsy na pełen obrót.
To nie jest taki stricte multitasking, w przypadku gdybys mial 500 diod(opcja hardcore) twoje opoznienie podczas wykonywania petli wynioslo by spora ilosc czasu(koszt wykonania operacjii) przez co nie byly by to rowne odcinki czasu:-( Zrob cos o multithredingu np: jest 5 diod i one sie gasza i zapalaja(tak w wezyku) to bylby 1 watek, drugi watek obslugiwal by(asybnchronicznie) kliknienie w przycisk i zapalal jakas inna diode. Miroslaw Kardas cos tam tlumaczyl ale jak dla mnie zbyt zawile i nic nie zrozumialem, moglbys cos takiego zrobic? mam fajny projekt w glowie zeby go zrealizowac potrzebuje wiedzy z tego zakresu.(to chyba podchodzi pod przerwania)
Dawid Pierwoła Pewnie że nie jest bo mikrokontroler nie obsługuje wielowątkowości. Wszystko co możesz zrobić to trochę "oszukać" i zrobić szybko 2 czynności jedna po drugiej. Poza tym sam kod w którym programujemy jest dosyć powolny i operacja która mogła by zostać wykonana w 2-3 cyklach wykonuje się w 50. Tak więc pozostaje nam albo stosowanie liczników, albo stosowanie przerwań (jedno i drugie ma swoje wady i zalety). A za tłumaczenie przerwańsię nie zabieram bo po pierwsze sam nie czuję się "guru" w tych sprawach, a po drugie - jak Mirek Kardaś nie wytłumaczył to gdzie mnie się za to brać...
Chwilę przeszukiwania google i ktoś nakreślił jak zrobić to lepiej, a przynajmniej bardziej uniwersalnie: www.engblaze.com/microcontroller-tutorial-avr-and-arduino-timer-interrupts/ Natomiast co do języka C, to po prostu warto odwiedzić stronę: www.nongnu.org/avr-libc/ oraz po prostu korzystać z noty katalogowej(to akurat zawsze podstawa). Ogólnie opóźnienia programowe stosuje się kiedy nie da rady tego zrobić sprzętowo, sam zresztą zauważyłeś, że nie dość, że program jest bardzo wrażliwy na funkcje, które się dłużej wykonują, to jeszcze wykonuje się wolno, zastosowanie timera do odmierzania czasu byłoby o niebo wygodniejsze, czy nie? Ach i inkrementację można zapisać ładniej: zamiast "zmienna=zmienna+1;" to "zmienna++;", lepiej to wygląda, mam rację? Ogólnie to uważam, że przerwania to nie dość, że są ważną częścią programowania arduino i ogólnie mikrokontrolerów, to jest to dobry materiał na jeden z poradników, oczywiście jak sam to opanujesz. I w sumie program działa poprawnie, poradziłeś sobie z kilkoma poważnymi problemami, co prawda może nie jest to optymalne i nie zawsze zbyt ładne, ale jak ktoś już napisał: poradnik na 5.
Ba! Pewnie że na necie wszelkich opisów i instrukcji jest cała masa. Ale to trzeba czytać... Dzisiejszy człowiek nie chce czytać. Woli obejrzeć. Zobaczyć w praktyce jak to działa. Takie czasy że słowo pisane traci na wartości. Postęp...
Elektro Maras No jeśli ktoś interesuje się elektroniką i nie chce czytać, to się pomylił(to raczej dla młodszych użytkowników wiadomość, nie wiesz jak coś zrobić-poczytaj). Może to i okrutne, ale jak chcemy się rozwijać, to wysiłek jest konieczny. Samych źródeł pisanych jest relatywnie niewiele, przynajmniej tych merytorycznych, a większość z nich może być zupełnie niezrozumiała dla laika. Inna rzecz tyczy się samych elementów, które są po prostu wspaniale opisane(na ogół) i jest tam absolutnie wszystko, krótko i zwięźle(no, przy ATmegach to jest te kilkaset stron...). Największym mankamentem w arduino jest chyba brak przejrzystości kodu, niestety. Za każdym razem jak patrzę na jakieś listingi z arduino to nie jest to przyjemny widok. Tak swoją drogą, to diodę włączasz stanem wysokim, tak?
Pan Ziemniak W sumie niby racja ale z drugiej strony ilość informacji nawet na zwykłych notach katalogowych (bo pomijam instrukcje os producenta) często przeraża i dla takiego zwykłego zjadacza chleba jest niezrozumiała. I jak już zauważyłem - nie każdy ma ambicję stać sie elektronicznym guru - ale wielu lubi sobie coś tam polutować, skonstruować ot tak dla własnej przyjemności i bez zagłębiania sie w szczegóły. Nie wiem czy to dobrze czy też źle - nie mnie to oceniać. Ale jęsli sprawia to komuś radochę to dlaczego nie? Diodę włączam stanem wysokim - jest to bardziej oczywiste i zrozumiałe dla większości oglądających. Poza tym chodzi tu tylko o zaprezentowanie zasady działania - przecież nikt nie będzie robił migających diod.
Elektro Maras Jeśli chodzi o wszelkie obciążanie układów cyfrowych to zdecydowanie lepiej jest sterować tym obciążeniem stanem niskim- większa wydajność prądowa. Taka dobra praktyka przy układach cyfrowych, niektóre układy cyfrowe mają prawie nieistniejącą obciążalność w stanie wysokim. Noty katalogowe wystarczy czytać selektywnie(jeśli wiemy czego szukamy). Natomiast jeśli łapiemy się za projekty, to wypada złapać się też za dokumentacje, bo można skrzywdzić siebie albo układ, a to wbrew pozorom nietrudne.Co do samej treści not katalogowych to w 90% są one bardzo łopatologiczne, to znaczy wszystkie funkcje są bardzo dokładnie opisane. Jak kogoś to interesuje, to świetnie, tylko no, wypada posiąść podstawową wiedzę albo opierać się na cudzych projektach. Jak już wcześniej wspomniałem, to od tego jest literatura, żeby się rozwijać. Stworzenie czegoś co działa jest fajne, ale zaprojektowanie czegoś takiego jest jeszcze przyjemniejsze. Piotr Radziewicz Arduino jest dobre na początek, bo bardzo lekko strawne, chociaż zależy, avr-y są akurat dość optymalne dla C i C++. Jeśli się zna architekturę i assemblera dla tych mikroprocesorów to C okaże się nieco wygodniejsze, ale assembler też ma swoje uroki. Natomiast korzystając z arduino wiele wiedzieć nie trzeba i to jest dobre z punktu widzenia właśnie tych początkujących.
Do wielozadaniowości w arduino polecam bibliotekę leOS2. Można ją pobrać na githubie, tutorial jak używać spokojnie można znaleźć po wpisaniu w google "leos2". Polecam ;D
+Damian Buczyk /Sunortas ja bym też chętnie nabył tylko podstawowe pytanie jakie są koszty przesłania tego do Polski bo sam ten anemometr wygląda po taniości na 2,49 funta :) kontakt do mnie przez wiadomość na facebook.com/ArduinoPOL
Jakby ktoś chciał zakupić ten anemometr to zapraszam. www.olx.pl/oferta/anemometr-czujnik-predkosci-wiatru-do-stacji-pogodowej-maplin-n96gy-CID99-IDnr6QC.html
Zbyt przekombinowane jak dla mnie, zdecydowanie lepiej jest użyć do takich rzeczy przerwań, to co pokazujesz do tak banalnych rzeczy może i się sprawdzi, ale przy bardziej zaawansowanych rzeczach niestety będzie kompletnie bezużyteczne. Tak samo zawartości IFów powinieneś wrzucić do jednej funkcji i w IFach ją wywoływać, niby proste rzeczy, ale właśnie przy nauce podstaw to takie rzeczy są najistotniejsze. No i zapis inkrementacji liczników można skrócić o połowę :P
OK. W takim razie zapraszam do podzielenia sie swoją wiedzą z innymi. Na pewno się przyda. Program jest na tyle krótki że pez problemu jego poprawioną wersje da się wrzucić w komntarz. Jak wszystko będzie działać to wrzucę ją na Google drive. Dzięki temu twój komentarz z krytycznego stanie się bardziej merytoryczny i nauczy nas czegoś :)
Elektro Maras Nie ma sprawy :) Kod: pastebin.com/raw.php?i=8pvHuDPP Trochę brzydko ustawiany jest Timer1 - brzydko w tym znaczeniu, że w Arduino powszechne jest stosowanie bibliotek do każdej rzeczy (spoko, zrozumiałe, chyba że ktoś chce zacząć programować AVR), niżej ktoś podał przykład biblioteki do obsługi tego samego co ja robię tu, więc można to jeszcze uprościć. A robie w sumie nieskomplikowane rzeczy, zerowanie rejestrów, ustawienie prescalera, odblokowanie TIMER1, odblokowanie przerwań, w sumie to wszystko ładnie da się zrobić przy użyciu tych bibliotek. Twoje IFy jak widać zmieniłem w funkcję SwitchLED, która robi praktycznie to samo co Twoja, tylko w przypadku jakiejkolwiek poprawki nie muszę poprawiać tego w kilku miejscach (a i kod jest krótszy i czytelniejszy) W tym co zrobiłeś niestety nie ma mowy o żadnej nawet imitacji multitaskingu, wrzuć na koniec loopa delaya na 1000 sekund i zrób to samo z moim kodem, widzisz róznicę? Po drugie ten delay(1) na końcu nie da f=1kHz, odpal coś takiego: pastebin.com/raw.php?i=48FnzEFe I zobacz, że nie wypisuje liczb zwiększonych o 1000, bo samo wywołanie Serial.println() i delaya zajmuje pewien czas (po minucie u mnie opóźnienie wynosi 15 ms), niby w tak prostym programie nawet tego nie zauważysz, ale znów... przy bardziej zaawansowanych projektach, gdzie musisz być precyzyjny coś takiego kompletnie nie zda egzaminu, delayów nie powinno się używać. Żeby nie było, nie mam do Ciebie żadnych uprzedzeń i niektóre Twoje filmiki są naprawdę ciekawe, ale wrzucanie takiej teorii według mnie w ogóle nie spełnia celu edukacyjnego.
Adam Safiański Pięknie bangla :) Diodki migają jak na choince. Dobra robota. Jeśli nie masz nic przeciwko to wrzucę to na Google Drive (oczywiście z adnotacją od kogo to jest). Niestety stan mojej wiedzy w tym momencie nie pozwala mi na zrobienie filmu o przerwaniach bez narażęnia się na ośmieszenie i w efekcie publiczne potępienie. Niestety jest również brak chętnych którzy chcieli by omówić temat w ramach Umorusanej Ekipy. Tak więc temat przerwań musi zostać odłożony na półkę i oczywiście wróci w momencie gdy poczuje sie na tyle mocny aby o nim opowiedzieć. Na razie liczniki muszą wystarczyć. No chyba że ktoś zechciałby sie udzielić i nakręcić film z omówieniem tematu.
Elektro Maras Spoko, wrzucaj gdzie chcesz, rób z tym co chcesz :p Generalnie przerwania i Timery są dość proste jeżeli chcesz się nauczyć tylko jak z nich korzystać i do czego służą i podejrzewam, że na ogarnięcie tematu na tyle, żeby nie zagłębiać się w szczegóły nie potrzeba za wiele czasu. Na pewno taki odcinek byłby bardzo ciekawy a i warto taką wiedzę jak widać posiadać (albo przynajmniej wiedzieć, że jest taka opcja) :)
Dzięki za podpowiedź taniego anemometru. W sumie to przeglądając Twoje filmy można już złożyć kompletną stację meteo. Mamy kompas - do określenia kierunku wiatru, ciśnienie, temperaturę, wilgotność, kilka wyświetlaczy i przesył danych bezprzewodowo. Wystarczy zebrać wszystko do kupy i trochę pokombinować.
W podanym przez Ciebie sklepie jest też tani czujnik opadów.
Dzięki wielkie za długo oczekiwany Film ;)
Właśnie stałem się posiadaczek takiego czujnika wiatru, dodatkowo czujnika opadów deszczu N77NF i czujnika kierunku wiatru N81NF :D Teraz tylko będę musiał znaleźć czas by ogarnąć te i inne pomysły :)
+Andrzej Dunowski Witam, czy działał Pan coś z czujnikiem kierunku wiatru od maplin? Czujnik został już do mnie wysłany i zastanawiam się jak są odbierane kierunki z niego? Jak Pan go wpiął w Arduino? Tutaj już nie wystarczą chyba podłączenie plusa i masy. Które piny z gniazda RJ11 odpowiedzialne są za odczyt tych danych i w jakiej formie one przychodzą?
Z góry dziękuję za odpowiedź
+Krystian Lisowicz Jeszcze się tym nie bawiłem, ale z tego co się już zorientowałem to są tam w środku 4 kontraktony i 360 stopni jest podzielone na 16 części i każda z tych części ma własne wskazanie kontraktonów. Znalazłem taki rysunek i.stack.imgur.com/tkelG.png
+Andrzej Dunowski A jak wyglądałoby podłączenie tego pod arduino? Bo o ile w czujniku prędkości było dość prosto to tutaj chyba się zaczną schody. Trzeba będzie każdą żyłę podpinać do osobnego wejścia? Bo jeśli jest tak jak mówisz, że dla każdego kontaktronu jest osobne wskazanie to na któryś pin muszą się te wskazania zrzucić. Najbardziej mnie zastanawia właśnie komunikacja tego z arduino.
+Krystian Lisowicz nie wiem, ale dzisiaj coś takiego znalazłem akademia.nettigo.pl/czujnik_wiatru/
+Krystian Lisowicz Witam, Gdzie zamówiliście te czujniki pogodowe?
Dobry pomysł z licznikami, używałem go do czyszczenia wyświetlacza bez wieszania całego programu.
Właśnie gdyby mierzyć czas pomiędzy jednym stanem wysokim, a drugim czyli długość przerwy/rozwarcia to można uzyskać dokładniejsze pomiary. Bo w tym przypadku pomiar prędkości ma skok co 2,4km/h.
Do multitaskingu (obsługi przerwań) obecnie lepiej użyć biblioteki takiej jak Timer playground.arduino.cc/code/timer.
Przy użyciu np. delay(1000) kod jest uruchamiany minimalnie później niż 1000ms, przy testowaniu nie robi to większej różnicy, ale uruchamiając kontroler na kilka godzin czas może nam się rozjechać z faktycznym - częsty błąd przy używaniu funkcji opóźniających, to właśnie inkrementacja czasu w tej funkcji o czas jej opóźnienia (np. setInterval(() => {czas+=1000}, 1000)) - BŁĄD!, żeby pozbyć się tego efektu za każdym razem musimy liczyć różnicę w czasie między obecnym i poprzednim wywołaniem funkcji, i o tą wartość inkrementować (np. setInterval(() => {czas+=obecny_czas-poprzedni_czas}, 1000)).
Dzięki za wymienienie mnie na filmiku :) Miło mi, że mogłem na coś naprowadzić i pomóc :)
Polecam tez, ze swojej strony zainteresować się książką Mirosława Kardasia "Pasja programowania" Wprawdzie tyczy się to języka C, a nie czystego Arduino (ale przecież Arduino to w końcu C++.Więc większość tego co tam się znajduje, można 1:1 żywcem zaadoptować dla Arduino ). Mam jego obie książki i wiele z nich wyniosłem i mimo, że jakoś nie potrafię się do "C" przekonać, to tu przy Arduino bardzo są mi pomocne. Tu łatwiej operować tymi wszystkimi portami, przesunięciami i konfiguracją wszelkich peryferii mikroprocesora niż w C.
Po drugie Człowiek ten uczy myślenia, a nie podaje jedynie suche rozwiązania, które wklepujemy nie myśląc nawet jak działają. Ma tu na jutubie swój kanał - polecam zainteresowania.
Pozdrawiam i czekamy na nowe filmiki i pomysły :)
Da się do tego zrobić jakąś stronę, żeby prowadziła statystyki prędkości wiatru? Albo spiąć to jakoś z domoticzem żeby tam był podgląd dzienny/miesięczny/roczny prędkości wiatru?
Witam. Świetna robota ! Ile by kosztował taki anemometr.. ? ;) Potrzebuje do turbinki wiatrowej.. ! Co by co sekunde pokazywał wynik.. :)
Pozdrawiam ser. PP
Wszystko fajnie, ale na prawdę prosiłbym o stosowanie wcięć w kodzie, ponieważ bez nich b. ciężko się go czyta i trudno się połapać gdzie się dany blok kodu kończy a gdzie zaczyna.
Poza tym poradnik spoko ;) na 5. ! :)
Ok będę sie bardziej starał z tymi wcięciami :)
Witam. Wszystkie poradniki są bardzo fajnie zrobione. To co mi się najbardziej podoba, to że pokazujesz jak coś zrobić.
Chciałbym Cię nakłonić do zakupu i spróbowania sił z "vs1053". Jest to dekoder MP3. Mi nie udało się tego ogarnąć, gdyż moja znajomość j.ang. jest b. słaba. Myślę, że Tobie, szanowny kol. uda się to.
Hmmm. Fajny moduł - jeszcze takiego nie widziałem. To niesamowite ile jest dostepnych na rynku rzeczy o których istnieniu nie miałem pojęcia a z których można by zrobić cos fajnego.
Kiedyś próbowałem takie radio internetowe uruchomić www.serasidis.gr/circuits/Arduino_WebRadio_player/Arduino_WebRadio_player.htm ale mi się nie udało. Sypało błędami przy kompilacji.
W zasadzie żaden procesor nie jest wielowątkowy (mówimy o mikrokontrolerach). Nie wiem jak z Arduino, bo nie jestem w tym jakoś super dobry, ale normalnie programując mikrokontrolery Atmela w języku C, to do takich wielowątkowości używa się przerwań. Działa to na takiej zasadzie, że jeśli jakiś programowo określony warunek zostanie spełniony, to wykonuje się instrukcja przerwania, czyli program skacze do miejsca w kodzie, gdzie zdefiniowane są instrukcje dla tego przerwania, wykonuje je i wraca do tego miejsca, w którym skończył. Biorąc pod lupę Arduino UNO (Atmega328) mamy do dyspozycji możliwość obsługi przerwań na każdym pinie -> www.atmel.com/devices/atmega328p.aspx. Do tego najlepiej użyć wewnętrznego Timera, który takie przerwanie wywoła sam z siebie jeśli osiągnie określony czas. Myślę, że pisanie kodu z funkcją delay(1) jest troszkę omijaniem problemu, chociaż działa w 100%. Ale... programowanie to w sumie ciągłe rozwiązywanie problemów :)
Witam, a jak zamiast migania użyć 3x wyjść "PWM" do sterowania diodami w ten sposób aby każda dała się regulować osobno, a dodatkowo mieć możliwość załączania dodatkowych 2 diod??
A jakie obliczenia dać żeby wynik był w m/s?
Poczekajcie chłopak dojdzie do taimerów , dojdzie do watchdoga . Jak czytacie książki to zaczynacie czytać od końca . Na podstawie komentarzy na tym kanale jest dużo młodych nowych elektroników . Marku wydaje mi się że przy wyższych obrotach on przekłamuje . Przy małym wietrze kontraktron będzie sie sprawdzał stąd ta różnica w cenie . Powinna być zastosowana optyka lub Hallotron , a to z prostego powodu jak zauważyłeś tzw. drganie styków ( czas jaki uwzględniłeś może być za krótki ) oraz bezwładność kontraktronu . Posługujesz się też makro definicjami a one nie są wykonywane w nanosekundach i to nie zależy od tego czy wyświetlacz oled czy lcd.
Oczywiście nie będzie się sprawdzał kontraktron .
Czytałem trochę informacji na temat możliwych rozwiązań. Areecki dostarczył mi sporo literatury na ten temat. W przypadku profesjonalnych anemometrów stosowane są fotodiody lub inne układy optyczne mierzące prędkość obrotową czujnika z łopatkami. Ale ceny zaczynają sie od $50 i więcej za sam czujnik.
Dla poprawienia dokładności można tutaj jeszcze mierzyć czas w którym kontaktron jest np zwarty lub rozwarty i na podstawie tego czasu wyliczyć prędkość obrotową samego czujnika i potem prędkość wiatru. Z drugiej jednak strony czy w prostej stacji meteo przed domem potrzebujemy aż tak dokładnych wyników?
Czy nie wystarczyła by po prostu sześciostopniowa skala: powietrze stoi, lekka bryza, lekki wiatr, mocny wiatr, piździ jak na Uralu, urywa łeb ?
Myślę że to by wystaczyło do określenia mocy wiatru. I nie byłoby problemu z rozrzutem rzędu nawet 5-10 km/h
Elektro Maras Masz rację między można do tego tematu powrócić , podpowiem że można we własnym zakresie zrobić takie urządzenie z małego silniczka komutatorowego , ramiona z połowy pingponga lub łyżek plastikowych pomysłów jest wiele . Miło cię znowu słuchać życzę samych piątek . Pozdrowienia
Elektro Maras sześciostopniowa skala: powietrze stoi, lekka bryza, lekki wiatr, mocny wiatr, piździ jak na Uralu, urywa łeb
Piękne określenie. Lepiej bym tego nie ujął. Tak trzymać.
Moze opowieez cos o tranzystprach bio pooarnych i tych drugich
A co to za còś czerwone co widac pod koniec filmu
A jak ktoś mieszka w Polsce to gdzie można dostać taki czujnik prędkości wiatru?
chociazby na ebay'u
Mam pomysł na biznes dla Ciebie 😉 jakbyś stworzył konstrukcję do ciągłego pomiaru wiatru zasilanego z baterii lub panelu solarnego, oraz możliwością zapisu danych i sczytywania na przykład z pendrive do excela to nie nadążysz z produkcją. Mam potrzebę zrobienia pomiarów wiatru na działce na której nie mam jeszcze prądu by policzyć czy kalkuluje się wiatrak, i ceny dedykowanych urządzeń do czegoś takiego, to jakiś absurd a nic innego nie umiałem znaleźć. 😊
Super!
Jak wygląda sprawa czujnika prędkości wiatru, jest rozbieralny? bo wtedy mógłbym kupić i wymienić czujkę na optoelektroniczną lub czujnik hala. Znalazłem taką czujkę za 2 funty+przesyłka tylko że jak nic się nie da z tym zrobić to będzie kłopot.
witam mam pytanie odnosnie Pilota 4 kanałowego plus odbiornik SC2272 jak podlaczyc aby uruchomić komputer
Jest jakiś sposób na zamówienie części z maplin.co.uk do Polski? Czujnik kierunku wiatru, czujnik prędkości i opadów kosztuje tam razem około 100 zł, można więc zrobić pełną stacje pogodową wartą 400 zł i sporo się przy tym nauczyć.
Istnieje możliwość zrobienia tak aby np przy 60km/h zapalała się dioda czy jakiś dźwięk jako alarm ??
Wydaje mi się, że w 7:48 powinieneś zmienić też wartość cnt1=1000, bo nie będzie spełniony warunek i nie wykona się funkcja digitalWrite(LED)
Dioda LED miałą się byś w stanie HIGH w momencie uruchomienia programu. Tak więc chyba jest OK
Elektro Maras
Ale dioda 1 odpala się po 1 sekundzie, a nie w momencie odpalenia programu.
Preem84 Nooo nie. Na początku ustalam stan (st1) na 1 czyli wysoki. Czyli po 1 sekundzie dioda gaśnie. Teraz tylko widzę że powinienem ją odpalić już w funkcji setup. Bo tak na początku jest stan nieokreślony i po sekundzie zmienia się na LOW(0). Potem już działa tak jak należy.
Więc jeśli ktoś będzie chciał powtórzyć doświadczenie to w funkcji setup niech doda 3 linie:
digitalWrite(LED,st1);
digitalWrite(LED1,st2);
digitalWrite(LED2,st3);
Elektro Maras Masz rację, źle myslałem. Definiując cnt=1000 i st1=1 zmienił by się stan na 0 i dioda by się nie zapaliła.
Elektro Maras Zamiast zmieniać st1 na 1 jakbyś zmienił cnt na 1000 to powinna się dioda od razu zapalić przy starcie programu na sekundę. Popraw mnie, jeżeli się nie mam racji.
Witam :-)
1. Mógłbyś podać link do datasheet'a?
bo:
2. Znalazłem dokumentację do czegoś podobnego:
www.sparkfun.com/products/8942
i cytat:
"Anemometer
The cup-type anemometer measures wind speed by closing a contact
as a magnet moves past a switch. A wind speed of 1.492 MPH (2.4
km/h) causes the switch to close once per second."
Czyli, że w w/w przypadku wiatr wiejący z prędkością 2,4 km/h powoduje zamknięcie kontaktronu raz na sekundę.
3. Ergo: Licz od nowa.
Wynika, że jednak będziesz musiał przeprosić się z funkcjami "Timer" i "Interrupt" czy jak tam one się w Arduino nazywają. Powinieneś utworzyć "pudełko czasowe" odmierzające 1s lub (jeszcze lepiej) kilka sekund a w nim liczyć impulsy, najlepiej przy wykorzystaniu przerwania sprawdzającego wystąpienie zbocza opadającego lub narastającego.
Niestety arduino widziałem na obrazku, więc dokładniej Ci nie wytłumaczę, ale uważam, że dasz sobie radę :-)
Pozdrawiam Krzysiek
super video
Ma ktoś może jakieś informacje gdzie aktualnie można kupić tanio tego typu anemometr? Na ebay'u tylko takie za 15$ + wysyłka, na Allegro też nic.
how did u make the Ethernet connection?
Ghhhhhh niech pan następnym razem używa długopisu. Szumi w słuchawkach jak styropian cięty piłą. :P
Spróbuj zrobić dozymetr. :)
A co myślisz o tym anemometrze? fardata.pl/pl/oferta/systemy-meteorologiczne/anemometr-np-3
Filmik fajny, ale ja nie rozumiem tego. Skoro anemometr robi "tik" przy każdym okrążeniu to nie lepiej mierzyć czas okrążenia tak samo jak zmierzyłeś czas procedur wyświetlania na oled? Jeśli okrążenie trwa 5s to prędkość 2,4/5 co dałoby wyższą rozdzielczość początkową i płynną pośrednią, tak nie wiadomo co się dzieje między 0-2,4-4,8-7,2. No i w przykładach Arduino jest Debounce pokazujący jak eliminować drgania styków przełączników takich jak klawisze czy własnie kontaktron. Tego millis zresztą używa się właśnie do "wielowątkowości" bez timera sprzętowego wraz z dzieleniem modulo. A najlepiej czas obrotu mierzyć oczywiście w przerwaniu jak w Twoich nowszych filmach. Minęło 2 lata, pewnie dzisiaj byś to napisał inaczej? Może napiszesz? No i przy czasie dłuższym niż 5s/tik to można podać 0. Profesjonalne wiatraczkowe mają wiarygodne pomiary powyżej 0,5 m/s czyli gdzieś 1,2km/h. Kalibracji takiego cuda można też dokonać w samochodzie w bezwietrzną pogodę względem prędkościomierza lub GPS. Raczej to nie jest liniowe i powyżej pewnej prędkości prędkość obrotowa może nawet maleć.
W sumie racja. Można by mierzyć czas między jednym tiknięciem a drugim. W sumie to nie wróciłem już więcej do tego projektu. A myślę że mógłbym...
Kawał czasu minęło od publikacji tego materiału. Zamiast kupować anemometr siądę do Fusion 360, narysuje i wydrukuję na drukarce. Jedynie zamiast kontraktona wykorzystam czujnik Halla.
A nie da się użyć przerwań aby pobierać dane niezależnie od pętli głównej?
Pewnie że się da. Ale w sumie przerwania to troche wyższa szkoła jazdy (przynajmniej w teorii). Poza tym zamierzeniem moim było przedstawienie prostej zasady liczników dzięki czemu każdy, nawet początkujący może ją wykorzystać bez zagłębiania sie w meandry programowania.
To już niekoniecznie, lepiej jest to robić w pętli głównej. Natomiast można zliczać czas za pomocą przerwania.
Kolego Maras - 20 minuta 2 sekunda mówisz że czujnik jest w stanie zmierzyć 240 km/h i że połamały by się mu łopatki natomiast ja używam tego czujnika już jakiś czas na balkonie gdzie mam otwarty teren a dodatkowo przy wieżowcu są straszne zawirowania wiatru już nie raz okna mi trzeszczały od wiatru dlatego też byłem ciekawy jak mocno wieje u mnie na balkonie.
Jak na razie wiatr sięgnął maksymalnie przy chwilowych porywach 108km/h i łopatki żyją :) Więc nie jest on aż taki słaby :) swoje powinien wytrzymać :)
Wyniki mojej stacji są na meteo.avrtech.pl stacja zbudowana na atmega32 program pisany w C
Warto też nadmienić że ten sam model wiatromierza generuje 1 impuls na pełen obrót ale są też takie same modele N76NF które generują 2 impulsy na obrót wtedy nadal jeden pełen obrót będzie wynosił 2,4 km/h ale zliczy już 2 impulsy czyli można zliczać ilość impulsów w ciągu 1 sekundy (ja tak robię) i mam rozdzielczość 1,2 km/h gdyż mój czujnik N76NF generuje 2 impulsy na pełen obrót.
Piękną masz stację pogodową :)
Cześć, w jaki sposób wysłałeś dane na stronę internetową?
To nie jest taki stricte multitasking, w przypadku gdybys mial 500 diod(opcja hardcore) twoje opoznienie podczas wykonywania petli wynioslo by spora ilosc czasu(koszt wykonania operacjii) przez co nie byly by to rowne odcinki czasu:-( Zrob cos o multithredingu np: jest 5 diod i one sie gasza i zapalaja(tak w wezyku) to bylby 1 watek, drugi watek obslugiwal by(asybnchronicznie) kliknienie w przycisk i zapalal jakas inna diode. Miroslaw Kardas cos tam tlumaczyl ale jak dla mnie zbyt zawile i nic nie zrozumialem, moglbys cos takiego zrobic? mam fajny projekt w glowie zeby go zrealizowac potrzebuje wiedzy z tego zakresu.(to chyba podchodzi pod przerwania)
Dawid Pierwoła Pewnie że nie jest bo mikrokontroler nie obsługuje wielowątkowości. Wszystko co możesz zrobić to trochę "oszukać" i zrobić szybko 2 czynności jedna po drugiej. Poza tym sam kod w którym programujemy jest dosyć powolny i operacja która mogła by zostać wykonana w 2-3 cyklach wykonuje się w 50.
Tak więc pozostaje nam albo stosowanie liczników, albo stosowanie przerwań (jedno i drugie ma swoje wady i zalety). A za tłumaczenie przerwańsię nie zabieram bo po pierwsze sam nie czuję się "guru" w tych sprawach, a po drugie - jak Mirek Kardaś nie wytłumaczył to gdzie mnie się za to brać...
ktos to wogole ogarnia? potrzebuje tego temtu. Nie moglbys sprobowa wytlumaczyc?
Orientuje się ktoś czy można taki czujnik kupić gdzieś w Polce w normalnych pieniądzach, albo czy ten sklep wyśle to do nas i za ile? :)
Chwilę przeszukiwania google i ktoś nakreślił jak zrobić to lepiej, a przynajmniej bardziej uniwersalnie: www.engblaze.com/microcontroller-tutorial-avr-and-arduino-timer-interrupts/
Natomiast co do języka C, to po prostu warto odwiedzić stronę: www.nongnu.org/avr-libc/ oraz po prostu korzystać z noty katalogowej(to akurat zawsze podstawa).
Ogólnie opóźnienia programowe stosuje się kiedy nie da rady tego zrobić sprzętowo, sam zresztą zauważyłeś, że nie dość, że program jest bardzo wrażliwy na funkcje, które się dłużej wykonują, to jeszcze wykonuje się wolno, zastosowanie timera do odmierzania czasu byłoby o niebo wygodniejsze, czy nie?
Ach i inkrementację można zapisać ładniej: zamiast "zmienna=zmienna+1;" to "zmienna++;", lepiej to wygląda, mam rację?
Ogólnie to uważam, że przerwania to nie dość, że są ważną częścią programowania arduino i ogólnie mikrokontrolerów, to jest to dobry materiał na jeden z poradników, oczywiście jak sam to opanujesz. I w sumie program działa poprawnie, poradziłeś sobie z kilkoma poważnymi problemami, co prawda może nie jest to optymalne i nie zawsze zbyt ładne, ale jak ktoś już napisał: poradnik na 5.
Ba! Pewnie że na necie wszelkich opisów i instrukcji jest cała masa. Ale to trzeba czytać...
Dzisiejszy człowiek nie chce czytać. Woli obejrzeć. Zobaczyć w praktyce jak to działa.
Takie czasy że słowo pisane traci na wartości.
Postęp...
Elektro Maras No jeśli ktoś interesuje się elektroniką i nie chce czytać, to się pomylił(to raczej dla młodszych użytkowników wiadomość, nie wiesz jak coś zrobić-poczytaj). Może to i okrutne, ale jak chcemy się rozwijać, to wysiłek jest konieczny. Samych źródeł pisanych jest relatywnie niewiele, przynajmniej tych merytorycznych, a większość z nich może być zupełnie niezrozumiała dla laika. Inna rzecz tyczy się samych elementów, które są po prostu wspaniale opisane(na ogół) i jest tam absolutnie wszystko, krótko i zwięźle(no, przy ATmegach to jest te kilkaset stron...).
Największym mankamentem w arduino jest chyba brak przejrzystości kodu, niestety. Za każdym razem jak patrzę na jakieś listingi z arduino to nie jest to przyjemny widok.
Tak swoją drogą, to diodę włączasz stanem wysokim, tak?
Pan Ziemniak W sumie niby racja ale z drugiej strony ilość informacji nawet na zwykłych notach katalogowych (bo pomijam instrukcje os producenta) często przeraża i dla takiego zwykłego zjadacza chleba jest niezrozumiała. I jak już zauważyłem - nie każdy ma ambicję stać sie elektronicznym guru - ale wielu lubi sobie coś tam polutować, skonstruować ot tak dla własnej przyjemności i bez zagłębiania sie w szczegóły. Nie wiem czy to dobrze czy też źle - nie mnie to oceniać. Ale jęsli sprawia to komuś radochę to dlaczego nie?
Diodę włączam stanem wysokim - jest to bardziej oczywiste i zrozumiałe dla większości oglądających. Poza tym chodzi tu tylko o zaprezentowanie zasady działania - przecież nikt nie będzie robił migających diod.
Elektro Maras Jeśli chodzi o wszelkie obciążanie układów cyfrowych to zdecydowanie lepiej jest sterować tym obciążeniem stanem niskim- większa wydajność prądowa. Taka dobra praktyka przy układach cyfrowych, niektóre układy cyfrowe mają prawie nieistniejącą obciążalność w stanie wysokim.
Noty katalogowe wystarczy czytać selektywnie(jeśli wiemy czego szukamy). Natomiast jeśli łapiemy się za projekty, to wypada złapać się też za dokumentacje, bo można skrzywdzić siebie albo układ, a to wbrew pozorom nietrudne.Co do samej treści not katalogowych to w 90% są one bardzo łopatologiczne, to znaczy wszystkie funkcje są bardzo dokładnie opisane.
Jak kogoś to interesuje, to świetnie, tylko no, wypada posiąść podstawową wiedzę albo opierać się na cudzych projektach. Jak już wcześniej wspomniałem, to od tego jest literatura, żeby się rozwijać. Stworzenie czegoś co działa jest fajne, ale zaprojektowanie czegoś takiego jest jeszcze przyjemniejsze.
Piotr Radziewicz Arduino jest dobre na początek, bo bardzo lekko strawne, chociaż zależy, avr-y są akurat dość optymalne dla C i C++. Jeśli się zna architekturę i assemblera dla tych mikroprocesorów to C okaże się nieco wygodniejsze, ale assembler też ma swoje uroki. Natomiast korzystając z arduino wiele wiedzieć nie trzeba i to jest dobre z punktu widzenia właśnie tych początkujących.
***** Konkretniej anoda.
Do wielozadaniowości w arduino polecam bibliotekę leOS2. Można ją pobrać na githubie, tutorial jak używać spokojnie można znaleźć po wpisaniu w google "leos2". Polecam ;D
Jako czujnika używanego kierunku wiatru?
jest nowa wersja arduino 1.6
Podria ser mas claro?
przez 999 ms jest nic a później jest HAJ :P Kocham Atmegę
Witam . Posiadam dostęp do tego czujnika z strony "Maplin" Czy ktoś jest chętny?
+Damian Buczyk /Sunortas
Ja bym nabył.
+Rafał Głyżewski jak mogę się z Panem skontaktować?
+Damian Buczyk /Sunortas
Również byłbym zainteresowany
+Damian Buczyk /Sunortas
Też byłbym zainteresowany tym czujnikiem, kontakt do mnie: adrian.k111@wp.pl
+Damian Buczyk /Sunortas ja bym też chętnie nabył tylko podstawowe pytanie jakie są koszty przesłania tego do Polski bo sam ten anemometr wygląda po taniości na 2,49 funta :) kontakt do mnie przez wiadomość na facebook.com/ArduinoPOL
Atmega niestety nie wykonuje 16 milionow operacji na sekunde
Jakby ktoś chciał zakupić ten anemometr to zapraszam. www.olx.pl/oferta/anemometr-czujnik-predkosci-wiatru-do-stacji-pogodowej-maplin-n96gy-CID99-IDnr6QC.html
Te śmigiełka są strasznie drogie na allegro najtaniej 70zł.
Zbyt przekombinowane jak dla mnie, zdecydowanie lepiej jest użyć do takich rzeczy przerwań, to co pokazujesz do tak banalnych rzeczy może i się sprawdzi, ale przy bardziej zaawansowanych rzeczach niestety będzie kompletnie bezużyteczne.
Tak samo zawartości IFów powinieneś wrzucić do jednej funkcji i w IFach ją wywoływać, niby proste rzeczy, ale właśnie przy nauce podstaw to takie rzeczy są najistotniejsze.
No i zapis inkrementacji liczników można skrócić o połowę :P
OK. W takim razie zapraszam do podzielenia sie swoją wiedzą z innymi. Na pewno się przyda. Program jest na tyle krótki że pez problemu jego poprawioną wersje da się wrzucić w komntarz. Jak wszystko będzie działać to wrzucę ją na Google drive. Dzięki temu twój komentarz z krytycznego stanie się bardziej merytoryczny i nauczy nas czegoś :)
Elektro Maras Nie ma sprawy :)
Kod: pastebin.com/raw.php?i=8pvHuDPP
Trochę brzydko ustawiany jest Timer1 - brzydko w tym znaczeniu, że w Arduino powszechne jest stosowanie bibliotek do każdej rzeczy (spoko, zrozumiałe, chyba że ktoś chce zacząć programować AVR), niżej ktoś podał przykład biblioteki do obsługi tego samego co ja robię tu, więc można to jeszcze uprościć. A robie w sumie nieskomplikowane rzeczy, zerowanie rejestrów, ustawienie prescalera, odblokowanie TIMER1, odblokowanie przerwań, w sumie to wszystko ładnie da się zrobić przy użyciu tych bibliotek.
Twoje IFy jak widać zmieniłem w funkcję SwitchLED, która robi praktycznie to samo co Twoja, tylko w przypadku jakiejkolwiek poprawki nie muszę poprawiać tego w kilku miejscach (a i kod jest krótszy i czytelniejszy)
W tym co zrobiłeś niestety nie ma mowy o żadnej nawet imitacji multitaskingu, wrzuć na koniec loopa delaya na 1000 sekund i zrób to samo z moim kodem, widzisz róznicę? Po drugie ten delay(1) na końcu nie da f=1kHz, odpal coś takiego:
pastebin.com/raw.php?i=48FnzEFe
I zobacz, że nie wypisuje liczb zwiększonych o 1000, bo samo wywołanie Serial.println() i delaya zajmuje pewien czas (po minucie u mnie opóźnienie wynosi 15 ms), niby w tak prostym programie nawet tego nie zauważysz, ale znów... przy bardziej zaawansowanych projektach, gdzie musisz być precyzyjny coś takiego kompletnie nie zda egzaminu, delayów nie powinno się używać.
Żeby nie było, nie mam do Ciebie żadnych uprzedzeń i niektóre Twoje filmiki są naprawdę ciekawe, ale wrzucanie takiej teorii według mnie w ogóle nie spełnia celu edukacyjnego.
Adam Safiański Pięknie bangla :) Diodki migają jak na choince. Dobra robota. Jeśli nie masz nic przeciwko to wrzucę to na Google Drive (oczywiście z adnotacją od kogo to jest).
Niestety stan mojej wiedzy w tym momencie nie pozwala mi na zrobienie filmu o przerwaniach bez narażęnia się na ośmieszenie i w efekcie publiczne potępienie. Niestety jest również brak chętnych którzy chcieli by omówić temat w ramach Umorusanej Ekipy.
Tak więc temat przerwań musi zostać odłożony na półkę i oczywiście wróci w momencie gdy poczuje sie na tyle mocny aby o nim opowiedzieć.
Na razie liczniki muszą wystarczyć. No chyba że ktoś zechciałby sie udzielić i nakręcić film z omówieniem tematu.
Elektro Maras Spoko, wrzucaj gdzie chcesz, rób z tym co chcesz :p
Generalnie przerwania i Timery są dość proste jeżeli chcesz się nauczyć tylko jak z nich korzystać i do czego służą i podejrzewam, że na ogarnięcie tematu na tyle, żeby nie zagłębiać się w szczegóły nie potrzeba za wiele czasu.
Na pewno taki odcinek byłby bardzo ciekawy a i warto taką wiedzę jak widać posiadać (albo przynajmniej wiedzieć, że jest taka opcja) :)
zDupino?
To poprosi nie orginalne Arduino i nakleił sobie
90 :P
sr 160 :P
A ja polecam coś takiego
sprae.jogger.pl/2012/07/26/wielozadaniowosc-w-arduino-cz-ii/
Rozwiązuje to wszystkie problemy.
I can't understand your english.
It's a pity. I speak Polish in this video so maybe that's the issue?
Elektro Maras =)
o wiele mniej
w praktyce
83 wyświetlenia...
58 wyświetleń...
Mi się prościej używa: cnt++;