Serwisy partnerskie:
Close icon
Serwisy partnerskie

Wprowadzenie do ATmega328

Article Image
Pełny poradnik, krok po kroku wprowadzający do ATmega328.
1. Praktyczny Kurs Arduino - przewodnik po artykułach składających się na kurs 2. Czym jest Arduino? 3. Porównanie Arduino z Raspberry Pi 4. Instalacja sterownika Arduino w systemie Windows 5. Generowanie pliku hex w Arduino 6. Jak wgrać bootloader w Atmega328? 7. Rozpoczęcie pracy z oprogramowaniem Arduino 8. Rozpoczęcie programowania w Arduino 9. Programowe resetowanie Arduino 10. Wprowadzenie do Arduino UNO 11. Wprowadzenie do Arduino NANO 12. Wprowadzenie do Arduino Pro Mini 13. Wprowadzenie do Arduino Mega 2560 14. Wprowadzenie do Arduino Due 15. Wprowadzenie do Arduino Lilypad 16. Wprowadzenie do ATmega328 17. Biblioteka Arduino dla Proteusa 18. Projekt płytki drukowanej Arduino UNO dla Proteus ARES 19. Biblioteka Arduino Lilypad dla Proteusa 20. Odczyt z portu szeregowego Arduino 21. Projektowanie układów LCD z Arduino 22. Łączenie klawiatury z Arduino 23. Wartość ADC na LCD przy użyciu Arduino 24. Symulacja czujnika ultradźwiękowego w Proteusie 25. Połączenie czujnika ultradźwiękowego z Arduino 26. Wiele czujników ultradźwiękowych z Arduino 27. Czujnik temperatury 18B20 z Arduino 28. Jak używać 18B20 w Proteus ISIS? 29. Łączenie LM35 z Arduino w Proteusie 30. Współpraca siedmiosegmentowego wyświetlacza z Arduino w Proteusie 31. Łączenie czujnika PIR z Arduino 32. Współpraca czujnika płomienia z Arduino 33. Interfejs NRF24L01 z Arduino 34. NRF24L01+ i Arduino - Response Timed Out 35. Połączenie RFID RC522 z Arduino 36. Komunikacja Bluetooth z Arduino przy użyciu HC05 37. Sterowanie serwomotorem za pomocą Arduino w Proteusie 38. Projekt sterowania sygnalizacją świetlną przy użyciu Arduino 39. Przewijanie tekstu na matrycy LED 8×8 z użyciem Arduino 40. Inteligentny system oszczędzania energii 41. Komunikacja USB pomiędzy Androidem i Arduino 42. Automatyka domowa z użyciem XBee i Arduino 43. Domowy system bezpieczeństwa oparty na GSM 44. Wysyłanie SMS-ów za pomocą Arduino UNO i SIM900 45. Odbieranie SMS-ów za pomocą komend AT przy użyciu Arduino 46. Projekt rozpoznawania głosu przy użyciu EasyVR Shield 47. Rozpoczęcie pracy z programem EasyVR Commander 48. Połączenie EasyVR z Arduino UNO 49. Błąd szkolenia - niepowodzenie rozpoznawania w EasyVR 50. Połączenie XBee z komputerem 51. Wprowadzenie do modułu XBee 52. Interfejs XBee z Arduino 53. Rozpoczęcie pracy z kamerą Pixy 54. Jak zainstalować oprogramowanie kamery Pixy - PixyMon 55. Aktualizacja firmware kamery Pixy do najnowszej wersji 56. Jak wytrenować kamerę Pixy za pomocą komputera 57. Sterowanie kierunkiem obrotu silnika prądu stałego za pomocą Arduino 58. Sterowanie prędkością obrotów silnika prądu stałego za pomocą Arduino 59. Sterowanie kierunkiem obrotu silnika krokowego za pomocą Arduino 60. Sterowanie prędkością obrotów silnika krokowego za pomocą Arduino 61. Pobieranie danych z serwera internetowego za pomocą Arduino Wi-Fi 62. Wprowadzenie do Arduino YUN 63. Dostęp do serwera Linux Arduino YUN za pomocą Putty
Rozwiń cały spis treści Zwiń spis treści

