Arduino 11: SZESNAŚCIE MILIONÓW KOLORÓW
HTML-код
- Опубликовано: 19 авг 2024
- O sterowaniu diodami świecącymi: pojedynczymi, podwójnymi i RGB. O nieliniowej regulacji, zgodnej z ludzkim okiem. O funkcjach wykładniczych.
Kod, na którym bazuje odcinek można pobrać stąd:
adamsmialek.co...
Zapraszam do wsparcia mojego kanału:
patronite.pl/s...
PayPal.Me/smialekadam
oraz do subskrybowania:
www.youtube.co...
#Arduino #LED #RGB
Kiedy zaczynała się u Pana Adama seria z arduino, stwierdziłem że nie kupię ale będą oglądał. Dość mam różnych hobby i czasu brakuje. Niedługo później kupiłem grę (hokej, taką na krecenie prętami) i pomyślałem, że dobrze byłoby zrobić system detekcji i liczenia bramek. Idąc dalej system liczenia czasu, tercji, efekty świetlne. Skończyłem kupując arduino, czujniki i ćwiczę pierwsze programy z tym "komputerem". Wolę mam silną ale wygrywa praktyczność arduino.
Do płytki stykowej muszą byc "zwory" i złącza szpilkowe jako pośrednik. Gołe wiszące druty robią zły PR. Są specjalne zestawy zworek o różnej długości i tego należy używać dobierając pod potrzeby, szczególnie dla dość prostych tematów. W takim wypadku praca moze być przyjemna i niezawodna.
Ale to są właśnie zwory z zestawu, a kabelek ma jak najbardziej założone złącza szpilkowe.
@ A jakie złącza? Męskie DuPoint są cieńsze niż zwory z zestawów. Oprócz tego do zestawów dają wersje męski-męski, takie również są za cienkie.
Takie jak najczęściej trafiają do rąk rozpoczynających zabawę w Arduino.
@ Dlatego napisałem co należy zrobić, żeby zdjąć klątwę stykówek :)
co do samych plytek stykowych te dobrej jakosci (rynek w pl zalany jest tymi słabej jakości a to bardzo zniecheca sam sie o tym przekonałem ) bardzo dobrze realizuja połączenia dzieki czemu milo jest eksperymentowac i sprawdzać różne konfiguracje zanim zrobi się taki na dedykowanej pcb
Gdy wspominam moje początki z Arduino to zastanawiam się jakim cudem wszystkie płytki jeszcze mi działają - te limity prądów były wiele razy przekraczane :)
Tam są zabezpieczenia. Ale dobrym zwyczajem jest nie korzystanie z nich :)
Mam wrażenie, że jest to najfajniejszy "kurs" programowania Arduino na yt. Nie widziałem wszystkich, ale z tych które widziałem ten jest najdokładniejszy, pozbawiony chyba wszelkich istotnych pomyłek i bardzo konkretny, rzetelny. Jeszcze jeden też bardzo fajnie prowadzony był przez takiego młodego człowieka z dużym talentem do elektroniki. Oba jest przyjemnie obejrzeć nawet będąc starą wygą w temacie, bo wówczas świetnie się wszystko przypomina, gdy ktoś podaje tak precyzyjny konkret, jaki się samemu w głowie kiedyś układało. Pozdrawiam. :)
@@bartoszbart3019 jeśli ma się mózg, to się go odpowiednio używa, a nie wszystko tylko na pamięć bezmyślnie.. Nie widzę żadnego problemu. To nie uczelnia. :)
uff... dobrze że urządzenie obcięęłłło 1 bit ;-) pozdrawiam i czekam na kolejne odcinki.
16:02 Takie obliczenia są bardzo ryzykowne.
Warto od razu zdecydować się, jakiego typu mają być wartości.
analogRead może mieć uint16_t albo int16_t. obliczenia z przecinkiem i minusem to double albo float. Wydaję mi się, że analogWrite przyjmuje wartości byte. Zatem powinno być analogWrite(LEDb, (byte)(766 - ( napiecie / 1.337) );
warto również korzystać z funkcji map(), która rzutuję wartość na określony przedział.
Ależ na tym polega programowanie, że nie "może", tylko "musi". Te rzeczy należy przeanalizować na wstępie i jeśli nie jest się ich pewnym, to nie ma sensu czegokolwiek pisać :) analogWrite przyjmuje osiem najmłodszych bitów dowolnej wartości. O map() będzie za tydzień, ale nie chciałem od razu wprowadzać tej instrukcji, żeby wiedzieć jak to działa z punktu widzenia matematyki.
😛 Dobra robota! Szkoda jedynie, że zasięg trochę słaby... Trzymam kciuki!
Fajna zabawa. Alternatywnie można by było wykorzystać konwersję stożka HSV na RGB i tym potencjometrem regulować tylko barwę w zakresie od 0 do 359 stopni (mapując odpowiednio wartości od 0 do 1023) a nasycenie i wartość zostawić na maksa. Powinny być kolory od czerwonego, przez pomarańczowy, żółty, zielony, cyjan, niebieski, magenta jak to się ma w stożku HSV.
super poratnik, teraz to musze zrobić dla przesuwania po kolorach światła widzialnego. Przydało by się jeszcze wyświetlanie jaką to długość fali odwzorowuję
Będzie, że się czepiam, ale to nawyk ze studiów: przedstawianie prawa Ohma jako R=U/I nie jest poprawne. Oczywiście wzór jest słuszny ale jednak fizycznie prawo Ohma to I=U/R. Pozdrawiam mojego promotora (jeśli tu zagląda) a Autorowi dziękuję za ogrom wspaniałej pracy, jaki wkłada w każdy film z wszystkich serii
"W miarę przesuwania dłonią po udzie rośnie napięcie a maleje opór". To jeszcze z lat klasy VII SP (1965 rok).
opór
Cialo w ciemnosci Traci na opornosci. Prawo ohma
@@henrykjakubowski5180 Ciało uderzone łomem w głowę przestaje stawiać opór na skutek nagłego spadku napięcia mięśniowego ;)
@@adamcichowicz1474 🤣🤣 dobre, zdążyłem zapomnieć 😁
Mój Wynalazek.
Jak zrobić przy niskim napięciu 12V DC lub 24V, tak aby znaleź Faze i zero za pomocą Próbnika niskiego napięcia, lub Żarówki Samochodowej. Wiem że to jest skąplikowane i nikt w takie coć nie wieży, to jest taka możliwość. Co trzeba w takiej sydułacji zrobić, trzeba rozebrać stary telewizor, lub monitor wylutować z niego Diodę Prostowniczą, potem przypiąć ją do krokodylka na kabelku przy Próbniku niskiego napięcia, albo przylutować do Żarówki Samochodowej, tylko tak aby nie pomylić oznaczeń, Anody i Katody, następnie drugi koniec Diody przyłożyć do masy, a igłę Próbnika lub jedenego kabeleka Żarówki Samochodowej bez Diody przyłożyć do biegunu plus, i Próbnik lub Żarówka Samochodowa powinny nam zaświecić. A kiedy odwrucimy Próbnik, lub Żarówkę Samochodową, i pżyłożymy Diodę Prostowniczą do biegónu plus, a igłę Próbnika czy kabelek Żarówki Samochodowej przyłożymy do masy czyli na odwrut, to wtedy Próbnik czy Żarówka Samochodowa, nie będzie wstanie nam zaświecić. I tym sposobem, nie pomylimy biegunów. A Dioda Prostownicza tak działa, że jedną stroną Przepuszcza Prąd, a drugą go Blokuje. I tym sposobem Próbnik i Żarówka niskiego napięcia nie będą wstanie nas oszukać.
Dużo tych kolorów. 😋
Więcej kolorów nie ma większego sensu. A i tak większości odcieni nie rozróżnisz. Człowiek podobno nie rozróżni więcej niż 80 odcieni szarości a co dopiero mówić o 256 czy 65536 więc 16,7 mln kolorów brzmi astronomicznie.
Rozróżnianie jest nieliniowe, w pewnych zakresach jasności i widma większe, w innych mniejsze.
@@moje12a w zakresie widma odpowiadającemu kolorowi zielonemu czułość jest największa i 256 zakresów to za mało. Maksymalna jasność również wpływa na czułość i np. monitory przeznaczone dla radiografii mają rozdzielczość 10bitów na kanał (zakresy 0..1023) oraz dużą jasność, np. 1000 cd/m2 w porównaniu do konsumenckich 250cd/m2. Dzięki temu ludzkie oko może wychwycić subtelne zmiany np. wczesne stadium nowotworu.
Więcej kolorów może nie mieć sensu przy zabawach z arduino, ale w innych dziedzinach to może skutkować przedwczesną śmiercią.
@@voytechj dlatego przy niesymetrycznym układzie bitów najwięcej daje się dla zieleni a następnie niebieskiego a czerwonego jest najmniej przykładowo dla 8 bitów zazwyczaj jest 332 16 bitów jest RGB 565 dopiero przy 24 bitach jest symetrycznie po 8 na każdą składową. Oczywiście jak napisałeś są rozwiązania dedykowane do konkretnych celów gdzie rozkład kolorów jest inny.
Taka ciekawostki:
- Są organizmy które rozróżniają więcej niż 3 składowe koloru.
- Żaden organizm który widzi naturalnie ultrafiolet nie żyje więcej niż naście lat.
A może nawet stacja meteo
Z sensorami do ziemi
Panie Adamie - dlaczego zastosował Pan sterowanie liniowe w ostatnim przykładzie? Jeśli już wytłumaczyliśmy widzom funkcję pow() - moglibyśmy ja zastosować do każdego koloru - dobry wstęp do późniejszego wprowadzenia mapowsnia i / lub tabeli.
Ogólnie ogromny szacunek i uznanie za zwrócenie uwagi na nieliniowość ludzkiego oka.
Od siebie dodałbym jeszcze (jako ciekawostkę), że w zastosowaniach profesjonalnych przy najmniejszych jasnościach LED stosuje się metodę mieszaną. Gdy PWM zbliża się ku 0%, a nasze oko jest najbardziej czule na zmiany - można zastosować regulację tylko prądu - zasilając Leady sterowanym źródłem prądowym - i przy stałym, małym PWM zmniejszać już tylko prąd płynący przez złącze diody.
Oczywiście to wykracza poza formę odcinka która z założenia jest dla początkujących, ale może się przydać na później.
Pozdrawiam !
Sterowanie liniowe zastosowałem, by nie zaciemniać istoty sprawy w tym rozdziale. A żeby uzyskać ładną charakterystykę świecenia przy poziomach minimalnym, można też przejść na szesnastobiotowe PWM, o tym też kiedyś będzie.
A może o sensorach np.sensor poziomu wody
Przydałby się prosty wykrywacz (czujnik) zalania, np. do położenia pod pralką.
Tak szukam cos takiego
Czujnik zalania łazienki proponuję zrobić na kilku bramkach cmos. Będzie działał wieki i narobi huku w razie potrzeby. No chyba, że ma wysłać esemesa, to już trzeba komputera :)
Taki bylby super. Uzywam podobnego z brzeczkiem ale jest za cichy. Panski pomysl z wyslaniem SMS, zalaczeniem np. POMPY jest godny uwagi I ma work edukacyjny
Walor edukacyjny
Panie Adamie, mam pewne może zaskakujące pytanie w związku z dźwiękiem.. Może Pan zna na nie jakąś odpowiedź, bo na razie nie znam człowieka, który by coś takiego także miał. :) Może spotkał się Pan w swym życiu z czymś takim u kogoś..
Od kilku lat mam (może już 5) pewien efekt, o którym nawet neurolog z drugą specjalizacją nic nie potrafi powiedzieć. Otóż cały czas słyszę w prawym uchu ciche, bardzo stabilne 2 tony na zmianę, interwał wynosi ok. pół, a niekiedy cały ton. W nocy mocniej, w dzień tak średnio, ale w ciszy wciąż jest obecny. Losowe zmiany w czasie, dość szybkie ok 2-3 x na sekundę, ale też czasem jeden potrafi brzmieć do 3s. Dźwięk jak z kamertonu. Czysty sinus. Ale tylko z prawej strony i wyraźna lokalizacja, jak w uchu. A przecież nie ma tam generatora. 🤔 Tak jak gdyby ktoś sobie losowo naciskał guzik w generatorze i zmieniał częstotliwość z jednej w drugą (nadawał Morsem?). Nie ma nigdy żadnej przerwy, tylko w koło zmiany. Dłużej przeważnie brzmi ten niższy, a wyższy krótko wskakuje, nigdy jednocześnie razem, ale bywa też odwrotnie. Zmierzyłem przez porównanie, jaka to częstotliwość. W tej chwili jeden ton ma dokładnie 640 Hz, a drugi 680 Hz (blisko D# i E5). Zauważyłem też, że gdy jest wokół mnie nieco głośniej, np. słucham muzyki jakiś czas, to, gdy przestanę, słyszę tylko jeden, niższy ton, nie wskakuje ten wyższy. Dopiero po dłuższym czasie ciszy drugi zaczyna się też pojawiać. Od około 2 tygodni temat się nasilił i w dzień w cichym pokoju słyszę to cały czas. Myślę, że dłuższy stres potrafi nasilić głośność tego tonu i potem trzeba czasu, żeby to się zmniejszyło. Stabilne dwie częstotliwości na zmianę..
Co Pan o tym myśli Panie Adamie?
Myślę, że to raczej sprawa do rozwiązania przez laryngologa, bo na pewno nie są to dźwięki słyszane z zewnątrz, a temat nie jest nieznany i takie przypadki istnieją.
@ laryngolog nie ma o tym pojęcia również. Uszy mam wg niej o wiele za dobre, jak na ten wiek. To mózg robi mi takie gupie sztuczki. :)
No to ciekawostka. I współczuję, bo to chyba niezbyt miłe...
@ jeśli cicho, to nawet nie wiem, ale ostatnio jest cały czas słyszalne i to już zwraca na siebie uwagę kurcze. 🤔
Z opisu wyglada na modulacje FSK. Moze jakies transmisje odbierasz ? ;)
Niby genialny naukowiec radziecki z tego Stykowa, ale wynalazek tej płytki mu jednak nie wyszedł 😉. Płytka Stykowa nie zapewnia dobrego kontaktu elementów...
Płytkę wymyslil prawidlowo ale nie bylo czym lutowac bo genialny wynalazca konserw ( puszkin) lutowanych cynom, stał sie w ten sposob ojcem cynizmu i tak w zssr takim cynikom Lutowano po M....dzie pałą... wiec dziś mało stykają sie szczęki ;)
nice!
11:03 3,5,6 nie 3,4,6 :)
Ja mysle ze fajnie by było zrobić film o podstawach matematyki, np. Zaokraglaniu.. w każdej gazecie pisze 16 milioniw kolorow.. a naprawde to 16.777.216 więc w zaokrągleniu 17M... pozdr M.
Podstaw matematyki warto było się nauczyć w szkole podstawowej. Poza tym 16.777.216 to dokładnie 16M (a nie 17M), o ile się przyjmie, że 1M to 1024*1024 (a nie 1000*1000), bo taką się najczęściej posługuje w informatyce (np. MB - megabajty).
@@programistrz1971 Otototo.
@@programistrz1971 a jak jest w tytule ? 16 Mega kolorow ? Czy 16 Milionow ? W banku masz 2M zlotych i miliard w rozumie... czy G.... w rozumie ?
Nie można mówić tu o zaokrąglaniu liczb w ściśle matematycznym znaczeniu, pomijając inne aspekty (kontekst).
Otóż zaokrąglamy TEORETYCZNIE liczbę np. 99zł do postaci 100zł. Ale w praktyce (realnym życiu) mózg ludzki automatyzuje po swojemu. Ułatwia sobie pracę do odczytywania tylko pierwszej cyfry z podanej ceny, a jako wynik „szacowania” podsuwa nam 9 i druga cyfra nieistotna, więc automatycznie uznana za zero. Efektem „życiowego” zaokrąglania jest „cena około 90 zł” a nie (jak powinno być w teorii) ok. 100zł.
To długi temat, ale podałem przykład manipulacji cenami (socjotechnicznej manipulacji) jako łatwy do zrozumienia i powszechnie występujący. A co najciekawsze: ciągle skuteczny…
Witam ciekawy film ale mam pytanie mam w projekcie 4 diody led 2 czerwone i 2 zielone czy moge je zastapic powidzmy paskiem led z pięcioma ledami tak aby nie trzeba było zmieniać programu ? Z tego co kojarze paski led maja 3 wyjacia r g b czy wystarczy ze 1 podlutuje do arduino a 2 do masy?
Wszystkie kolejne etapy programu pracują z dowolną ilością diod, ale Arduino może oferować prąd maksymalny 40 mA na jedną sekcję, więc trochę mało na pasek (będzie świecił słabo). O zwiększeniu mocy opowiem w najbliższym odcinku.
Pozdrawiam.#
lato z radiem
Wszystko fajnie, ale nawet małe dziecko w Polsce wie, że pisze się „ nie chcem, ale muszem”! ;)
3:15 Prawo Ohma: nie chodź z jedną, tylko z dwoma.
u mnie było: nie wychodź z doma bez łoma :P
@@grzesiektg obaj macie połowicznie rację. Poprawna werja tego prawa brzmi:
„Nie wychodź z doma bez łoma, i nie z jednym tylko z dwoma”
😆😆😆
Mam prośbę. Nie nazywaj wejść i wyjść portami. To nie są porty. Na całych portach też wykonuje się operacje, ale nie tak.
Czyżbym coś przespał i po pięćdziesięciu latach na porty przestało się mówić porty? :)
@ Owszem. Atmega328 ma 3 porty. 8 bitowe i czyta się całe porty. To, że w językach można czytać poszczególne bity portu to już jest sprawa kompilatora i kodu, który powoduje, że możemy sobie wskazywać poszczególne wejścia i wyjścia oraz je definiować. W tym mikrokontrolerze (akurat w obudowie DIP, bo w innych jest wyprowadzone wejść/wyjść) masz np. port B z wejściami/wyjściami 0-7, port C od 0 do 6 i tu masz właśnie mniej oraz port D od 0 do 7. Pracując na rejestrach procesora czyta się całe porty! Jest też instrukcja, która to tak realizuje i działa to szybciej, bo natywnie się kompiluje do kodu maszynowego oraz nie wprowadza artefaktów (harmonicznych) przy bardzo szybkim przełączaniu portów.
Ale Arduino to nie konkretna Atmega328, tylko czarna skrzynka z pewną ilością wejść i wyjść, ponumerowanych od zera w górę i podobnie, z przedrostkiem "A", dla spełniających alternatywnie funkcje wejść analogowych. Wszyscy na świecie mówią na to porty i używają oznaczeń zgodnych z definicją Arduino. Działa to identycznie po wymianie mikrokontrolera na zupełnie inny, nie tylko innego producenta, ale wyprodukowanego w innej architekturze. Wchodzenie w natywne opisy portów nie tylko nie ma sensu, ale jest przyczyną rozwalania kompatybilności oprogramowania.
@ Nie wiem czemu się upierasz na siłę. Nawet w tym języku arduino masz specjalne funkcje do obsługi portów a nie tylko wejść/wyjść i to też jest przenoszalne o ile porty się zgadzają. Czytanie czy zapisywanie wejść/wyjść a czytanie portów to kompletnie inna operacja kompilowana do innego kodu maszynowego i przy wielu projektach na tak prostej implementacji mikrokontrolera jak Arduino, ma to znaczenie. Przykładowo, bo realizujesz przykłady, Ta Atmega328 nie ma przetwornika DAC. Są w DUE, ale nie ma to znaczenia. Na jednym porcie można łatwo zrealizować prosty DAC. Nie zrobisz tego jednak zapisując dane do wyjść tylko misisz zapisywać porty. Wtedy pracujesz na portach, nawet w Arduino. A to co mówisz to są tak na prawdę GPIO "Twojej czarnej skrzynki" (general-purpose input/output) a nie porty.
I co to wnosi do projektu? Czy od słów GPIO, DAC, DUE, Atmega328, kod maszynowy i podobnych ktoś będzie lepiej sterował diodami? To jest film dla początkujących, którym wystarczy 14 portów ogólnych i 8 analogowych, a najważniejsze jest zrozumienie algorytmów - w tym wypadku pracy nieliniowej oraz dzielenia zakresów. Naprawdę zęby zjadłem na asemblerze i bezpośrednim odwoływaniu się do każdej części mikrokontrolera i dziś już wiem co jest istotne, a co służy tylko udawaniu mądrego. To nie są czasy adresacji bezpośredniej, dziś inaczej się już pracuje "niskopoziomowo" i większość współczesnych mikroelektroników nie musi nic wiedzieć o rzeczywistej budowie danej architektury. Jak będziemy budować sterownik zasilacza impulsowego - owszem, ale nie będziemy.
Przypomnę raz jeszcze: port to złącze, przez które urządzenie może kontaktować się ze światem zewnętrznym. W tym sensie Arduino Nano posiada 22 porty, nie licząc resetu, zasilania itp.
Adaś odkrył LEDki. :D
Dwukrotne powtórzenie żartu nie sprawi, że w końcu kogoś rozbawi. Może dlatego, że w tej serii wcale nie chodzi o ledki, tylko o metody.
@ Coś taki sztywny, teraz wiem kto zminusował poprzednią moja wypowiedź, więcej luzu Adasiu ;)
Nie wiem, nie używam minusów.