Przede wszystkim, Dlaczego Arduino Mega 2560?
Gdy tańsze płytki są dostępne, dlaczego wybrać Arduino Mega? Głównym powodem są dodatkowe funkcje, które są wbudowane w tę płytkę. Pierwszą cechą jest duża konstrukcja systemu I/O z wbudowanymi 16 przetwornikami analogowymi i 54 przetwornikami cyfrowymi, które wspierają USART i inne tryby komunikacji. Po drugie, ma wbudowany RTC i inne funkcje, takie jak analogowy komparator, zaawansowany timer, przerwanie dla mechanizmu budzenia kontrolera, aby zaoszczędzić więcej energii i szybkiej prędkości z 16 Mhz zegara kryształowego, aby uzyskać 16 MIBS. Posiada więcej niż 5 pinów dla Vcc i Gnd do podłączenia innych urządzeń do Arduino Mega.
Inne funkcje obejmują wsparcie JTAG dla programowania, debugowania i rozwiązywania problemów. Z dużą pamięcią FLASH i SRAM, ta płyta może obsługiwać duży program systemowy z łatwością. Jest ona również kompatybilna z różnymi typami płyt jak sygnał wysokiego poziomu (5V) lub sygnał niskiego poziomu (3.3V) z I/O ref pin.
Brownout i watchdog pomagają uczynić system bardziej niezawodnym i solidnym. Obsługuje ICSP, jak również programowanie mikrokontrolera przez USB za pomocą komputera PC.
Arduino Mega 2560 jest zamiennikiem starego Arduino Mega, dlatego w ogólnych odniesieniach, będzie nazywany bez rozszerzenia '2560′. Ze względu na dużą ilość pinów, nie jest zwykle używane w zwykłych projektach, ale można je znaleźć w znacznie bardziej złożonych, takich jak detektory radonu, drukarki 3D, czujniki temperatury, aplikacje IOT, aplikacje monitorujące dane w czasie rzeczywistym itp.
Arduino Mega 2560 Specyfikacja
Arduino Mega – Podstawowe cechy
Arduino Mega | Features |
---|---|
Mikrokontroler | AVR ATmega 2560 (8bit) |
Zasilanie | 7-.12V (wbudowany regulator dla kontrolera) |
Digital I/O Pins | 54 |
Analog I/O Pins | 16 |
Total Digital I/O | 70 (Digital + Analog) |
Total Digital I/O | 70 (Digital + Analog) |
Szybkość zegara | 16 MHz (fabrycznie ustawiona na 1Mhz) |
Pamięć flash | 128 KB |
SRAM | 8 KB |
Komunikacja | USB (programowanie z ATmega 8), ICSP (programowanie), SPI, I2C i USART |
Arduino Mega – zaawansowane funkcje
Arduino Mega | Zaawansowane funkcje Features |
---|---|
Timer | 2 (8bit) + 4 (16bit) = 6 timer |
PWM | 12 (2-.16 bit) |
ADC | 16 (10 bit) |
USART | 4 |
Zmiana pinów Interrupt | 24 |
Arduino Mega 2560 jest również pakowane z dodatkowych funkcji, takich jak Analog Comparator, Zewnętrzne przerwanie & Przerwanie oprogramowania, tryb oszczędzania energii, wbudowany czujnik temperatury, RTC i więcej.
Arduino Mega Pinout
Piny zasilania :
Arduino Mega | Piny zasilania |
---|---|
VIN | Napięcie zasilania (7-.12V) |
GND | Uziemienie |
5V Zasilanie | Do zasilania zewnętrznych urządzeń sprzętowych |
3.3V Supply | Do zewnętrznego niskonapięciowego zasilania urządzeń sprzętowych |
Schemat pinów Arduino Mega
Piny kontrolera:
RESET: (Reset input) Niski poziom na tym pinie przez czas dłuższy niż 4 cykle zegara spowoduje wygenerowanie resetu. Arduino Mega ma wbudowany obwód resetowania z przyciskiem do resetowania systemu i ten pin może być używany przez inne urządzenia do resetowania kontrolera.
XTAL1,XTAL2: Kryształ (16Mhz) jest podłączony do zasilania zegara dla kontrolera z 2 kondensatorami bocznikującymi do masy.
AREF: Ten pin jest używany, gdy używamy przetwornika do konwersji analogowo-cyfrowej z zewnętrznym napięciem odniesienia do konwersji i nie chcemy używać wewnętrznego odniesienia 1.1V lub 5v.
Piny cyfrowe (70):
Digital pins (0-53) + Analog (0-15) = Total Digital I/O pins.
Piny cyfrowe: Od 0-53(cyfrowe) i 0-15(analogowe) mogą być używane jako wejście lub wyjście dla cyfrowych przetworników i urządzeń wyjściowych przez pinMode() dla kierunku pinów, digtalWrite() do zapisu pinów i digitalRead() do odczytu stanu pinów.
Zastosowanie:
Urządzenia wyjściowe : Przekaźnik, LED, buzzer, LCD i inne.
Urządzenia wejściowe: termistor cyfrowy, przycisk, czujnik ultradźwiękowy, joystick i inne
Przykład:
- Sygnał niski wyjścia na płytce Arduino mega
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
- Sygnał odczytu wejścia na płytce Arduino mega
pinMode(0,INPUT);
digitalRead(0);
Piny analogowe (16):
Piny analogowe: Od 0-15(analogowe) mogą być używane jako analogowe piny wejściowe dla adc, jeśli nie są używane to działają jak normalne piny cyfrowe. Może być używany przez pinMode() dla kierunku pinu, analogRead() aby odczytać status pinu i uzyskać wartość cyfrową dla sygnału analogowego, należy zwrócić uwagę na wybór wewnętrznego lub zewnętrznego napięcia odniesienia i pin Aref.
Zastosowanie :
Urządzenia wejściowe: Termistor Ntc, czujniki (jak ldr, irled i wilgotności) i inne
Przykład :
- INPUT sygnał analogowy na płytce Arduino mega
pinMode(0,INPUT);
analogRead(0);
Alternatywna funkcja pinów:
SPI Piny:
Pin 22 - SS, Pin 23 - SCK, Pin 24 - MOSI, Pin 25 – MISO
Piny te służą do komunikacji szeregowej z protokołem SPI do komunikacji pomiędzy 2 lub więcej urządzeniami. Bit zezwolenia SPI musi być ustawiony aby rozpocząć komunikację z innymi urządzeniami.
Zastosowanie:
Programowanie kontrolera AVR, komunikacja z innymi peryferiami jak LCD i karta SD z czteroliniową komunikacją z dużą prędkością.
Piny I2C:
Cyfrowy pin 20 dla SDA i 21 dla SCK (prędkość 400khz) aby umożliwić dwuprzewodową komunikację z innymi urządzeniami. Użyte funkcje to wire.begin() do rozpoczęcia konwersji I2C, z wire.Read() do odczytu danych i2c i wire.Write() do zapisu danych i2c.
Zastosowanie:
Urządzenia wyjściowe : LCD i komunikacja pomiędzy wieloma urządzeniami za pomocą dwóch przewodów.
Urządzenia wejściowe : rtc i inne.
Przykład:
I2c master odczytuje dane z slave
Wire.begin();
Wire.requestFrom(2, 1); //1byte danych
Wire.Read();
Piny PWM:
Pin cyfrowy 2-13 może być użyty jako wyjście PWM z analogWrite() do zapisu wartości pwm z zakresu 0-255.Jest to alternatywa dla DAC dla tanich systemów, aby uzyskać sygnał analogowy na wyjściu przy użyciu filtra.
Zastosowanie:
Urządzenia wyjściowe: sterowanie prędkością silnika, ściemniacz światła, pid dla wydajnego systemu sterowania.
Przykład:
- WYJŚCIE sygnału analogowego na płytkę Arduino mega
pinMode(0,OUTPUT);
analogWrite(0,255);
PinUSART :
Pin 0 – RXD0, pin 1 – TXD0Pin 19 – RXD1, pin 18 – TXD1Pin 17 – RXD2, pin 16 – TXD2Pin 15 – RXD3, pin 14 – TXD3
Ten pin jest używany do komunikacji szeregowej usart z pc lub innym systemem do udostępniania danych i rejestrowania. Jest on używany z serialBegin() do ustawienia szybkości transmisji i rozpoczęcia komunikacji z serial.Println() do drukowania tablicy znaków na wyjściu innego urządzenia.
Zastosowanie:
Komunikacja dwóch kontrolerów, komunikacja pc i kontrolera, debugowanie z usart przez monitor szeregowy.
Przykład:
Serial.begin(9600);
Serial.Println(„hello”);
Pinchange Interrupt Pins:
Digital Pin 0,22,23,24,25,10,11,12,13,15,14Analog Pin 6,7,8,9,10,11,12,13,14,15
Ten pin jest używany dla przerwania zmiany pinu. Bit Enable przerwania zmiany pinu musi być ustawiony z globalnym włączeniem przerwania.
Zastosowanie :
Kodery obrotowe, przerwania oparte na przyciskach i inne.
Przykład :
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, CHANGE);
Piny przerwań sprzętowych :
Pin cyfrowy 18 – 21,2,3 przerwanie sprzętowe jest używane do obsługi przerwań. Przerwanie sprzętowe musi być włączone z globalnym włączeniem przerwania, aby uzyskać przerwanie z innych urządzeń.
Zastosowanie:
Przycisk dla programu ISR, budzenie kontrolera z urządzeniami zewnętrznymi, czujniki takie jak ultradźwiękowe i inne.
Przykład:
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, LOW);
Komponenty schematuArduino Mega:
Zasilacz DC Jack :
Zewnętrzne zasilanie dla Arduino Mega z zakresu 7-12 V jest podawane za pomocą tego portu. Arduino Mega R3 posiada regulator napięcia dla 5v i 3.3v zasilania dla kontrolera Arduino i zasilania czujników.
AVR 2560:
Jest to główny kontroler używany do programowania i uruchamiania zadań dla systemu. Jest to mózg systemu do kontroli wszystkich innych urządzeń na pokładzie.
ATmega8 :
Ten kontroler jest używany do komunikacji pomiędzy głównym kontrolerem i innymi urządzeniami. Ten kontroler jest zaprogramowany do komunikacji USB i funkcji programowania szeregowego.
ICSP 1 (ATmega8) i 2 (AVR 2560):
posiada funkcje programowania za pomocą magistrali szeregowej z programatorem AVR z wykorzystaniem komunikacji SPI. AVR 2560 jest zaprogramowany do uruchomienia systemu, a ATmega 8 jest zaprogramowana do komunikacji szeregowej i programowania.
Reset :
Posiada obwód resetowania z kondensatorem, przyciskiem i rezystorem do resetowania kontrolera. Przycisk jest używany do uzyskania 4 cykli niskiego sygnału na pinie reset, aby uzyskać kontroler w trybie reset.
Kryształ :
Ma obwód kryształu z dwoma kondensatorami i jednym 16 Mhz kryształu dla xtal piny 1 i 2 interfejs z avr 2560.
I2C :
Posiada cechy I2C (komunikacja dwuprzewodowa) z zewnętrznym rezystorem podciągającym.
USART :
Posiada piny TXD i RXD do komunikacji szeregowej ze wskaźnikiem LED.
Kilka prostych programów do wypróbowania na Arduino Mega 2560
Program 1: Mrugająca dioda LED (pin cyfrowy)
/*Turns on an LED on for two second, then off for two second on pin 13, repeatedly.*/// the setup function runs once when you press reset or power the boardvoid setup() {// initialize digital pin 13 as an output.pinMode(13, OUTPUT);}// the loop function runs again and againvoid loop() {digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)delay(2000); // wait for two seconddigitalWrite(13, LOW); // turn the LED offdelay(2000); // wait for two second}
Program 2: Ściemniacz światła Led (PWM):
int brightness = 0; //pwm valuevoid setup(){pinMode(3, OUTPUT);}void loop(){analogWrite(3, brightness); // pwm write on pin 3++brightness; // brightness is incremented by 1if (brightness <= 0 || brightness >= 255) {brightness=0; // brightness limited to 0-255}delay(10);}
Program 3: Analog Read Voltage (Analog pin with USART) :
void setup(){Serial.begin(9600); // usart communication start function with baudrate set to 9600}void loop(){int sensorValue = analogRead(A0); // analog pin 0 data is read and converted into digital value stored in sensorValue.Serial.println(sensorValue); // usart to output sensor value on serial monitor}
Możesz również spróbować własnej logiki i zaimplementować programy dla Arduino mega z podstawowymi funkcjami C i Arduino.