Witam wszystkich!

Mam nadzieję, że u was wszystko w porządku i będziecie się dobrze bawić.

Dzisiaj, zamierzam przedstawić wam szczegółowe wprowadzenie do ATmega328. ATmega328 jest mikrokontrolerem typu AVR (Advanced Virtual RISC). Obsługuje on 8-bitowe przetwarzanie danych. ATmega328 posiada 32 KB wewnętrznej pamięci flash.

ATmega328 posiada 1 KB pamięci EEPROM (Electrically Erasable Programmable Read-Only Memory). Ta właściwość pokazuje, że jeśli zasilanie elektryczne dostarczane do mikrokontrolera jest usunięte, nawet wtedy może on przechowywać dane i może dostarczać wyniki po dostarczeniu mu zasilania elektrycznego. Ponadto ATmega328 posiada 2 KB pamięci SRAM (Static Random Access Memory). Inne cechy zostaną wyjaśnione później. ATmega328 posiada kilka różnych cech, które sprawiają, że jest to najpopularniejsze urządzenie na dzisiejszym rynku. Cechy te składają się z zaawansowanej architektury RISC, dobrej wydajności, niskiego zużycia energii, timera czasu rzeczywistego z oddzielnym oscylatorem, sześciu pinów PWM, programowalnego szeregowego USART, blokady programowania dla bezpieczeństwa oprogramowania, przepustowości do 20 MIPS itp. Kolejne szczegóły dotyczące ATmega 328 zostaną podane w dalszej części tego rozdziału.

Uwaga: Podaję tu link do pobrania specyfikacji Atmega328, chociaż po przeczytaniu tego artykułu nie będzie on potrzebny.

Wprowadzenie do ATmega328

ATmega328 jest 8-bitowym, 28-pinowym mikrokontrolerem AVR, produkowanym przez firmę Microchip, pracującym w architekturze RISC i posiadającym pamięć programową typu flash o pojemności 32 KB.

Atmega328 jest mikrokontrolerem, wykorzystywanym w podstawowych płytkach Arduino tj. Arduino UNO, Arduino Pro Mini oraz Arduino Nano.

Posiada pamięć EEPROM 1 KB, a jego SRAM posiada pamięć 2 KB.

Posiada osiem pinów dla operacji ADC, które wszystkie razem tworzą PortA (PA0 – PA7).

Posiada również trzy wbudowane timery, dwa z nich to timery 8-bitowe, podczas gdy trzeci to timer 16-bitowy.

Zapewne słyszałeś o Arduino UNO, UNO jest oparte na mikrokontrolerze Atmega328. Jest to serce UNO.  

Pracuje w zakresie napięć od 3,3 V do 5,5 V, ale standardowo używamy napięcia 5 V.

Jego doskonałe cechy to ekonomiczność, niskie zużycie energii, blokada programowania dla celów bezpieczeństwa, timer czasu rzeczywistego z oddzielnym oscylatorem.

Zwykle jest używany w aplikacjach systemów wbudowanych. Powinieneś rzucić okiem na te z życia wzięte przykłady z systemów wbudowanych. Wszystkie z nich możemy zaprojektować używając tego mikrokontrolera.

Poniższa tabela przedstawia kompletne funkcje ATmega328:

Piny ATmega328

ATmega-328 to Mikrokontroler AVR posiadający w sumie dwadzieścia osiem (28) pinów.

Wszystkie piny w kolejności chronologicznej, są wymienione w tabeli pokazanej na rysunku poniżej.

Teraz przyjrzyjmy się szczegółowo rozmieszczeniu pinów w Atmega328.

Rozkład pinów ATmega328

