Super gdybyś zrobił odcinek o radzeniu sobie z silnymi zakłóceniami elektromagnetycznymi. Zademonstrował różnicę w zasilaniu układu bez ekranowania i z ekranowaniem. Jak wygląda praca kabla z ekranowaniem a jak zwykłego. Sam chętnie bym się pobawił ale nie posiadam oscyloskopu. Pozdrawiam :)
Można pominąć excela i w sumie wyjdzie to samo. Wygenerować sinusa w setupie, wartości wrzucić do globalnej tablicy a potem tych wartości używać w loop przy generacji sygnału. Jeśli pójdziemy krok dalej to możemy użyć algorytmu CORDIC który jest wręcz stworzony do szybkiej generacji wartości funkcji w mikrokontrolerze. Ale ogólnie metoda pokazana na filmie jest poprawna i efektywna. Łapka w górę! :D
nie wyszło by na to samo gdyby w języku C dodać "static __flash const" (w C++ stosuje się atrybut PROGMEM i odczytuje dane z flasha używając do tego makra pgm_read_byte()). Pamięci flash jest 32kB a SRAM tylko 2kB i szkoda jej na duże tablice danych. Ta jest jeszcze w miarę mała, zajmie około 15% ram.
Polecam pogrzebać trochę w rejestrach układu i ustawić mu PWM na maxa. Nawet przy 8 MHz daje bardzo ładne wyniki. Jeśli zastosujemy filtr RC obcinający częstotliwość PWM i wyżej to mamy ultra fajnego DACa, który potrzebuje tylko jednego pina. Niesłychanie przydatne, gdy projekt jest miniaturowy i sam AVR jest malutki. No i oczywiście generujemy dość szybki przebieg(np wspomniany sinus). U mnie na luzie wychodzi powyżej 40 KHz przy 8MHz wewnętrznego. Strach się bać, gdybym w to ATTINY władował kwarc 40MHz....
Z tego co pamiętam to poza tym, że trzeba ustawić stan wysoki/niski to także trzeba ustawić odpowiednią pracę portów, czy ma port pracować jako wejście czy wyjście.
Super film. W końcu załapałem o co chodzi z tą drabinką R-2R. Co do pomysłu to na wyjściu dać jeszcze kondensator separujący, i mamy COVOX i możemy odtwarzać muzykę (najprościej zapisaną na np. karcie pamięci jako wav) :)PozdrawiamP.S. Przy okazji dowiedziałem się, że można ustawić cały port.
Oczywiście, że syntezator wave templat-owy ;). Mógłbyś więcej zrobić odcinków w tym temacie z wykorzystaniem gotowych przetworników i pobawić się trochę w audio :) .
Hej podobno wyszło cos dużo lepszego od Raspberry i Arduino i przede wszystkim tańszego nazywa się chyba UP Board bridge the gap, będzie jakaś recenzja i porównanie?
Jak juz masz piękną sinusoidę o częstotliwości 50Hz, to aż się prosi by wykorzystać ją do wysterowania przetwornicy DC/AC 230V, chociaż wykorzystanie procesora jako generatora sinusoidy to trochę jak strzelanie z armaty do muchy.
Jeżeli wejdziesz głębiej w programowanie AVR, mówię tu o zabawie z samymi Atmegami nie Arduino, to angielski jest baardzo potrzebny. Bo wtedy grzebiesz w notach katalogowych za potrzebnymi informacjami (zabawa z rejestrami...). W każdym razie wszystkie polecenia z C/C++ powinny działać w sketchu. Tak tam pisze ^^
Dziękuję za wyczerpującą odpowiedź :) .. co do not katalogowych to niestety masz rację ale na tym poziomie na jakim jestem na chwilę obecną to podstawowe info wyczytać potrafię ...... jak będę bardziej dokształcony z avr to będę zmuszony podszkolić angielski .... tak czy siak jeszcze raz dziękuję za jasną odpowiedź. Pozdrawiam
Nie ma sprawy ^^ Dużo możesz się dowiedzieć na kanale mirekk36, co prawda poświęcony on jest programowaniu samych Atmeg, lecz z niewielkimi zmianami powinno pójść w sketchu Arduinowskim. Pozdrawiam, Horochov
To jest zależne od ilość rezystorów ilość rezystorów przez dwa (przez trzy gdy budujemy na jednym typie rezystorów) daje ilość bit kodującą sygnał. Nie wychwyciłem błędu w stępie.
Nie do końca tak jest :) To jaki przetwornik zastosujesz zależy od Ciebie :) Tu masz przykład 8 bitowego DAC: www.analog.com/media/en/technical-documentation/data-sheets/AD7224.pdf 10 bit: www.ti.com.cn/general/cn/docs/lit/getliterature.tsp?genericPartNumber=tlc5615&fileType=pdf A nawet 12 bit: www.analog.com/media/en/technical-documentation/data-sheets/DAC8512.pdf To jaki przetwornik DAC zastosujesz zależy od projektu w jakim go używasz i od dokładności jakiej potrzebujesz. Przy ośmiu bitach napięcie wejściowe dzielisz na 256 części czyli jeden krok to 0,0039 napięcia wejściowego, zaś przy 12 bitach na 4096 kroków, gdzie 1 krok to 0,00024 napięcia wejściowego. Wszystko zależy jak dokładnie chcesz dzielić napięcie :)
Nie jestem ekspertem od Arduino, ale czy dałoby się za pomocą tego przetwornika cyfrowo anologowego wyprowadzić sygnał z Arduino bezpośrednio na monitor VGA ? :) Pewnie w grę wchodziłoby zsynchronizowanie Arduino z monitorem i nie wiem czy Arduino podołałoby takim częstotliwościom, nie mniej byłby to ciekawy eksperyment dydaktyczny :)
31:22 Autor filmu zasugerował na schemacie układ TL-081, BARDZO tego odradzam szkoda, że autor nie sprawdził, co się dzieje z sygnałem po wpięciu tego układu:) Radzę zastosować w tym samym układzie LM358 lub podobny. Widać, że autor filmu miał już wpięty TL081, ale chyba problemy techniczne nie pozwoliły na demonstrację. :))
+ElektroPrzewodnik Powinno być, "słuchaj uważnie" a nie "oglądaj uważnie":) Fakt, że krótko o tym wspomniałeś, ale schemat wprowadza w błąd, jako typowy wzrokowiec łatwiej utrwalam obrazy-schematy i nie powinno być tego TL081 na tym schemacie.
PORT, DDR i PIN( tego tu nie ma) to nie są funkcje tylko makra pozwalające na bezpośrednie odwołanie do rejestrów procesora, to jedno. A po drugie, przy całej moim zdaniem dużej wartości merytorycznej tego kanału pisanie programów w ten sposób to prawie herezja. Może i się czepiam, bo nawyki z "czystego" C dają o sobie znać, ale osobiście jak patrzę np. na zmienną sterującą forem zadeklarowaną jako int i zmieniającą się w granicach 0-255 to mnie szlak trafia, mało że pamięci idzie więcej to jeszcze czas wykonywania się wydłuża. Niby wiem że w tym konkretnym przypadku to nie ma większego znaczenia, ale czasem dobry nawyk może uchronić przed kombinowaniem na około nad optymalizacją albo nawet kupnem droższego, wydajniejszego sprzętu.
Spokojna Twa głowa. Każdy, kto przesiada się z arduino na czyste mikrokontrolery ma potem ból dupy. Jak z dostępnych 32k flasha robi Ci się 8k albo 2k i ilość wyprowadzeń zaczyna się drastycznie zmniejszać (np dla attiny85) to wtedy pojawia się prawdziwy Ból dupska :p Ja od początku nauki ardu krzywo patrzyłem, że stosują INTa tam, gdzie BYTE w zupełności wystarczy. Jeszcze bardziej drażni mnie jednak fakt, że zamiast zapisać wartość 1 w boolean to ładują to w inta, lub stałe deklarują zmiennymi, np int I=20; Przez cały program I się nie zmieni, ale tak napisali i ch**** !
A co gdyby zamiast wykorzystywać Arduino do sterowania DAC to użyć DAC i przycisków przyczepionych do jego wejść a z wyjścia czytać Arduino który przycisk był włączony, zwiększa to znacznie ilość możliwych do przyłączenia przycisków do mikrokontrolerów ? Jak nie rozumiesz ( o ile to czytasz to napisz)
Nadajniki radiowy wykorzystuje prąd sinusoidalny tworząc fale elektromagnetyczną. Natomiast przetwornik ADC zamienia nam sygnały binarne (01) na sygnał analogowy (czyli o konkretnej wartości napięcia). Jeśli chcesz zbudować nadajnik radiowy to taki sygnał sinusoidalny generuje się przez układy rezonansowe np. dwójnik LC bądź rezonatory. Sam nie wiem jak dokładnie zbudować nadajnik bo można takie kupić już od 7zł. Jeśli napisałem błędne informacje to proszę mnie poprawić :)
4 bity to maksymalnie 15 w systemie dziesietnym. Ale autor filmu podzielil przez 16 dlatego,ze wzial jeszcze wartosc 0, kiedy na zadnym bicie nie ma wysokiego stanu. Razem z tymi zerami,czyli "0000" mamy w sumie 16 kombinacji :)
Dziękuję za przystępne filmy o elektronice! :)
Świetny film, fajnie wszystko wytłumaczone!
Super gdybyś zrobił odcinek o radzeniu sobie z silnymi zakłóceniami elektromagnetycznymi. Zademonstrował różnicę w zasilaniu układu bez ekranowania i z ekranowaniem. Jak wygląda praca kabla z ekranowaniem a jak zwykłego. Sam chętnie bym się pobawił ale nie posiadam oscyloskopu. Pozdrawiam :)
Można pominąć excela i w sumie wyjdzie to samo. Wygenerować sinusa w setupie, wartości wrzucić do globalnej tablicy a potem tych wartości używać w loop przy generacji sygnału. Jeśli pójdziemy krok dalej to możemy użyć algorytmu CORDIC który jest wręcz stworzony do szybkiej generacji wartości funkcji w mikrokontrolerze. Ale ogólnie metoda pokazana na filmie jest poprawna i efektywna. Łapka w górę! :D
nie wyszło by na to samo gdyby w języku C dodać "static __flash const" (w C++ stosuje się atrybut PROGMEM i odczytuje dane z flasha używając do tego makra pgm_read_byte()). Pamięci flash jest 32kB a SRAM tylko 2kB i szkoda jej na duże tablice danych. Ta jest jeszcze w miarę mała, zajmie około 15% ram.
8:30 odrazu powiedziałem wynik a w 12 min okazuje się, że prawda,
Co Do Całości Dobra robota :-)
Polecam pogrzebać trochę w rejestrach układu i ustawić mu PWM na maxa. Nawet przy 8 MHz daje bardzo ładne wyniki. Jeśli zastosujemy filtr RC obcinający częstotliwość PWM i wyżej to mamy ultra fajnego DACa, który potrzebuje tylko jednego pina. Niesłychanie przydatne, gdy projekt jest miniaturowy i sam AVR jest malutki. No i oczywiście generujemy dość szybki przebieg(np wspomniany sinus). U mnie na luzie wychodzi powyżej 40 KHz przy 8MHz wewnętrznego. Strach się bać, gdybym w to ATTINY władował kwarc 40MHz....
Z tego co pamiętam to poza tym, że trzeba ustawić stan wysoki/niski to także trzeba ustawić odpowiednią pracę portów, czy ma port pracować jako wejście czy wyjście.
Doskonały film. Dziękuję!
Gratuluję 40 tysięcy subskrybentów!
Dziękuję :)
Nie wiedziałem że te przetworniki są takie proste; a tak wgl to bardzo fajny film.
Super film. W końcu załapałem o co chodzi z tą drabinką R-2R. Co do pomysłu to na wyjściu dać jeszcze kondensator separujący, i mamy COVOX i możemy odtwarzać muzykę (najprościej zapisaną na np. karcie pamięci jako wav) :)PozdrawiamP.S. Przy okazji dowiedziałem się, że można ustawić cały port.
Czy da się to zrobić innymi zależnościami rezystorów? Akurat takich nie mam ale posiadam zależności 1/10 albo 1/100.
Witam, pytanie jaki to musi być klej do podzespołów smd. I gdzie można kupić zasilacz impulnowy. Dziękuje
Dlaczego odcinki wychodzą zawsze jak jestem najebany i nic z tego nie wiem?
Pij więcej, będzie więcej odcinków :)
Mniej wodki wiecej kawy ;-))
Oczywiście, że syntezator wave templat-owy ;). Mógłbyś więcej zrobić odcinków w tym temacie z wykorzystaniem gotowych przetworników i pobawić się trochę w audio :) .
Hej podobno wyszło cos dużo lepszego od Raspberry i Arduino i przede wszystkim tańszego nazywa się chyba UP Board bridge the gap, będzie jakaś recenzja i porównanie?
+ElektroPrzewodnik Dzień dobry mam taką sprawę poniewasz jestem w posiadaniu TDA9806 i nie wiem jak go sprawdzić
Dobra robota.
A da się zrobić z tego kartę dźwiękową?
Jak juz masz piękną sinusoidę o częstotliwości 50Hz, to aż się prosi by wykorzystać ją do wysterowania przetwornicy DC/AC 230V, chociaż wykorzystanie procesora jako generatora sinusoidy to trochę jak strzelanie z armaty do muchy.
Jakiego programu używasz do rysowania schematów?
Mam pytanie po co jest Bezpiecznik kupełkowy raster 5.08mm 250V 3,15A
Nie rozumiem pytania, nie używam w tym odcinku takiego bezpiecznika.
kurde ten link od sinusa nie dziala ma ktos kod do tego?
Będą w przyszłosci jeszcze jakies wykłady? (Typu 21 odcinek)
Co roku organizuję Arduino Day, odpowiadam też na zaproszenia szkół. Śledź mój profil na facebooku :)
Zastanawia mnie jaka jest wydajność prądowa takiej drabinki?
Czy w Sketch'u można piać w czystym C czy tylko wyrywkowe jak przesunięcia bitowe, adresacja portów?
Odpowiedź znajduje się w FAQ Arduino. Google nie gryzie :P
www.arduino.cc/en/Main/FAQ
mnie gryzie ..... może nie każdy zna angielski .... aaaa zapomniałem, przecież jest idealny translator który świetnie tłumaczy....
Jeżeli wejdziesz głębiej w programowanie AVR, mówię tu o zabawie z samymi Atmegami nie Arduino, to angielski jest baardzo potrzebny. Bo wtedy grzebiesz w notach katalogowych za potrzebnymi informacjami (zabawa z rejestrami...). W każdym razie wszystkie polecenia z C/C++ powinny działać w sketchu. Tak tam pisze ^^
Dziękuję za wyczerpującą odpowiedź :) .. co do not katalogowych to niestety masz rację ale na tym poziomie na jakim jestem na chwilę obecną to podstawowe info wyczytać potrafię ...... jak będę bardziej dokształcony z avr to będę zmuszony podszkolić angielski .... tak czy siak jeszcze raz dziękuję za jasną odpowiedź. Pozdrawiam
Nie ma sprawy ^^
Dużo możesz się dowiedzieć na kanale mirekk36, co prawda poświęcony on jest programowaniu samych Atmeg, lecz z niewielkimi zmianami powinno pójść w sketchu Arduinowskim.
Pozdrawiam, Horochov
A nie jest tak, że przetwornik analogowo-cyfrowy działa w systemie 10-bitowym? Chyba jest błąd we wstępie. Pozdrawiam
To jest zależne od ilość rezystorów ilość rezystorów przez dwa (przez trzy gdy budujemy na jednym typie rezystorów) daje ilość bit kodującą sygnał. Nie wychwyciłem błędu w stępie.
+Jakub Stępień chodzi o 25s filmu
+Krzysztof Kubas otrzymuje się wartość 0-1023, więc 10 bitów
Dalej nie wysłałem. Chyba że to była inwersja ale ja też ciała to robię.
Nie do końca tak jest :) To jaki przetwornik zastosujesz zależy od Ciebie :)
Tu masz przykład 8 bitowego DAC: www.analog.com/media/en/technical-documentation/data-sheets/AD7224.pdf
10 bit: www.ti.com.cn/general/cn/docs/lit/getliterature.tsp?genericPartNumber=tlc5615&fileType=pdf
A nawet 12 bit: www.analog.com/media/en/technical-documentation/data-sheets/DAC8512.pdf
To jaki przetwornik DAC zastosujesz zależy od projektu w jakim go używasz i od dokładności jakiej potrzebujesz. Przy ośmiu bitach napięcie wejściowe dzielisz na 256 części czyli jeden krok to 0,0039 napięcia wejściowego, zaś przy 12 bitach na 4096 kroków, gdzie 1 krok to 0,00024 napięcia wejściowego. Wszystko zależy jak dokładnie chcesz dzielić napięcie :)
Nie jestem ekspertem od Arduino, ale czy dałoby się za pomocą tego przetwornika cyfrowo anologowego wyprowadzić sygnał z Arduino bezpośrednio na monitor VGA ? :) Pewnie w grę wchodziłoby zsynchronizowanie Arduino z monitorem i nie wiem czy Arduino podołałoby takim częstotliwościom, nie mniej byłby to ciekawy eksperyment dydaktyczny :)
Poszukaj w Google. Od razu pojawi się dużo gotowców, tylko musisz znać angielski.
Tak. Sposób transmisji z noty, gotowy program i inżynieria wsteczna :P
Jesteś gienjuszem majster. Lapa w góre.
jak długo się pan uczył programować
wbrew pozorom dosc szybko sie mozna nauczyc w pol roku konsekwetnej pracy daje juz potezne mozliwosci
31:22 Autor filmu zasugerował na schemacie układ TL-081, BARDZO tego odradzam szkoda, że autor nie sprawdził, co się dzieje z sygnałem po wpięciu tego układu:) Radzę zastosować w tym samym układzie LM358 lub podobny. Widać, że autor filmu miał już wpięty TL081, ale chyba problemy techniczne nie pozwoliły na demonstrację. :))
+walimlot wspominam o użyciu LM358 i tłumaczę dlaczego ;) oglądaj uważnie.
+walimlot wspominam o użyciu LM358 i tłumaczę dlaczego ;) oglądaj uważnie.
+ElektroPrzewodnik
Powinno być, "słuchaj uważnie" a nie "oglądaj uważnie":) Fakt, że krótko o tym wspomniałeś, ale schemat wprowadza w błąd, jako typowy wzrokowiec łatwiej utrwalam obrazy-schematy i nie powinno być tego TL081 na tym schemacie.
Super!
PORT, DDR i PIN( tego tu nie ma) to nie są funkcje tylko makra pozwalające na bezpośrednie odwołanie do rejestrów procesora, to jedno. A po drugie, przy całej moim zdaniem dużej wartości merytorycznej tego kanału pisanie programów w ten sposób to prawie herezja. Może i się czepiam, bo nawyki z "czystego" C dają o sobie znać, ale osobiście jak patrzę np. na zmienną sterującą forem zadeklarowaną jako int i zmieniającą się w granicach 0-255 to mnie szlak trafia, mało że pamięci idzie więcej to jeszcze czas wykonywania się wydłuża. Niby wiem że w tym konkretnym przypadku to nie ma większego znaczenia, ale czasem dobry nawyk może uchronić przed kombinowaniem na około nad optymalizacją albo nawet kupnem droższego, wydajniejszego sprzętu.
Mowisz, że szlak Cie trafia? Ale jaki szlak? Czerwony? Czarny?
Spokojna Twa głowa. Każdy, kto przesiada się z arduino na czyste mikrokontrolery ma potem ból dupy. Jak z dostępnych 32k flasha robi Ci się 8k albo 2k i ilość wyprowadzeń zaczyna się drastycznie zmniejszać (np dla attiny85) to wtedy pojawia się prawdziwy Ból dupska :p Ja od początku nauki ardu krzywo patrzyłem, że stosują INTa tam, gdzie BYTE w zupełności wystarczy. Jeszcze bardziej drażni mnie jednak fakt, że zamiast zapisać wartość 1 w boolean to ładują to w inta, lub stałe deklarują zmiennymi, np int I=20; Przez cały program I się nie zmieni, ale tak napisali i ch**** !
mogę wysłać do cb popsute arduiono naprawiać je na odcinku zapłacę za naprawę rzeczy i przesyłkę
A co gdyby zamiast wykorzystywać Arduino do sterowania DAC to użyć DAC i przycisków przyczepionych do jego wejść a z wyjścia czytać Arduino który przycisk był włączony, zwiększa to znacznie ilość możliwych do przyłączenia przycisków do mikrokontrolerów ? Jak nie rozumiesz ( o ile to czytasz to napisz)
a da się za pomocą DAC zrobić nadajnik radiowy?
????????????????????????????????????????????????????????????????????????????????????????????
Nadajniki radiowy wykorzystuje prąd sinusoidalny tworząc fale elektromagnetyczną. Natomiast przetwornik ADC zamienia nam sygnały binarne (01) na sygnał analogowy (czyli o konkretnej wartości napięcia).
Jeśli chcesz zbudować nadajnik radiowy to taki sygnał sinusoidalny generuje się przez układy rezonansowe np. dwójnik LC bądź rezonatory. Sam nie wiem jak dokładnie zbudować nadajnik bo można takie kupić już od 7zł.
Jeśli napisałem błędne informacje to proszę mnie poprawić :)
+Tomek R WYGRYW XDDDDDD
dla przetwornika 4 bitowego nie dzieli się przez 15? a Ty podzieliles przez 16. niech ktos mi odpowie 5:16
4 bity to maksymalnie 15 w systemie dziesietnym. Ale autor filmu podzielil przez 16 dlatego,ze wzial jeszcze wartosc 0, kiedy na zadnym bicie nie ma wysokiego stanu. Razem z tymi zerami,czyli "0000" mamy w sumie 16 kombinacji :)
@@krzysztofproch1754 dzieki za odpowiedz, ale juz nw o co mi chodzilo
4:30 kombinacji mamy 256 ale od 0-255 nie jestem pewien ale to chyba mały błąd
Nie prościej było by zapisać 0bxxxxxxxx?
xxxxxxxx to liczba w systemie binarnym.
Dzięki!!!!!
Co za kretyni dają łapke w dół....?
Układ można wykorzystać do budowy przetwornicy sinusoidalnej.
Cowox ;)
Faktycznie to jest covox czyli prehistoryczna karta dźwiękowa domowej roboty podłączana do portu równoległego PC
Tak się kiedyś bawiłem jak miałem 386dx 40MHz i chciało się słuchać modów. 8bit i 44kH próbkowania.
DDS dla ubogich xdxd