Arduino Mega to starszy brat Arduino Uno, oferujący więcej pinów, pamięci jak i miejsca na złożone projekty. Posiada, aż 54 cyfrowe piny wejścia/wyjścia, 16 wejść analogowych jak i i wielu portom szeregowym, doskonale nadaje się do projektów wymagających jednoczesnego podłączenia do wielu czujników, wyświetlaczy lub innych modułów.
Arduino Mega pinout. Rozkład wyprowadzeń wygląda następująco:
Działają na poziomie logicznym 5V, a każdy pin pobierać maksymalnie 40 mA. Zaleca się jednak, aby prąd pobierany z każdego pinu nie przekraczał 20 mA, aby uniknąć uszkodzenia Arduino. Aby ustawić pin cyfrowy jako wejście, należy użyć funkcji pinMode(pin, INPUT), a następnie digitalRead(pin)funkcji, aby odczytać stan pinu wejściowego. Aby ustawić pin jako wyjście, należy użyć funkcji pinMode(pin, OUTPUT), a następnie digitalWrite(pin, HIGH/LOW)ustawić go w żądanym stanie.
Piny PWM
Piny PWM w Arduino Mega to cyfrowe piny, które mogą symulować wyjście analogowe. Osiągają to poprzez szybkie przełączanie pinu między stanami HIGH i LOW, generując sygnał prostokątny. Stosunek czasu „ON” do całkowitego okresu sygnału nazywany jest współczynnikiem wypełnienia. Zmieniając współczynnik wypełnienia, można kontrolować średnie napięcie dostarczane do podłączonego komponentu, co pozwala na ściemnianie diod LED, sterowanie prędkością silników, a nawet generowanie prostych dźwięków.
Arduino Mega oferuje 15 pinów cyfrowych obsługujących PWM: D2 do D13 i D44 do D46.
Domyślnie wyjście PWM jest sygnałem 8-bitowym, co oznacza, że może przyjmować dowolną wartość od 0 do 255. Przekłada się to na 256 dyskretnych poziomów współczynnika wypełnienia.
Język programowania Arduino ułatwia korzystanie z funkcji PWM. Najpierw pinMode(pin, OUTPUT)funkcja ta ustawia żądany pin PWM jako wyjście. analogWrite(pin, value) Następnie funkcja ta ustawia wartość PWM na pinie. Tutaj, pin jest to numer pinu obsługującego PWM i value jest liczbą całkowitą z zakresu od 0 do 255. Na przykład,
analogWrite(pin, 0): Ustawia współczynnik wypełnienia na 0% (zawsze wyłączone).
analogWrite(pin, 128): Ustawia współczynnik wypełnienia na około 50%.
analogWrite(pin, 255): Ustawia cykl pracy na 100% (zawsze włączony).
Piny ADC
Wiadomo, że Arduino Mega obsługuje również piny analogowe, są zaprojektowane do odczytu ciągłych sygnałów analogowych. Sygnały te często pochodzą z czujników mierzących wielkości fizyczne, takie jak temperatura, natężenie światła czy wartość ciśnienie. Arduino Mega konwertuje te sygnały analogowe na wartości cyfrowe za pomocą przetwornika analogowo-cyfrowego (ADC), umożliwiając przetwarzanie i analizę danych w kodzie Arduino.
Arduino Mega ma 16 analogowych pinów wejściowych oznaczonych od A0 do A15.
Przetwornik ADC w Arduino Mega ma rozdzielczość 10 bitów. Oznacza to, że może on wykrywać 1024 (2^10) dyskretnych poziomów analogowych. Innymi słowy, konwertuje napięcia wejściowe z zakresu od 0V do 5V (napięcie robocze) na wartości całkowite z zakresu od 0 do 1023. Przekłada się to na rozdzielczość 5V/1024 jednostek, czyli około 0,0049 V (4,9 mV) na krok.
Ten poziom precyzji jest zazwyczaj wystarczający dla większości naszych projektów, ale w celu uzyskania dokładniejszych pomiarów należy użyć zewnętrznego przetwornika ADC o wyższej rozdzielczości.
Aby odczytać wartość analogową z pinu, należy użyć funkcji analogRead(pin). Zwraca ona wartość całkowitą z zakresu od 0 do 1024, reprezentującą zmierzone napięcie na pinie. Na przykład, jeśli pin mierzy napięcie 3 V , funkcja analogRead() zwróci wartość ~614.
Pamiętaj, że piny analogowe w Mega mogą być również używane jako cyfrowe piny wejścia/wyjścia. Jeśli potrzebujesz więcej pinów cyfrowych i nie używasz wszystkich, możesz skonfigurować je jako wyjścia cyfrowe za pomocą pinMode().
Piny ICSP
Arduino Mega posiada dwa złącza ICSP. Jedno znajduje się obok głównego układu mikrokontrolera, a drugie w pobliżu złącza USB.
Nagłówek ICSP ma dwa podstawowe zastosowania:
- Programowanie Arduino Mega : Możesz użyć zewnętrznego programatora (takiego jak programator AVR ISP lub inna płytka Arduino pełniąca funkcję ISP), aby przesłać kod do Arduino Mega bezpośrednio przez złącze ICSP. Jest to szczególnie przydatne, jeśli bootloader jest uszkodzony lub chcesz nagrać bootloader na nowym mikrokontrolerze.
- Komunikacja z urządzeniami SPI : Nagłówek zapewnia dostęp do pinów SPI (Serial Peripheral Interface): MISO (Master In Slave Out), MOSI (Master Out Slave In) i SCK (Serial Clock). Piny te mogą służyć do łączenia i komunikacji z urządzeniami SPI, takimi jak moduły kart SD lub czujniki zewnętrzne. Należy pamiętać, że pin Slave Select (SS), niezbędny do sterowania wieloma urządzeniami SPI, nie znajduje się na nagłówku i należy go kontrolować ręcznie.
Piny I2C
Nie zabrakło oczywiście na pokładzie Arduino Mega pinów do komunikacji I2C:
- D20 (SDA)
- D21 (SCL)
W pobliżu pinu AREF znajduje się również zduplikowany zestaw pinów I2C.
Domyślna prędkość magistrali I2C w Arduino Mega wynosi 100 kHz. Można ją zwiększyć do 400 kHz (lub nawet więcej w niektórych przypadkach) za pomocą Wire.setClock(), ale należy pamiętać o ograniczeniach podłączonych urządzeń. Należy również pamiętać, że Arduino Mega ma już wbudowane rezystory podciągające 10k na pinach SDA i SCL.
Piny SPI
Arduino Mega ma również dedykowany zestaw pinów do komunikacji SPI. Pin 51, oznaczony jako MOSI (Master Out Slave In), służy urządzeniu nadrzędnemu (Arduino) do przesyłania danych do urządzenia podrzędnego. Natomiast Pin 50, oznaczony jako MISO (Master In Slave Out), służy urządzeniu podrzędnemu do przesyłania danych z powrotem do Arduino. Pin 52, oznaczony jako SCK (Serial Clock), przesyła sygnał zegarowy, który synchronizuje przesyłanie danych między urządzeniem nadrzędnym a podrzędnym. Pin 53, zazwyczaj oznaczony jako SS (Slave Select), służy do wyboru konkretnego urządzenia podrzędnego, z którym chcesz się komunikować, jeśli podłączonych jest wiele urządzeń SPI.
Oprócz standardowych pinów SPI, Arduino Mega posiada również złącze ICSP, które zapewnia dostęp do tych samych sygnałów SPI. Do komunikacji SPI można używać zarówno standardowych pinów, jak i złącza ICSP.
Piny UART
Arduino Mega 2560 ma w rzeczywistości cztery zestawy pinów UART: UART0, UART1, UART2 i UART3. UART0 używa pinu 1 (TX0) i pinu 0 (RX0), UART1 używa pinu 18 (TX1) i pinu 19 (RX1), UART2 używa pinu 16 (TX2) i pinu 17 (RX2), a UART3 komunikuje się poprzez pin 14 (TX3) i pin 15 (RX3).
UART0 służy głównie do przesyłania szkiców i komunikacji szeregowej z komputerem przez złącze USB, co oznacza, że jest współdzielony z konwerterem USB-szeregowym na płytce. Pozostałe sprzętowe UART-y (UART1, UART2 i UART3) umożliwiają Arduino Mega jednoczesną komunikację z wieloma urządzeniami szeregowymi. Każdy UART działa niezależnie, umożliwiając jednoczesną transmisję jak i odbiór danych.
Jeśli potrzebujesz więcej kanałów UART, Arduino Mega obsługuje bibliotekę o nazwie SoftwareSerial , która umożliwia tworzenie dodatkowych programowych połączeń UART na innych pinach cyfrowych. Jednak SoftwareSerial ma ograniczenia pod względem szybkości i niezawodności w porównaniu ze sprzętowym UART.
Piny zasilające
Nie zapominajmy tu o zasilaniu Arduino Mega ma kilka pinów z których można je zasilić. Piny te są niezbędne do zasilania samej płytki oraz do zasilania podłączonych komponentów jak i czujników.
VIN : Ten pin umożliwia zasilanie płytki Arduino z zewnętrznego źródła zasilania, takiego jak zasilacz sieciowy lub akumulator. Jest to przydatne w przypadku projektów autonomicznych, w których płytka nie jest podłączona do komputera przez USB. Zakres napięcia wejściowego dla VIN wynosi zazwyczaj 7-12 V. Napięcie wejściowe dostarczane do tego pinu jest obniżane do stabilnego poziomu 5 V przez wbudowany regulator napięcia, który następnie zasila mikrokontroler i inne komponenty płytki. Pin Vin jest wewnętrznie połączony z dodatnim biegunem gniazda zasilania DC. Oznacza to, że po podaniu napięcia przez gniazdo zasilania DC, jest ono dostępne poprzez pin Vin.
5V : Ten pin zapewnia regulowane napięcie wyjściowe 5 V z wbudowanego regulatora napięcia. Można go użyć do zasilania różnych komponentów i czujników wymagających stabilnego napięcia 5V. Pin 5V może dostarczyć maksymalnie 500 mA prądu, jeśli zasilasz Arduino Mega za pomocą kabla USB. Wbudowany regulator napięcia ma nominalną wartość 800 mA, ale ze względu na problemy z rozpraszaniem mocy, nie należy przekraczać 400–500 mA.
3,3V : Ten pin zapewnia regulowane napięcie wyjściowe 3,3 V, co jest przydatne w przypadku komponentów pracujących przy niższym napięciu. Należy uważać, aby nie pobierać z tego pinu nadmiernego prądu, ponieważ ma on ograniczoną wydajność prądową wynoszącą około 50 mA. Warto zauważyć, że stabilizator 3,3 V jest podłączony do wyjścia stabilizatora 5 V. Pobieranie prądu ze stabilizatora 3,3V powoduje rozpraszanie ciepła zarówno w stabilizatorze 3,3V, jak i w stabilizatorze 5V. Oznacza to, że podłączenie urządzenia 3,3V do pinu 3,3V ogranicza również maksymalny prąd, jaki można wykorzystać w modułach 5V.
GND : Ten pin stanowi wspólne uziemienie dla wszystkich połączeń elektrycznych Arduino.



