Przejdź do głównej zawartości

Posty

Programowanie AVR cz.8: Przetwornik analogowo-cyfrowy oraz modulacja szerokości impulsu.

Dziś kolejny wgląd w wyposażenie mikrokontrolera ATmega48P - tym razem przyglądamy się wbudowanemu w układ przetwornikowi analogowo-cyfrowemu oraz - dostępnej również w modelach ATtiny - modulacji szerokości impulsu realizowanej przez timery. Artykuł ten jest w pewnym sensie wstępem do następnego, który pojawi się już wkrótce, a którego tematykę zdradziłem na końcu. Przetwornik A-C (skrót spotykany w anglojęzycznej literaturze to ADC od Analog to Digital Converter ) to układ pozwalający na zamianę wartości napięcia (elektrycznego sygnału analogowego ;-)) na liczbę. W przypadku mojej ATmegi przetwornik ma rozdzielczość 10-bitową, co oznacza, że wartość napięcia podawanego na wejście przetwornika może być po konwersji zapisana jako liczba z przedziału od 0 do 1023 (musimy użyć zmiennej word do zapamiętania tej liczby). Jeśli jesteśmy w posiadaniu mikrokontrolera w obudowie PDIP 28-wyprowadzeniowej, to mamy do dyspozycji sześć kanałów (niezależnych wejść) przetwornika A-C, przyporzą...

Czego zazdroszczę amerykańskim kolegom?

Dlaczego akurat amerykańskim ? Nie wiem, ale jakoś tak większość książek informatycznych, jakie przewinęły mi się przez ręce, była napisana przez właśnie autorów ze Stanów. Bo znów bloguję o pisaniu książek. Informatycznych oczywiście. Zatem obiektem mojej zazdrości jest czas, który niejednokrotnie autorzy zza oceanu dostają od swoich wydawnictw na napisanie bądź dokończenie książki. Ileż to razy czytałem w jakże charakterystycznych dla autorów z Nowego Świata podziękowaniach dla żon, ojców, matek, mężów, przyjaciół itp. że są szalenie wdzięczni za cierpliwość, jaką wspomniane osoby miały dla nich przez cały rok , kiedy to ich myśli były skierowane wyłącznie na książkę, nad którą pracowali... Rok! Marzenie. Ja najwięcej czasu to chyba ze trzy miesiące miałem - nie pamiętam dokładnie, musiałbym rzucić okiem na umowy. Krótki czas jest z jednej strony uzasadniony - we współczesnej informatyce zmiany zachodzą tak szybko, że jeżeli wyda się książkę o danej technologii, oprogramowaniu, j...

Niesamowicie prosty czujnik zmierzchowy.

Tym razem zero programowania, będzie natomiast nostalgiczno-wspomnieniowy układzik, lekko zmodyfikowany. Otóż kilka dni temu rozmawialiśmy w gronie znajomych o różnego rodzaju czujnikach zmierzchowych i czujnikach ruchu. Ponieważ należę do tych wariatów, co to hołdują jeszcze owej przestarzałej i kompletnie odrealnionej dziś zasadzie: "po co kupować, gdy można zrobić", stwierdziłem, że poskładam takie coś (czujnik zmierzchowy; sensor ruchu faktycznie lepiej nabyć, choćby ze względu na rozmiary ;)) i być może podłączę do jakiegoś mikrokontrolera. Przypomniało mi się też przy okazji, że znalazłem ostatnio w elektronicznych śmieciach stary fotorezystor (dla niewtajemniczonych: element zmieniający rezystancję, czyli opór elektryczny, pod wpływem działania strumienia światła) RPP130, jeden z kilku pozostałych po montowanych wieki temu układach tranzystorowych do zdalnego sterowania pracą urządzeń za pomocą latarki... No OK, nie było to specjalnie rozbudowane zdalne sterowanie ;) ...

Programowanie AVR cz. 7: Mikroprocesorowy sterownik wyświetlacza alfanumerycznego LCD (układ HD44780 lub odpowiednik) z dostępem przez łącze szeregowe.

Podłączenie wyświetlacza alfanumerycznego na układzie HD44780 (lub podobnym) do mikrokontrolera wymaga użycia w najlepszym przypadku sześciu wyprowadzeń. Jeżeli musimy wykorzystać mały mikrokontroler, np. ATtiny2313, stracimy sporo linii, które mogłyby służyć do realizacji innych funkcjonalności. Zasygnalizował mi to swego czasu znajomy, który właśnie m. in. z tego powodu nie przepada za LCD. Można jednak wykonać małe obejście, które pozwoli na wykorzystanie do połączenia wyświetlacza z mikrokontrolerem dwie linie (czyli dwa wyprowadzenia), przy założeniu istnienia wspólnego obwodu zasilania. Z pomocą przychodzi nam sprzętowy port szeregowy UART, będący na wyposażeniu większości mikrokontrolerów AVR. Ma on ponadto kompletne wsparcie w BASCOMie, a podejrzewam, że jego wykorzystanie w języku C również nie nastręcza problemów. Założenie projektu, który przedstawiam w tym artykule, jest proste: zrealizować mikroprocesorowy sterownik wyświetlacza, który znaki do wyświetlania oraz zbiór po...

Programowanie AVR cz. 6: Czy ATmega z ATtiny mogą się jakoś dogadać?

Mogą. I to na wiele sposobów. Doświadczeni elektronicy od razu wskażą kilka - od prostego połączenia port-w-port począwszy. Jednym z elementów wyposażenia mikrokontrolerów AVR, a dokładniej moich dwóch modeli ATtiny2313 i ATmega48P, jest zrealizowany sprzętowo port UART , zgodny logicznie z RS232 (jeśli chodzi o całkowitą zgodność, konieczne jest użycie układu dopasowującego napięcia - można użyć tranzystorów lub MAX232). Obsługa tego portu w BASCOMie jest banalnie prosta. Posłużmy się przykładem. Niech ATmega będzie nadajnikiem, który wysyła przez łącze szeregowe, w odstępach co ok. pół sekundy, kolejne duże litery alfabetu łacińskiego (a przy okazji każdy wysłany znak sygnalizuje zapalająca się na chwilę dioda - schematu i konstrukcji układu z poprzedniego posta nie zmieniałem); wysyłanie liter uruchamiane jest przyciskiem. ATtiny zaś, wyposażony w wyświetlacz LCD, będzie odbiornikiem, który podczas oczekiwania na znak wyświetla napis "Ready...", po odbiorze znaku wyświe...