Poprzez schemat rozkładu pinów, możemy zrozumieć konfigurację pinów dowolnego urządzenia elektronicznego, więc kiedy pracujesz nad dowolnym projekcie inżynierskim, musisz najpierw przeczytać rozkład pinów komponentów.

Schemat wyprowadzeń ATmega328 jest przedstawiony na poniższym rysunku:

Opis pinów ATmega328

Funkcje przypisane do poszczególnych pinów muszą być znane, aby móc właściwie korzystać z urządzenia.

Piny ATmega-328 są podzielone na różne porty, które są szczegółowo opisane poniżej.

VCC jest cyfrowym napięciem zasilania.

AVCC to pin napięcia zasilania dla przetwornika analogowo-cyfrowego.

GND oznacza masę i ma wartość 0 V.

  • Port A składa się z pinów od PA0 do PA7. Piny te służą jako wejście analogowe do przetworników analogowo-cyfrowych. Jeśli nie jest używany konwerter analogowo-cyfrowy, port A działa jako ośmio (8) bitowy dwukierunkowy port wejścia/wyjścia.
  • Port B składa się z pinów od PB0 do PB7. Ten port jest 8-bitowym portem dwukierunkowym z wewnętrznym rezystorem podciągającym.
  • Port C składa się z pinów od PC0 do PC7. Bufory wyjściowe portu C mają symetryczną charakterystykę wysterowania z możliwością pracy jako źródło jak i z możliwością pracy jako upust.
  • Port D składa się z pinów od PD0 do PD7.Jest to również 8-bitowy port wejścia/wyjścia posiadający wewnętrzny rezystor podciągający.

Wszystkie porty AVR pokazane są na rysunku poniżej.

AREF jest analogowym pinem referencyjnym dla przetwornika analogowo-cyfrowego.

Tak w skrócie wyglądają wszystkie piny w mikrokontrolerze AVR ATmega328.

Architektura ATmega328

Architektura urządzenia prezentuje informacje na temat danego urządzenia.

Architektura ATmega-328 została przedstawiona na rysunku poniżej.

Pamięć ATmega328

ATmega 328 posiada trzy rodzaje pamięci o nazwach:

  • Pamięć Flash: 32 KB. Jest to programowalna pamięć ROM (Read-Only Memory). Jest to pamięć nieulotna.
  • SRAM: 2 KB. Skrót od Static Random Access Memory. Jest to pamięć ulotna, tzn. dane zostaną usunięte po odłączeniu zasilania.
  • EEPROM: 1 KB. Skrót od Electrically Erasable Programmable Read-Only Memory (elektrycznie kasowalna programowalna pamięć tylko do odczytu).

Przestrzenie pamięci AVR pokazane są na poniższym rysunku.

Rejestry ATmega328

ATmega-328 posiada trzydzieści dwa (32) rejestry ogólnego przeznaczenia (GP).

Wszystkie te rejestry są częścią pamięci SRAM (Static Random Access Memory).

Wszystkie rejestry przedstawione są na rysunku poniżej.

Pakiety ATmega328

Różne wersje tego samego urządzenia są oznaczane przez różne pakiety tego urządzenia.

Każdy pakiet ma inne wymiary, w celu łatwego rozróżnienia.

Pakiety ATmega 328 podane są w tabeli przedstawionej na rysunku poniżej.

Schemat blokowy ATmega328

Schemat blokowy pokazuje wewnętrzne obwody i przepływ programu dowolnego urządzenia.

Schemat blokowy układu ATmega 328 przedstawiony jest na rysunku poniżej.

Funkcje ATmega328

Do wykonania dowolnego zadania możemy wybrać urządzenie na podstawie jego funkcji, tzn. czy jego funkcje pasują do uzyskania pożądanych rezultatów, czy też nie.

Niektóre z głównych funkcji Mikrokontrolera AVR ATmega328 są przedstawione w tabeli na rysunku poniżej.

ATmega328 i Arduino

