Tag: howto

Płynna zmiana koloru diody RGB w Arduino

Często podłączając diodę RGB do Arduino chcemy wysterować ją tak, aby świeciła nie tylko w jednym z kilku podstawowych kolorów, ale w jednym z ponad 16 milionów. W niektórych przypadkach dobrze by było także, gdyby kolory zmieniały się płynnie (np. w sterownikach oświetlenia). Dziś napiszemy prostą klasę, która zapewni nam wysokopoziomowe metody do sterowania kolorem takiej diody.

Czytaj dalej...

Jak poradzić sobie z czasem na Arduino

Zmagania z czasem na Arduino potrafią uprzykrzyć życie, zwłaszcza początkującym. O czym piszę? O działaniach które mają być wykonywane przez jakiś czas albo dopiero po upłynięciu jakiegoś czasu. Pierwsze podejście, kogoś kto rozpoczął swoją przygodę z Arduino będzie pewnie próba użycia delay. Hej, kto z nas tego nie próbował… Problem pojawia się wtedy gdy nasze Arduino musi coś robić w czasie czekania. A delay… no cóż, czekanie z delay to jest jedyna rzecz jaką może robić Arduino  na raz. Jak sobie poradzić z oczekiwaniem gdy musimy robić kilka rzeczy na raz? By nie gadać po próżnicy, omówmy to na konkretnym

Czytaj dalej...

Jak dogadać się z Attiny

Z poprzedniej lekcji wiesz już, jak podłączyć i zaprogramować Attiny2313. Układ nawet autonomicznie daje dużo ciekawych możliwości, ale jeszcze lepiej wypada w kooperacji! W skrócie rzecz ujmując zamierzam przybliżyć sposób na to, jak wydawać komendy dla Attiny poprzez I2C(TWI) (na przykład z poziomu Arduino)

Czytaj dalej...

Attiny 2313 i Arduino IDE

Wiem, że był już jeden opis jak zacząć programować Attiny. Brakowało mu jednak znajomego środowiska Arduino IDE, sprawdzonych i dobrze znanych komend i prostoty kompilacji. Czyli tego, za co kochamy Arduino! Okazuje się, że nie tylko mnie to bolało. Grupa ludzi wyprodukowała „plugin” do Arduino IDE, który oferuje w miarę prosty sposób przejścia ze starej dobrej, ale często aż za dużej Atmegi na Attiny. Poniżej postaram się najjaśniej jak potrafię opisać cały proces.

Czytaj dalej...

Potencjometr

Dziś wpis dla nieco mniej zaawansowanych adeptów elektroniki – potencjometr. Potencjometr to urządzenie, które większość z nas kojarzy z gałką wystająca z radia i służącą do regulacji głośności. Dziś w dobie układów cyfrowych nie stosuje się go zbyt często. Jednak urządzenie to ma swój urok i tam gdzie potrzebna jest płynna „analogowa” regulacja, tam sprawdza się znakomicie. Jeśli na przykład grywasz na konsoli, to tam najpopularniejszym obecnie kontrolerem jest gamepad. W gamepadzie są analogowe gałki, które też często składają się z 2 potencjometrów. Jeden dla osi poziomej, a drugi dla pionowej. Dzięki nim granie staje się bardziej precyzyjne niż na

Czytaj dalej...

Komunikacja układów 3,3V i 5V

Wstęp Podczas rozwoju podzespołów elektronicznych, wraz z ich przyśpieszaniem i zmniejszaniem poboru energii, zmieniały się też standardy w jakich te układy pracowały. Obecnie w elektronice amatorskiej (także w Arduino) panuje standard 5V. Oznacza to, że zasilanie układów scalonych i ich stany logiczne odnoszą się właśnie do tego napięcia. Wiadomo, że stan niski “LOW” to GND, a stan wyoki “HIGH” to napięcie w okolicach 5V. Coraz częściej spotyka się układy scalone pracujące w standardzie 3,3V. Oznacza to, że ich zasilanie i stany logiczne nie pasują do obecnych rozwiązań. W tym wpisie dowiesz się jak sprawić, by urządzenia obydwu standardów mogły się

Czytaj dalej...

TLC5940 czyli co najmniej 16 dodatkowych pinów PWM w Arduino

TLC5940 to układ scalony zawierający 16 wyjść PWM. Generator PWM układu ma rozdzielczość 12 bitów czyli 4096 stopni wypełnienia. Jedną z głównych zalet tego chipu jest możliwość podłączenia do jego wyjść bezpośrednio diod LED (bez rezystorów). Jego wyjścia mogą wytrzymać do 120 mA obciążenia. Wyprowadzenia układu TLC5940

Czytaj dalej...

Sygnalizator revisited czyli przyciski i debouncing

Dawno temu pisałem o tym jak można korzystać z przycisków (tactile switch, pushbutton) na przykładzie kartonowego sygnalizatora. Wróćmy do tematu, tym razem na poważniej zajmując się przyciskami. Jeśli spojrzycie na kod tamtego sygnalizatora, możecie dostrzec następującą pętlę loop: void loop() {   val = digitalRead(buttonPin);   if (val == HIGH && prev == LOW) {     next_status();   }   prev = val;   display_status();   delay(50); } Wykrywanie naciśnięcia odbywa się przez porównanie bieżącej wartości wejścia cyfrowego z poprzednią. Jeżeli aktualna wartość to HIGH a poprzednia to LOW, to wykonujemy akcję next_status(), która zmienia stan sygnalizatora. I wszystko działa. Ale nie ma problemów, tylko dzięki ostatniej linii kodu w loop:

Czytaj dalej...

Rezystor – co o nim trzeba wiedzieć

Rezystory to jeden z podstawowych elementów wszystkich układów elektronicznych. Jako, że jest to element naprawdę podstawowy i powszechny, spróbujemy się o nim dowiedzieć kilku rzeczy. Teoria związana z przepływem prądów w układach RLC (R – rezystory, L – cewki, C – kondensatory) jest cała najeżona wzorami, których nie chcecie widzieć :) (a jeżeli ktoś musi się przekonać to np zobaczcie to i wrócicie zaraz tutaj :) ). Teraz podam kilka uproszczeń, które wystarczą do zmierzenia się z użyciem rezystorów w kontekście Arduino. Ważną cechą układów elektronicznych jest to, że jeżeli mamy jakieś napięcie w układzie (coś je wytwarza), to jeżeli

Czytaj dalej...