Spisu treści:

Mikser kolorów z Arduino: 9 kroków (ze zdjęciami)
Mikser kolorów z Arduino: 9 kroków (ze zdjęciami)

Wideo: Mikser kolorów z Arduino: 9 kroków (ze zdjęciami)

Wideo: Mikser kolorów z Arduino: 9 kroków (ze zdjęciami)
Wideo: Ups. 2024, Lipiec
Anonim
Image
Image

By tliguori330Obserwuj Więcej autora:

Kula kolorów z Arduino
Kula kolorów z Arduino
Doodle Bot z procesem projektowania
Doodle Bot z procesem projektowania
Doodle Bot z procesem projektowania
Doodle Bot z procesem projektowania
Pianino dotykowe Arduino
Pianino dotykowe Arduino
Pianino dotykowe Arduino
Pianino dotykowe Arduino

O: Ciągle się uczę….. Więcej o tliguori330 »

Mikser kolorów to świetny projekt dla każdego, kto pracuje i rozwija się z Arduino. Pod koniec tej instrukcji będziesz mógł mieszać i dopasowywać prawie każdy kolor, jaki można sobie wyobrazić, obracając 3 pokrętła. Poziom umiejętności jest na tyle niski, że nawet kompletny nowicjusz może go pomyślnie ukończyć, ale także na tyle interesujący, aby sprawić przyjemność doświadczonemu weterynarzowi. Koszt tego projektu jest znikomy, a większość zestawów Arduino zawiera potrzebne materiały. Rdzeniem tego kodu jest kilka podstawowych funkcji arduino, które każdy używający arduino będzie chciał zrozumieć. Zagłębimy się w funkcje analogRead() i analogWrite(), podobnie jak w przypadku innej zwykłej funkcji o nazwie map(). Te linki prowadzą do stron referencyjnych arduino dla tych funkcji.

Krok 1: Części i komponenty

Części i komponenty
Części i komponenty
Części i komponenty
Części i komponenty
Części i komponenty
Części i komponenty
Części i komponenty
Części i komponenty

Arduino Uno

Potencjometr (x3)

LED RGB

Rezystor 220 omów (x3)

Przewody połączeniowe (x12)

Deska do chleba

Krok 2: Zaplanuj swoje postępy

Zaplanuj swoje postępy
Zaplanuj swoje postępy

Zaplanowanie realizacji projektu może być bardzo pomocne. Kodowanie polega na logicznym przejściu od jednego kroku do następnego. Stworzyłem schemat blokowy, który przedstawia, w jaki sposób chcę, aby mój szkic działał. Ogólnym celem jest posiadanie 3 pokręteł (potencjometrów) kontrolujących każdy z trzech kolorów diody LED RGB. W tym celu będziemy musieli stworzyć szkic pasujący do schematu blokowego. Będziemy chcieli….

1) Odczytaj 3 różne potencjometry i zapisz ich wartości w zmiennych.

2) Przekonwertujemy te wartości, aby pasowały do zakresu LED RGB.

3) Następnie w końcu napiszemy te przekonwertowane wartości do każdego z kolorów RGB.

Krok 3: Jak korzystać z potencjometrów

Jak korzystać z potencjometrów
Jak korzystać z potencjometrów
Jak korzystać z potencjometrów
Jak korzystać z potencjometrów

Potencjometr, jeden z najbardziej podstawowych elementów w zestawach elektronicznych, może być używany w wielu różnych projektach. potencjometry działają poprzez umożliwienie użytkownikowi fizycznej zmiany rezystancji obwodu. Najbardziej farmilarnym przykładem potencjometru jest ściemniacz światła. przesuwanie lub obracanie pokrętła zmienia długość obwodu. dłuższa ścieżka powoduje większy opór. Zwiększona rezystancja odwrotnie obniża prąd i światło przygasa. Mogą mieć różne kształty i rozmiary, ale większość ma tę samą podstawową konfigurację. Student poprosił o pomoc w naprawie gitary i okazało się, że gałki na niej są dokładnie takie same jak potencjometry. Ogólnie rzecz biorąc, zewnętrzne nogi były podłączone do 5 woltów i uziemienia, a środkowa noga była podłączona do pinu analogowego, takiego jak A0

Krok 4: Schemat okablowania potencjometru (3x)

Schemat okablowania potencjometru (3x)
Schemat okablowania potencjometru (3x)
Schemat okablowania potencjometru (3x)
Schemat okablowania potencjometru (3x)
Schemat okablowania potencjometru (3x)
Schemat okablowania potencjometru (3x)