ATmega328 jest mikrokontrolerem zastosowanym w płytce Arduino UNO.

Kiedy wgrywamy kod w Arduino UNO, jest on tak naprawdę wgrywany do mikrokontrolera Atmega328.

W pamięci flash mikrokontrolera Atmega328 preinstalowany jest sterownik programowy zwany bootloaderem, dzięki czemu jest on kompatybilny z Arduino IDE.

AVR Atmega328 podłączony do Arduino jest pokazany na poniższym zdjęciu:

Piny ATmega328 i Arduino

Piny ATmega328 są podłączone do odpowiednich pinów Arduino.

Ich wzajemne połączenie przedstawia schemat rozkładu pinów zobrazowany na rysunku poniżej.

W oznaczonej sekcji pinów analogowych znajdują się piny Arduino które są połączone z odpowiednimi pinami mikrokontrolera AVR ATmega-328.

Opisałem oba piny przed sobą, pomoże to w łatwiejszym zrozumieniu.

Jeśli chcesz pracować na tej płytce Arduino, musisz spróbować tych projektów Arduino dla początkujących. Pomogą ci one w opanowaniu Arduino.

Zastosowania Atmega328

Kompletny pakiet zawierający ATmega 328 i Arduino może być użyty w kilku różnych codziennych aplikacjach.

Może być stosowany w projektach systemów wbudowanych.

Może być również stosowany w robotyce.

Za jego pomocą może być również zaprojektowany quadcopter, a nawet mały samolot.

Za pomocą tego urządzenia można również przygotować systemy monitorowania i zarządzania energią.

Zaprojektowałem ten system bezpieczeństwa domowego przy użyciu Arduino UNO. Powinieneś rzucić na niego okiem.

Jak rozpocząć pracę na Atmega328

Jeśli chcesz zacząć pracować na tym mikrokontrolerze, to proponuję zrobić to za pomocą Arduino.

Zaletą używania Arduino jest to, że możesz korzystać z wszystkich wbudowanych bibliotek, co znacznie ułatwi pracę.

Po zaprojektowaniu projektu na Arduino, następnie zaprojektuj podstawowy obwód Atmega-328, który jest dość prosty i który omówiłem powyżej.

Teraz musisz być ostrożny podczas korzystania z jego pinów. Piny Atmega328 i Arduino są omówione powyżej.

Kolejną rzeczą, o której należy wspomnieć jest to, że przed rozpoczęciem pracy na sprzęcie, należy najpierw zaprojektować jego symulację w programie Proteus.

Pobierz bibliotekę Arduino dla Proteusa, a następnie zaprojektuj na niej swój projekt.

Po potwierdzeniu, że wszystko jest poprawne, a następnie zaprojektować jego obwody na Wero Board lub PCB (Printed Circuit Board) i masz gotowy projekt.  

Poradnik Wprowadzenie do ATmega328 zawiera szczegółowe omówienie podstawowych zastosowań ATmega 328. W pełni przedstawiłem wszystkie niezbędne szczegóły dotyczące użycia mikrokontrolera AVR. Jeśli masz jakieś problemy, pisz. Nasz zespół jest zawsze tutaj, aby wam pomóc.

W kolejnych poradnikach będę dzielił się z wami innymi niesamowitymi tematami.

Tak więc, do tego czasu, uważajcie na siebie  

Wykaz elementów
Ilość
Symbol
Nazwa/opis/gdzie kupić
DATA SHEET
Do pobrania
Download icon Pobierz specyfikację Atmega328P

Artykuł Introduction to ATmega328 opracowano w wersji polskiej na podstawie współpracy z portalem www.theengineeringprojects.com.

1. Praktyczny Kurs Arduino - przewodnik po artykułach składających się na kurs 2. Czym jest Arduino? 3. Porównanie Arduino z Raspberry Pi 4. Instalacja sterownika Arduino w systemie Windows 5. Generowanie pliku hex w Arduino 6. Jak wgrać bootloader w Atmega328? 7. Rozpoczęcie pracy z oprogramowaniem Arduino 8. Rozpoczęcie programowania w Arduino 9. Programowe resetowanie Arduino 10. Wprowadzenie do Arduino UNO 11. Wprowadzenie do Arduino NANO 12. Wprowadzenie do Arduino Pro Mini 13. Wprowadzenie do Arduino Mega 2560 14. Wprowadzenie do Arduino Due 15. Wprowadzenie do Arduino Lilypad 16. Wprowadzenie do ATmega328 17. Biblioteka Arduino dla Proteusa 18. Projekt płytki drukowanej Arduino UNO dla Proteus ARES 19. Biblioteka Arduino Lilypad dla Proteusa 20. Odczyt z portu szeregowego Arduino 21. Projektowanie układów LCD z Arduino 22. Łączenie klawiatury z Arduino 23. Wartość ADC na LCD przy użyciu Arduino 24. Symulacja czujnika ultradźwiękowego w Proteusie 25. Połączenie czujnika ultradźwiękowego z Arduino 26. Wiele czujników ultradźwiękowych z Arduino 27. Czujnik temperatury 18B20 z Arduino 28. Jak używać 18B20 w Proteus ISIS? 29. Łączenie LM35 z Arduino w Proteusie 30. Współpraca siedmiosegmentowego wyświetlacza z Arduino w Proteusie 31. Łączenie czujnika PIR z Arduino 32. Współpraca czujnika płomienia z Arduino 33. Interfejs NRF24L01 z Arduino 34. NRF24L01+ i Arduino - Response Timed Out 35. Połączenie RFID RC522 z Arduino 36. Komunikacja Bluetooth z Arduino przy użyciu HC05 37. Sterowanie serwomotorem za pomocą Arduino w Proteusie 38. Projekt sterowania sygnalizacją świetlną przy użyciu Arduino 39. Przewijanie tekstu na matrycy LED 8×8 z użyciem Arduino 40. Inteligentny system oszczędzania energii 41. Komunikacja USB pomiędzy Androidem i Arduino 42. Automatyka domowa z użyciem XBee i Arduino 43. Domowy system bezpieczeństwa oparty na GSM 44. Wysyłanie SMS-ów za pomocą Arduino UNO i SIM900 45. Odbieranie SMS-ów za pomocą komend AT przy użyciu Arduino 46. Projekt rozpoznawania głosu przy użyciu EasyVR Shield 47. Rozpoczęcie pracy z programem EasyVR Commander 48. Połączenie EasyVR z Arduino UNO 49. Błąd szkolenia - niepowodzenie rozpoznawania w EasyVR 50. Połączenie XBee z komputerem 51. Wprowadzenie do modułu XBee 52. Interfejs XBee z Arduino 53. Rozpoczęcie pracy z kamerą Pixy 54. Jak zainstalować oprogramowanie kamery Pixy - PixyMon 55. Aktualizacja firmware kamery Pixy do najnowszej wersji 56. Jak wytrenować kamerę Pixy za pomocą komputera 57. Sterowanie kierunkiem obrotu silnika prądu stałego za pomocą Arduino 58. Sterowanie prędkością obrotów silnika prądu stałego za pomocą Arduino 59. Sterowanie kierunkiem obrotu silnika krokowego za pomocą Arduino 60. Sterowanie prędkością obrotów silnika krokowego za pomocą Arduino 61. Pobieranie danych z serwera internetowego za pomocą Arduino Wi-Fi 62. Wprowadzenie do Arduino YUN 63. Dostęp do serwera Linux Arduino YUN za pomocą Putty
Rozwiń cały spis treści Zwiń spis treści
Firma:
Tematyka materiału: ATMEGA328, Kurs Arduino, Arduino UNO
AUTOR
Źródło
www.theengineeringprojects.com
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
Oceń najnowsze wydanie EdW
Wypełnij ankietę i odbierz prezent
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"