Spisu treści:
Wideo: Zmień kolory LED za pomocą POT i ATTINY85: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
W tym projekcie używamy potencjometru (POT) do zmiany kolorów w LED za pomocą ATTINY85.
Niektóre definicje -
Potencjometr to urządzenie z małą śrubką/mechanizmem obrotowym, które po obróceniu wytwarza różne rezystancje elektryczne. Na powyższym obrazku z adnotacjami widać, że POT ma 3 piny, a mianowicie +, - i wyjście. POT jest zasilany przez podłączenie pinów + i - odpowiednio do vcc i uziemienia na zasilaczu. Gdy śruba POT jest obracana, rezystancja wyjściowa zmienia się i powoduje zmniejszenie lub zwiększenie intensywności diody LED.. Innymi słowy jest to rezystor zmienny. Są używane w takich rzeczach jak domowe ściemniacze światła.
LED - Jest to małe światło, które zapala się, gdy przepływa przez nie prąd elektryczny. W tym przypadku użyjemy wielokolorowej diody LED, która ma 3 styki, jedną masę (środek) i dwa styki, które po uruchomieniu pokazują się odpowiednio na zielono i czerwono.
ATTINY85 - jest to mały, tani mikrochip, który można programować jak Arduino.
Przegląd - Wyjście z POT jest podłączone do ATTINY85. Gdy śruba POT jest obracana, różnica rezystancji jest wyprowadzana jako liczba od 0 do 255. ATTINY może to zmierzyć i podjąć różne działania w zależności od wartości rezystancji POT. W tym przypadku zaprogramowaliśmy go tak, aby łączył się z diodą LED w następujący sposób.
Jeśli liczba jest większa niż 170, przełącz diodę na ZIELONĄ.
Jeśli liczba jest mniejsza niż 170, ale większa niż 85, przełącz diodę LED na CZERWONĄ.
jeśli liczba jest mniejsza niż 85, włącz ZIELONĄ I CZERWONĄ DIODĘ, co spowoduje kolor POMARAŃCZOWY.
BOM
1 x 3 pin LED1 x ATTINY 85
1 x garnek (B100K)
1 x płytka stykowa i kable
1 zasilacz.
Krok 1: Programowanie ATTINY85
Jeśli chodzi o programowanie ATTINY85, zapoznaj się z moją poprzednią instrukcją -
Kod pokazano poniżej. Należy zauważyć, że dwa piny ATTINY, PB3, fizyczny pin 2, PB2, fizyczny pin 7 są połączone w trybie cyfrowym z diodą LED, aby zmienić kolor. ATTINY pin PB4, fizyczny pin 3, jest podłączony do POT w trybie analogowym, co oznacza, że może odczytywać wartości od 0 do 254. Spersonalizowałem kod, który znalazłem w internecie, więc potwierdzam, że działa. -
void initADC(){ // *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ============= =========================================================== ============================== // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [1]* [8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) // * ** (PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/ DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0) // *** //pb4 - wejście dla POT //pb3 led pin 1 //pb2 led pin 3 // ATTINY 85 częstotliwość ustawiona na 8 MHz /* ta funkcja inicjuje ADC
Uwagi dotyczące wstępnego skalowania ADC:
Preskaler ADC musi być ustawiony tak, aby częstotliwość wejściowa ADC mieściła się w zakresie 50 - 200 kHz.
Aby uzyskać więcej informacji, patrz tabela 17.5 „Wybór preskalera ADC” w rozdziale 17.13.2 „ADCSRA – Rejestr kontroli i stanu ADC A” (strony 140 i 141 w pełnej karcie katalogowej ATtiny25/45/85, wersja 2586M–AVR–07/ 10)
Prawidłowe wartości preskalera dla różnych częstotliwości zegara
Zegar Dostępne wartości preskalera --------------------------------------- 1 MHz 8 (125kHz), 16 (62,5 kHz) 4 MHz 32 (125 kHz), 64 (62,5 kHz) 8 MHz 64 (125 kHz), 128 (62,5 kHz) 16 MHz 128 (125 kHz)
Poniższy przykład ustaw preskaler na 128 dla mcu działającego przy 8 MHz
(sprawdź w arkuszu danych właściwe wartości bitów, aby ustawić preskaler) */
// 8-bitowa rozdzielczość
// ustaw ADLAR na 1, aby włączyć wynik przesunięcia w lewo (dostępne są tylko bity ADC9.. ADC2) // wtedy tylko odczyt ADCH jest wystarczający dla wyników 8-bitowych (256 wartości) DDRB |= (1 << PB3); //Pin jest ustawiony jako wyjście. DDRB |= (1 << PB2); //Pin jest ustawiony jako wyjście. ADMUX = (1 << ADLAR) | // wynik przesunięcia w lewo (0 << REFS1) | // Ustawia ref. napięcie do VCC, bit 1 (0 << REFS0) | // Ustawia ref. napięcie do VCC, bit 0 (0 << MUX3) | // użyj ADC2 dla wejścia (PB4), MUX bit 3 (0 << MUX2) | // użyj ADC2 dla wejścia (PB4), MUX bit 2 (1 << MUX1) | // użyj ADC2 dla wejścia (PB4), MUX bit 1 (0 << MUX0); // użyj ADC2 dla wejścia (PB4), MUX bit 0
ADCSRA =
(1 << ADEN) | // Włącz ADC (1 << ADPS2) | // ustaw preskaler na 64, bit 2 (1 << ADPS1) | // ustaw preskaler na 64, bit 1 (0 << ADPS0); // ustaw preskaler na 64, bit 0 }
int główny (unieważniony)
{ initADC();
póki(1)
{
ADCSRA |= (1 << ADSC); // rozpocznij pomiar ADC while (ADCSRA & (1 << ADSC)); // poczekaj na zakończenie konwersji
jeśli (ADCH > 170)
{ PORTB |= (1 << PB3); //Przypnij ustawiony na WYSOKI. PORTB |= (1 << PB2); //Przypnij ustawiony na WYSOKI. } else if (ADCH 85) { PORTB |= (1 << PB3); //Przypnij ustawiony na WYSOKI. PORTB &= ~(1 << PB2); //Pin ustawiony na LOW
} w przeciwnym razie {
PORTB |= (1 << PB2); //Przypnij ustawiony na WYSOKI. PORTB &= ~(1 << PB3); //Pin ustawiony na LOW
}
}
zwróć 0;
}
Krok 2: Obwód
Szpilki ATTINY
PB3, fizyczny pin 2 - podłączony LED pin 1
PB4, fizyczny pin 3, jest podłączony do środkowego pinu POT
GND, fizyczny pin 4, jest podłączony do szyny ujemnej - zasilanie
PB2, fizyczny pin 7 - podłączony LED pin 3
VCC, fizyczny pin 8, jest podłączony do szyny dodatniej - zasilanie
GARNEK
pos i neg pin podłączone do odpowiednich szyn - zasilanie.
PROWADZONY
środkowy pin połączony z szyną ujemną - zasilanie
Eksperymentowałem z zasilaczem 3 i 3,3 V i oba działały.
Krok 3: Wniosek
Zdolność ATTINY85 do przechodzenia między trybem analogowym i cyfrowym jest bardzo potężna i może być wykorzystywana w wielu różnych aplikacjach, np. napędzanie silników o zmiennej prędkości i tworzenie nut. Zbadam to w przyszłych instrukcjach. Mam nadzieję, że okazało się to przydatne.
Zalecana:
FuseLight: Zmień stary/stopiony Tubelight w Studio/Party Light: 3 kroki (ze zdjęciami)
FuseLight: Turn Old/Fused Tubelight Into Studio/Party Light: Tutaj zmieniłem Fused Tubelight w Studio/Part light za pomocą kilku podstawowych narzędzi, świateł rgb i drukowania 3D. Dzięki zastosowanym taśmom LED RGB możemy mieć wiele kolorów i odcieni
Zmień Raspberry Pi w Beacon Bluetooth: 4 kroki
Zmień Raspberry Pi w Bluetooth Beacon: Bluetooth to jedna z innowacyjnych technologii do bezprzewodowego przesyłania danych, budowania systemów automatyki domowej, sterowania innymi urządzeniami itp. W tej instrukcji postaram się zamienić Raspberry Pi w Bluetooth Beacon. Wymagania Raspberry PiBleuIO (Bl
Kolory Rainbow-Tinkercad: 4 kroki
Kolory Rainbow-Tinkercad: Witam! Im Kalani Tops, a dzisiaj zaprezentuję swój własny projekt, który również możesz zrobić, jeśli masz to, czego potrzeba. Uczyniłem ten projekt szczególnie łatwym, ponieważ jestem wolny, a inni ludzie, którzy mogliby to przeczytać, mogą być tacy jak ja! Więc
Arduino RGB Color Picker – Wybierz kolory z rzeczywistych obiektów: 7 kroków (ze zdjęciami)
Arduino RGB Color Picker – Wybierz kolory z rzeczywistych obiektów: Łatwo wybieraj kolory z obiektów fizycznych za pomocą tego próbnika kolorów RGB opartego na Arduino, co pozwala odtworzyć kolory, które widzisz w rzeczywistych obiektach na komputerze lub telefonie komórkowym. Wystarczy nacisnąć przycisk, aby zeskanować kolor obiektu za pomocą taniego TCS347
Kolory fotonów: 3 kroki
Kolory fotonów: kolory fotonów Ten obraz zmienia się z każdą chwilą jak nowy. Rzeczy, których używam: Adafruit NeoPixel Digital RGB LED Strip 144 LED×2 szkło akrylowe/ 1 cm grubości Zestaw szpuli Adafruit Hook-up Wire Adafruit Perma-Proto Half-size Płytka prototypowa PCB Adafruit R