Najbardziej lewa noga będzie podłączona do 5V, a prawa noga będzie podłączona do GND. Możesz odwrócić te dwa kroki i nie zaszkodzi to zbytnio projektowi. Jedyne, co by się zmieniło, to przekręcenie gałki do końca w lewo, a nie do końca, będzie pełna jasność. Środkowa noga zostanie podłączona do jednego z pinów analogowych Arduino. Ponieważ będziemy mieli trzy pokrętła, będziemy chcieli potroić pracę, którą właśnie wykonaliśmy. Każde pokrętło wymaga 5V i GND, więc można je dzielić za pomocą płytki do krojenia chleba. Czerwony pasek na płytce do krojenia chleba jest podłączony do 5 V, a niebieski pasek jest podłączony do masy. Każde pokrętło potrzebuje własnego pinu analogowego, więc są podłączone do A0, A1, A2.

Krok 5: Używanie AnalogRead() i zmiennych

Po prawidłowym ustawieniu potencjometru jesteśmy gotowi do odczytania tych wartości. Kiedy chcemy to zrobić, używamy funkcji analogRead(). Prawidłowa składnia to analogRead(pin#); więc aby odczytać nasz środkowy potencjometr, użylibyśmy analogRead(A1); Aby pracować z liczbami przesyłanymi z pokrętła do Arduino, będziemy chcieli również zapisać te liczby w zmiennej. Wiersz kodu wykona to zadanie, gdy odczytamy potencjometr i zapiszemy jego aktualny numer w zmiennej całkowitej „val”

int val = odczyt analogowy(A0);

Krok 6: Korzystanie z monitora szeregowego z 1 pokrętłem

Image
Image

Obecnie jesteśmy w stanie pobierać wartości z pokręteł i przechowywać je w zmiennej, ale byłoby pomocne, gdybyśmy mogli zobaczyć te wartości. W tym celu musimy skorzystać z wbudowanego monitora szeregowego. Poniższy kod to pierwszy szkic, który faktycznie uruchomimy w Arduino IDE, który można pobrać z ich strony. W void setup() aktywujemy analogowe piny podłączone do każdej środkowej nogi jako INPUT i aktywujemy monitor szeregowy za pomocą Serial.begin(9600); następnie odczytujemy tylko jedną z pokręteł i zapisujemy ją w zmiennej jak poprzednio. Zmiana polega na tym, że dodaliśmy wiersz, który wypisuje, jaki numer jest przechowywany w zmiennej. Jeśli skompilujesz i uruchomisz szkic, możesz otworzyć monitor szeregowy i zobaczyć liczby przewijające się na ekranie. Za każdym razem, gdy kod się zapętla, odczytujemy i drukujemy kolejną liczbę. Jeśli przekręcisz gałkę podłączoną do A0, powinieneś zobaczyć wartości z zakresu 0-1023. później celem będzie odczytanie wszystkich 3 potencjometrów, co wymagałoby jeszcze 2 odczytów analogowych i 2 różnych zmiennych do zapisania i wydrukowania.

pusta konfiguracja (){

pinMode(A0, WEJŚCIE); pinMode(A1, WEJŚCIE); pinMode(A2, WEJŚCIE); Serial.początek(9600); } void loop(){ int val = analogRead(A0); Serial.println(val); }

Krok 7: Korzystanie z diody LED RGB

Korzystanie z diody LED RGB
Korzystanie z diody LED RGB
Korzystanie z diody LED RGB
Korzystanie z diody LED RGB
Korzystanie z diody LED RGB
Korzystanie z diody LED RGB

4 Legged RGB LED to jeden z moich ulubionych komponentów dla Arduino. Uważam, że sposób, w jaki jest w stanie stworzyć nieskończone kolory z mieszanek 3 podstawowych kolorów jest fascynujący. Konfiguracja jest podobna do każdej zwykłej diody LED, ale tutaj w zasadzie mamy połączone razem czerwone, niebieskie i zielone diody LED. Każda z krótkich nóżek będzie kontrolowana przez jeden z pinów PWM na arduino. Najdłuższa noga będzie podłączona do 5 woltów lub uziemienia, w zależności od tego, czy masz wspólną anodę, czy wspólną katodę LED. Aby rozwiązać ten problem, musisz wypróbować oba sposoby. Będziemy już mieli 5v i GND podłączone do płytki stykowej, więc powinno być łatwe do zmiany. Powyższy schemat pokazuje również użycie 3 rezystorów. Właściwie często pomijam ten krok, ponieważ nie miałem, a dioda LED na mnie wypala.

Aby tworzyć kolory, użyjemy funkcji analogWrite(), aby kontrolować, ile dodać czerwonego, niebieskiego lub zielonego. Aby skorzystać z tej funkcji, musisz podać, z którym pinem będziemy rozmawiać oraz liczbę z zakresu 0-255. 0 jest całkowicie wyłączone, a 255 to największa ilość jednego koloru. Podłączmy czerwoną nogę do pinu 9, zieloną do pinu 10, a niebieską do pinu 11. Może to wymagać kilku prób i błędów, aby dowiedzieć się, która noga ma kolor. Gdybym chciał uzyskać fioletowy odcień, mógłbym zrobić dużo czerwieni, bez zieleni i być może w połowie intensywność niebieskiego. Zachęcam do majstrowania przy tych liczbach, to naprawdę ekscytujące. Kilka typowych przykładów znajduje się na powyższych zdjęciach

pusta konfiguracja (){

pinMode(9, WYJŚCIE); pinMode(10, WYJŚCIE); pinMode(11, WYJŚCIE); } void loop(){ analogWrite(9, 255); analogZapis(10, 0); analogZapis(11, 125) }

Krok 8: Używanie potencjometrów do sterowania diodą LED RGB (z jednym błędem)

Używanie potencjometrów do sterowania diodą LED RGB (z jednym błędem)
Używanie potencjometrów do sterowania diodą LED RGB (z jednym błędem)
Używanie potencjometrów do sterowania diodą LED RGB (z jednym błędem)
Używanie potencjometrów do sterowania diodą LED RGB (z jednym błędem)
Używanie potencjometrów do sterowania diodą LED RGB (z jednym błędem)
Używanie potencjometrów do sterowania diodą LED RGB (z jednym błędem)

Czas zacząć łączyć nasze dwa kody. Na standardowej płytce stykowej powinno być wystarczająco dużo miejsca, aby zmieścić wszystkie 3 pokrętła i diodę LED RGB. Pomysł polega na tym, że zamiast wpisywać wartości dla czerwonego, niebieskiego i zielonego, będziemy używać wartości zapisanych z każdego potencjometru do ciągłej zmiany kolorów. w tym przypadku będziemy potrzebować 3 zmiennych. redval, greenval, blueval to różne zmienne. Pamiętaj, że możesz nazwać te zmienne, co chcesz. jeśli obrócisz „zielone” pokrętło i zmieni się czerwona kwota, możesz zmienić nazwy, aby pasowały do poprawnie. możesz teraz obracać każdym pokrętłem i kontrolować kolory !!

pusta konfiguracja (){

pinMode(A0, WEJŚCIE); pinMode(A1, WEJŚCIE); pinMode(A2, WEJŚCIE); pinMode(9, WYJŚCIE); pinMode(10, WYJŚCIE); pinMode(11, WYJŚCIE); } void setup(){ int redVal = analogRead(A0); int greenVal = odczyt analogowy(A1); int blueVal = odczyt analogowy (A2); analogZapis(9, redVal); analogZapis(10, greenVal); analogZapis(11, blueVal); }

Krok 9: BONUS: Funkcja Map() i czystszy kod

Możesz zauważyć, że gdy zaczniesz kręcić pokrętłem o jeden kolor w górę, będzie on rósł, a następnie nagle opada. Ten wzór wzrostu, a następnie szybkiego wyłączania, powtarza się 4 razy, gdy przekręcisz pokrętło do końca. Jeśli pamiętasz, powiedzieliśmy, że potencjometry mogą odczytywać wartości od 0 do 1023. Funkcja analogWrite() akceptuje tylko wartości od 0 do 255. Gdy potencjometr przekroczy 255, w zasadzie zaczyna się od 0. Jest fajna funkcja, która pomaga w błąd o nazwie map(). możesz przekonwertować jeden zakres liczb na inny zakres liczb w jednym kroku. przekonwertujemy liczby od 0-1023 na liczby od 0-255. Na przykład, jeśli pokrętło jest ustawione w połowie, powinno być około 512. liczba ta zostanie zmieniona na 126, co stanowi połowę siły dla diody LED. W tym końcowym szkicu nazwałem szpilki nazwami zmiennymi dla mojej wygody. Masz teraz gotowy mikser kolorów do eksperymentowania!!!

// nazwy zmiennych dla pinów potencjometru

int redPot = A0; int greenPot = A1; int bluePot = A2 // nazwy zmiennych dla pinów RGB int redLED = 9; wewn zielonaLED = 10; wewn niebieskaLED = 11; void setup(){ pinMode(redPot, INPUT); pinMode(zielonyPOT, WEJŚCIE); pinMode (bluePot, INPUT); pinMode (czerwona dioda, WYJŚCIE); pinMode (zielona dioda LED, WYJŚCIE); pinMode (niebieska dioda LED, WYJŚCIE); Numer seryjny, początek(9600); } void loop(){ // odczyt i zapis wartości z potencjometrów int redVal = analogRead(redPot); int greenVal = analogRead(greenPot); int blueVal - analogRead(bluePot); //przekonwertuj wartości od 0-1023 do 0-255 dla diody LED RGB redVal = map(redVal, 0, 1023, 0, 255); greenVal = mapa(greenVal, 0, 1023, 0, 255); blueVal = mapa(blueVal, 0, 1023, 0, 255); // zapisz te przekonwertowane wartości do każdego koloru diody LED RGB analogWrite(redLED, redVal); anaogWrite(greenLED, greenVal); zapis analogowy(blueLED, blueVal); //pokaż wartości na monitorze szeregowym Serial.print("red:"); Serial.print(redVal); Serial.print("zielony:"); Serial.print(greenVal); Serial.print("niebieski:"); Serial.println(blueVal); }

Zalecana: