Wstęp do platformy Arduino
Arduino jest popularną platformą, zaprojektowanę we Włoszech w 2005 roku dla systemów wbudowanych (tzw. Embedded systems). Arduino oparte jest na projekcie Open Hardware, będącym częścią tej samej kultury co FLOSS. Różnica mędzy nimi jest praktycznie jedna - odnosi się ona do sprzętu, a nie oprogramowania. Ujmując prościej, każdy może dowolnie modyfikować sprzęt, zmieniając lub poszerzając jego zakres przeznaczenia w oparciu o produkt bazowy.
Celem jaki postawili sobie twórcy Arduino, było przygotowanie ogólnodostępnych i w miarę możliwości tanich oraz elastycznych narzędzi, przeznaczonych dla hobbystów zajmujących się ogólnie elektroniką, skoncentowaną wokól programowanych mikrokontrolerów.
Zastosowanie platformy Arduino
Arduino może być wykorzystane do tworzenia samodzielnych układów lub ich sterowania za pomocą komputera bądź innego urządzenia. Płytka Arduino standardowo zawiera mikrokontroler oraz wyprowadzone linie analogowe i cyfrowe, mogące pracować jako wejście lub wyjście - a więc może przeprowadzać określone interakcje sprzętowe. Zawiera w sobie również interfejs szerergowy lub najczęściej port USB, służący do połączenia z komputerem w celu sterowania układem, jak i również zaprogramowniu mikrokontrolera przygotowanym przez nas programem. Komunikacja i progrmowanie realizowane jest przez specjalny adapter USB-to-Serial - na przykład układ FTDI FT232.
Programowanie platformy Arduino
Język programowania opiera się na środowisku Wiring, który częściowo jest podobny do języka C/C++. Samo programowanie układu odbywa się za pomocą środowiska programistycznego Arduino IDE, gdzie kod programu jest kompilowany przez narzędzie avr-gcc, a następnie wgrywany do podłączonej płytki Arduino.
Budowa Arduino
Na chwilę obecną Arduino zbudowane są w oparciu o mikrokontrolery Atmel AVR, ale nie jest to ostateczne reguła. Najczęściej spotykane są układy z serii megaAVR: ATmega8, ATmega168, ATMega328 oraz ATmega 1280, które różnią się ilością pamięci, a takzę ilością wejść i wyjść analogowoych oraz cyfrowych. Ponieważ całość opiera się założenia Open Hardware, na rynku możemy znaleźć wiele klonów, które są inspirowane oryginalnym Arduino. Mogą być one w większym lub mniejszym stopniu kompatybilne z pierwowzorem.
Oryginalne Arduino UNO po lewej oraz klon po porawej
Większość płytek Arduino zawiera 5V regulator napięcia oraz 16 MHz rezonator kwarcowy. Spotykane są również płytki o taktowaniu wyższym lub niższym Ważnym elementem jest sposób wyprowadzenia złącz cyfrowych i analogowych wyjść I/O, umożliwiający podłączenie dodatkowych modułów (shieldów), które dodatkowo poszerzają możliwośći samego Arduino.
Wybór wersji Arduino
Jak wspomniałem, istnieje sporo odmian Arduino zarówno tych oficjalnych jak i jego klonów, różniących się ilośćią wejść i wyjść analogowych oraz cyfrowych. W każdej z wersji spotkamy się również z inną ilością pamięci przeznaczonej dla wgrywanego programu, napięciem operacyjnym oraz maksymalnym prądem obciążenia portów I/O. Poniżej drobne porównanie najpopularnijszych jego odmian. W naszym kursie, będziemy wykorzystwać Arduino UNO R3, które wydaje się być idealne do celów szkoleniowych - zarówno pod kątem oferowanych możliwości jak i ceny.
Arduino Uno R3 | Arduino Leonardo | Arduino Mega 2560 R3 | Arduino Due | |
Mikrokontroler | ATmega328 | ATmega32u4 | ATmega2560 | AT91SAM3X8E |
Napięcie operacyjne | 5 V | 5 V | 5 V | 3 V |
Napięcie zasilania | 7 - 12 V | 7 - 12 V | 7 - 12 | 7 - 12 V |
Cyfrowe wejścia/wyjścia | 14 (6 PWM) | 20 (7 PWM) | 54 (15 PWM) | 54 (12 PWM) |
Analogowe wejścia | 6 | 12 | 16 | 12 |
Analogowe wyjścia | brak | brak | brak | 2 (DAC) |
Natężenie prądu dla pinu I/O | 40 mA | 40 mA | 40 mA | 130 mA (1) |
Natężenie prądu dla pinu 3.3 V | 50 mA | 50 mA | 60 mA | 800 mA |
Natęzenie prądu dla pinu 5 V | 500 mA (2) | 500 mA (2) | 500 mA (2) | 800 mA |
Pamięć Flash | 32 kB | 32 kB | 256 kB | 512 kB |
Pamięć SRAM | 2 kB | 2.5 kB | 8 kB | 96 kB |
Pamięć EEPROM | 1 kB | 1 KB | 4 kB | brak |
Taktowanie zegara | 16 MHz | 16 MHz | 16 MHz | 84 MHz |
Wymiary | 53 x 69 mm | 53 x 69 mm | 53 x 102 mm | 53 x 102 mm |
www | www | www | www | |
(1) Sumaryczne, maksymalne natężenie prądu na wszystkich pinach (2) Wartość przybliżona przy zasilaniu ze złącza USB |
Reklama
Komentarze
Jak wgrać botloader do arduino z proc atmega 168?
Jeśli korzystasz z oficjalnego Arduino, możesz to zrobić za pomocą Arduino IDE, wybierając odpowiednią wersję Arduino i opcję Burn Bootloader. Można to również zrobić za pomocą programatora, jeśli posiadasz. W jaki sposób próbujesz to zrobić?
Witam
Spotkałeś się może z połączeniem arduino z adxl193.
Potrzebuję duży zakres pomiarowy - czasem ponad 100g.
Do tego potrzebuję wrzucać wartości odczytywane z jakąć tam zadaną częstotliwością do tablicy, zmaleść max(z).
Może spotkałeś się z jakimś podobnym projektem?
marcin
Znalazłem tylko coś takiego :
https://github.com/Dude123/gcounter/blob/master/gcounter.pde
http://forum.arduino.cc/index.php?topic=218245.0
Hi ... I need to communicate with you in English ... I am working the current monitor for my electric car ... would like to use the INA226 chip with an arduino due ... any information you can provide will be highly appreciated, Thanks, Bela
Mógłby mi ktoś wyjaśnić jakie są wady stosowania klonów Arduino? Są jakiekolwiek? Bo między $3, a $20 jest jednak spora różnica.
Na ogół większych różnic nie ma, do czasu gdy nie zajrzy się w schemat i porówna części. Czasami brak zabezpieczeń odwrtonej polaryzacji zasilania, czasami ścmieciowe regulatory napięcia. Zależy jak trafisz :)
Działałem tylko z klonami - UNO, Nano, Micro. Zawsze pracowały tak jak się spodziewałem.
Witam
To już koniec ? Padł mój projekt na poskładanie oprogramowania na Arduino uno r3 do sterowania moim wymarzonym baniaczkiem 450.
Czy ktoś by mi mógł i chciał pomóc ?
Witam
Proszę o pomoc w programowaniu Arduino UNO R3. Czy jest możliwy bardziej indywidualny kontakt ?
np mail lub tel.
I\'m working with my grandson to build an Arduino Rocket Data logger. I built this entire project with no issues according to the specs. The SD card module works great, the blue tooth module works great, the GY-86 is giving me some odd data. The whole project was done on a breadboard with a genuine Arduino UNO R3. I get data via blue tooth on my phone and via serial on the computer. However, it is parsed as follows: NAN,-134.30,-97684,2053,6007. The first 3 values are obviously wrong. The last 2 are correct. I\'m not sure if this is a code problem. The hardware all seems correct. Any suggestions? Possibly one of the libraries is coded wrong? MPU6050, I2Cdev, MS5611. The original project was published 5 years ago and I am using the then published libraries. They may need updating for the Uno R3 version. I\'m not sure. Any help would be great.
hi
Is it possible to mak an alert for a minimum current and a maximum current in the arduino sketch ?
I want to set an alarm if under 2 amps and over 4 amps ?
thank you