DAC w Arduino czyli Covox na ratunek

Wiele miejsca w różnych tutorialach poświęca się tematowi konwersji sygnałów analogowych na cyfrowe. Mówiąc inaczej  – o mierzeniu napięcia. Tym razem pomówimy o procesie odwrotnym, czyli zamianie wartości cyfrowej na analogową (napięcie).

Jak mierzeniem napięcia zajmują się przetworniki analogowo-cyfrowe (ADC – Analog Digital Converter), to w drugą stronę taki przetwornik nazywamy cyfrowo-analogowym (DAC – Digital Analog Converter). ADC znajdziesz w każdym praktycznie mikrokontrolerze. DAC już jest czymś rzadszym (ale np Teensy 3.2 ma taki jeden 12-sto bitowy).

Po co może być potrzebny DAC? Najczęściej gdy mowa jest o dźwięku. Jeśli obracamy się w kontekście Arduino, to ma ono przecież funkcje tone()  i można znaleźć wiele przykładów jak zagrać melodyjkę na buzzerze. Tak, tyle że tone generuje sygnał 0/1 z odpowiednią częstotliwością i buzzer  tak pobudzony wydaje dźwięki. Ale jeżeli zapragniemy sygnału o większych subtelnościach niż 0/5V to musimy zapomnieć o tej funkcji z Arduino.

Od razu powiem, że nie próbujemy tutaj stworzyć audiofilskiego urządzenia. Z wielu powodów sygnał będzie daleki od ideału, ale i tak dużo lepiej niż z jednym pinem i tone().

Czytaj dalej

Wyłącznik czasowy na NE555

Cześć! Dziś na blogu opiszemy sobie bardzo prosty układ często stosowany np. w wyłącznikach schodowych – kiedy wciśniemy przycisk zapali nam się światło i zgaśnie samoczynnie po ustalonym czasie. Tym przykładem chciałbym Wam pokazać, że nie zawsze aby zrobić proste urządzenie trzeba zaprzęgać do niego całe Arduino lub inny programowalny mikrokontroler, czyli prościej mówiąc nie strzelajmy z armaty do komara :)

Czytaj dalej

Projekt: Sterownik pasków RGBW cz. 1

Hej! W dzisiejszym artykule zaczniemy realizację kolejnego projektu od schematu ideowego aż do finalnego produktu. Tym razem zajmiemy się wykonaniem sterownika do pasków ledowych (np. do zamontowania w roli dekoracji w jakimś pomieszczeniu). W pierwszej części zaprojektujemy płytkę drukowaną oraz napiszemy kod na Arduino, dzięki któremu będziemy mogli regulować jasność, natężenie oraz barwę światła. W drugiej części do sterownika dorobimy aplikację na system Android, za pomocą której będziemy mogli ustawić dowolny kolor.

Czytaj dalej

NodeMCU i SDS011 jako badacz jakości powietrza

SDS011 to dobry czujnik pyłów zawieszonych, podaje dane dla PM2.5 i PM10. Ostatnio wśród nas wzrosła świadomość zanieczyszczeń pyłami, więc pojawiło się trochę zapytań jak korzystać z tego czujnika. Większość przykładów jakie można znaleźć jednak wykorzystują Raspberry Pi. Koszt Raspberry to co najmniej drugie tyle co sam sensor, tymczasem w wielu przypadkach zależy nam na pomiarze i przekazaniu danych do chmury. W takim przypadku nie potrzebujemy całego Raspberry, to co ma od zaoferowania nodeMCU w zupełności /wystarczy.

NodeMCU, SDS011 – prosta stacja pomiaru jakości powietrza

Dlatego tym razem pokaże Wam jak zbudować taki sensor w oparciu o te dwa elementy – nodeMCU i SDS011. Planuję w przyszłości projekt poprawić, bo ma teraz kilka wad. Podstawowa kwestia to jest wilgotność – czujnik przy wilgotności ponad 70% przekłamuje wyniki, dlatego by w dokonywać wiarygodnych pomiarów, nasz układ potrzebuje elementu ogrzewającego napływające powietrze. W tej wersji zupełnie to pomijamy, jedyne co potrzebujemy to wiedza jaka jest wilgotność, by móc odrzucić pomiary przy wilgotności przekraczającej 70%. Ale z pominięciem tego wystarczy powiesić na uchylonym oknie by mieć z grubsza świadomość tego co się dzieje…

Czytaj dalej

Pong na wyświetlaczu SSD1306

Niedawno na blogu ukazał się wpis opisujący jak podłączyć oraz obsługiwać wyświetlacz z kontrolerem SSD1306 do Arduino. Korzystając z okazji, że akurat miałem pod ręką bardzo podobny wyświetlacz postanowiłem zrobić prostą implementację gry Pong. Mój wyświetlacz różni się tym, że jest jednokolorowy i wysoki na 32 pixele, a nie 64. Nie stanowi to jednak żadnej przeszkody, gdyż napisany przeze mnie kod będzie można łatwo przenosić pomiędzy różnymi rozmiarami ekranów :)

Czytaj dalej

Podłączamy starą klawiaturę do Arduino

Robiąc ostatnio porządki w swoich rzeczach wygrzebałem wśród morza elektroniki starą klawiaturę do komputera, taką ze złączem PS/2. Od razu pomyślałem, że pewnie dałoby się ją jakoś wykorzystać i nie myliłem się. Po zrobieniu małego researchu w internecie znalazłem opis działania portu PS/2 i okazało się, że jest on banalnie prosty w implementacji na Arduino. Zobaczmy więc z czym to się je :)

Czytaj dalej

Poprawianie dobrego, czyli LCD Shield i Nettigo Keypad

Odświeżałem ostatnio bibliotekę do Keypada, tak by pracowała łatwiej z LCD Shieldem lub innymi niestandardowymi klawiaturami opartymi o dzielnik napięcia. O jakie klawiaturki chodzi?

Klawiatura taka, to szereg rezystorów, każdy kolejny zwarty przez przycisk do masy. Jeśli odczytamy napięcie między rezystorem R1 a R2, to będzie się zmieniało w zależności od tego który przycisk jest załączony. Górny rezystor zostaje cały czas włączony, a liczba dolnych się zmienia. W szczególności gdy zewrzemy pierwszy przycisk (PRAWO), to będzie tam napięcie 0 -bo przycisk zewrze wszystkie rezystory R2-R5 do masy. Gdy wciśniemy drugi przycisk napięcie będzie zależne od dzielnika R1/R2, rezystory R3-R5 będą zwarte. Gdy wciśniemy DÓŁ napięcie zależy od wartości R1/(R2+R3), R4 i R5 – zwarte. Co nam z tego?

Czytaj dalej

Menu na wyświetlaczu 16×2

Bardzo często robiąc jakiś projekt zachodzi konieczność zaimplementowania interfejsu do komunikacji człowiek-urządzenie.  W prostych konstrukcjach z reguły wystarcza kilka pirzycisków i świecących diod, jednak gdy robimy bardziej zaawansowane urządzenie warto byłoby zastanowić się, czy nie wygodnie byłoy dodać wyświetlacz LCD i zrobić na nim menu w którym pomieścimy tyle ustawień na ile nam pamięć kontrolera pozwoli.

Czytaj dalej