Инсталиране на драйвер за arduino uno на windows 7. Как работи Arduino

Или по-скоро неговият китайски аналог.

Съществената разлика между китайския аналог и оригинала е неговата цена. Оригиналният Arduino UNO в момента струва $24,95 на официалния уебсайт, докато китайският аналог с доставка ми струваше по-малко от $3 (8 пъти по-евтино). По-подробно сравнение на оригинала с неговия аналог ще бъде в следващата статия, но сега, за да не се отдалечаваме от основните цели, нека да започнем.



Свързване към компютър и инсталиране на драйвера.

Поради факта, че в този китайски аналог на Arduino се използва чип за свързване към USB CH340G, предоставените драйвери не са подходящи за оригиналния Arduino и техните аналози, които съдържат микросхема ATMEGA16U2.


Свързваме платформата Arduino към компютъра чрез USB кабелкъм които са свързани принтери. Светодиодът на платката ще светне. НА". Ново устройство ще се появи в диспечера на устройствата " USB2.0-сериен". Трябва да инсталирате драйвери, ще работим в примера на Windows.

Изтеглете архива, разопаковайте и стартирайте файла CH341SER.EXE. Избирам ИНСТАЛИРАЙ.


Светодиодът ще мига по време на инсталирането на драйвера. RX, след инсталирането ще се появи съответно съобщение, щракнете върху " Добре".

Ново устройство ще се появи в диспечера на устройствата" USB-сериен CH340". В моя случай устройството е свързано към порта COM7, всеки може да има всеки друг номер на порт, основното е да го запомните за бъдеща работа.

Първа скица.

Програмата Arduino се нарича скица. За да напишете скица на Arduino, трябва да го инсталирате на компютър. Среда за разработка Arduino. Изтеглете най-новата версия и разопаковайте. Стартиране на средата за разработка с файл arduino.exe.

По подразбиране програмата се зарежда с руски интерфейс.

За да изберете друг език, използвайте елемента от менюто " Файл" - "Настройки".

в списъка" Език на редактора" можете да изберете всеки друг език, щракнете върху " Добре" и рестартирайте средата за разработка. Съставът включва беларуски, украински и други езици.


Трябва също така да проверите дали платформата Arduino е избрана правилно, за това отиваме на " Инструменти" – "Плащане:„Избрах Anduino UNO правилно по подразбиране, ако имате нещо друго, изберете вашата платформа от списъка.


Също така трябва да изберете правилния порт, към който е свързана нашата платформа. За да направя това, по време на инсталирането на драйвера обърнах внимание на това (трябва да погледнете порта в диспечера на устройствата). В моя случай това COM7. Сега в " Инструменти" - "Порт:"трябва да посочите правилния порт.

Сега нека се опитаме да стартираме нашата първа скица на Arduino, която ще мига светодиода.

Тази версия на средата за разработка вече има колекция от прости скици, сред които е нашата скица.
За да направите това, отидете на " Файл" - "Мостри" - "01. Основи" – "Мигайте".

Програмният код ще се отвори в нов прозорец. Сега нека подготвим светодиода за нашата програма. На много платки, като моята, желаният светодиод вече беше запоен заедно с останалите радио компоненти ...


Но може да има платки, които нямат този светодиод, в който случай ще трябва да го свържете през щифтовете на платката. Нека вземем най-често срещания цветен светодиод и го свържем чрез ограничаващ резистор 220Ω - 1Kom към щифтовете на платката 13 и GND(В процеса на свързване на светодиода към Arduino се препоръчва да изключите USB кабела).


Когато всичко е готово, остава да изтеглите програмата за мигане на светодиода в микроконтролера. В средата за разработчици щракнете върху бутона " натоварване“, за да качите скицата в Anduino.

След успешното зареждане на скицата, светодиодът ще започне да мига, в моя случай светодиодът, който беше запоен на платката, и този, който свързах към щифтовете, мигаха.

За да изключите Anduino, е достатъчно да изключите платката от USB кабела.

Тук можете да завършите първото запознаване с платформата, като се уверите, че всичко работи правилно.

По принцип той е универсален и върху него могат да се реализират огромен брой проекти.

Да започваме!

На първо място, трябва да изтеглим и инсталираме средата за разработка с вградени драйвери, това може да стане от официалния уебсайт на Arduino.cc или от връзката. След това можете да свържете платката към компютъра чрез usb проводниккойто най-често идва в комплекта, или чрез всеки подходящ. Arduino използва USB B, няма нищо особено в него. Ако всичко е направено правилно и платката работи, Windows ще намери ново устройство и ще го инсталира сам, след което на платката ще светне светодиодът, означен като ON или PWR.

Сега можете да отворите Arduino ide и прозорецът на редактора веднага ще се появи пред нас.1) Прозорецът на редактора е мястото, където ще пишем кода.

2) Тук ще се покаже прозорец за състояние, грешки и друга информация за нашата програма и процеса на качване на фърмуера на платката.

3) Лента с инструменти и др.

Между другото, ide поддържа руския език, което трябва да помогне за неговото развитие. Сега нека проверим дали всичко е наред и отидете в раздела Инструменти -> Табла. Там нашата дъска трябва незабавно да бъде избрана:


Ако не, изберете го ръчно.

Сега той ще се опита да флашне нашата платка с тестов фърмуер, за това отиваме на File -> examples -> Basics -> Blink. Коментарите и текстът на програмата се появиха веднага в прозореца на редактора. Коментарите винаги се намират между тагове */ или c// и могат да бъдат премахнати без никакви проблеми, те няма да повлияят по никакъв начин на работата на програмата и вече няма да пречат да се концентрирате върху основното нещо.

След това ще остане следният код:

C++

void setup() ( pinMode(13, OUTPUT); ) void loop() ( digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); )

void setup()(

pinMode(13, ИЗХОД) ;

void loop()(

Ако получите грешка: Има проблем с изтеглянето на дъската, тогава не се отчайвайте, това е лесно решение. За да направите това, отидете на Инструменти -> Порт -> и там избираме порта, до който Arduino / Genuino Uno е изписано в скоби и опитайте да флашнете контролера отново. Ако нещо не работи, пишете в коментарите, ще го разберем.

Нека сега да разберем какво сме излели в arduino.

void setup() ( )

Средата за разработка генерира тази част от кода за нас сама, тук, между фигурните скоби, входовете се инициализират, изходът на платката, в нашия случай, казва pinMode (13, OUTPUT); Това означава, че присвояваме 13-ия щифт на платката, към която е свързан светодиодът (за който говорихме в миналата статия) към изхода.

Тази част от кода също се генерира автоматично, между фигурните скоби е написан кодът, който нашата програма директно ще изпълнява за неопределено време. Тоест това е безкраен цикъл. Пише digitalWrite(13, HIGH); , което на руски означава подаване на 5 волта към пин 13, това действие светва светодиода.

забавяне (1000); Това забавяне спира изпълнението на следващата инструкция за 1000 мили секунди (1 секунда).

digitalWrite(13, LOW); издърпва 13 щифта към земята, на руски премахва 5 волта, което води до изчезване на светодиода.

И тъй като void loop() е безкраен цикъл, светлината на Arduino ще мига безкрайно!

забавлявайки се с голи Ардуино платкане толкова забавно, колкото бихме искали, поради факта, че само 1 светодиод е инсталиран на платката и няма нито един бутон, но това не означава, че мигането на светодиода е всичко, което можем! Да светне и да гасне по команда от компютъра!

За да направим това, ще трябва да напишем фърмуера за arduino и да използваме порт монитора за теста, след което ще напишем програма на C #, но това ще бъде в следващата статия.

Програмите не мигат в Arduino

В процеса на прехвърляне на програма от компютър към Arduino участват много компоненти. Ако поне един от тях не работи правилно, процесът на фърмуера ще бъде прекъснат. По-специално, процесът на фърмуера зависи от: драйверите на Arduino, модела на устройството и избора на порт в средата на Arduino, физическата връзка към платката, фърмуера на 8U2 контролера (на Arduino Uno и Mega 2560), буутлоудъра на основния микроконтролер на устройството, предпазител битови настройки и др. d. По-долу са дадени някои препоръки за отстраняване на неизправности с определен компонент.

Arduino среда

  • Уверете се, че вашият модел Arduino е избран в менюто Tools > Board. Ако имате Arduino Uno, изберете подходящия елемент. Също така имайте предвид, че моделите след Arduino Duemilanove идват с микроконтролер ATmega328, докато по-старите версии идват с ATmega168. За да разберете кой контролер се използва във вашия Arduino - прочетете надписа на микроконтролера (най-големият чип на платката). Повече информация за менюто Board можете да намерите в раздела Arduino Development Environment.
  • След това проверете дали е избран правилният порт в менюто Инструменти > Сериен порт (ако портът не се появи, опитайте да рестартирате IDEустройство, свързано към компютъра). На Mac компютри, серийният порт трябва да изглежда по следния начин: /dev/tty.usbmodem621 (за Arduino Uno или Mega 2560) или /dev/tty.usbserial-A02f8e (за по-стари версии на Arduino с FTDI чип). В Linux: /dev/ttyACM0 или подобен (за Arduino Uno или Mega 2560) или /dev/ttyUSB0 (за по-стари версии на Arduino). В Windows това ще бъде COM порт, но преди да изберете в Device Manager, трябва да проверите кой е свързан с Arduino. Ако тези портове не са в списъка, вижте следващия раздел за драйвери.

Шофьори

Драйверите позволяват на приложния софтуер на компютъра (т.е. средата Arduino) да комуникира с хардуера, свързан към него (платката Arduino). По отношение на Arduino, драйверите са отговорни за създаването на виртуален сериен порт (или виртуален COM порт) в системата. Arduino Uno и Mega 2560 с микроконтролер ATmega8U2 използват стандартни драйвери (USB CDC) на операционната система. Други платки Arduino, където FTDI чипът играе ролята на USB-UART конвертор, използват драйвери от FTDI.

Най-лесният начин да проверите дали драйверите са инсталирани правилно е да свържете Arduino към компютъра и да отворите менюто Инструменти > Сериен порт в средата за разработка. След свързване на Arduino тук трябва да се появят нови елементи от менюто. В този случай няма никакво значение кое име на порт ще бъде присвоено на Arduino.

  • В Windows 7 (по-специално 64-битовата версия) може да се наложи да влезете в диспечера на устройствата и да актуализирате драйверите на Arduino Uno или Mega 2560. За да направите това, щракнете с десния бутон върху устройството в диспечера на устройства (платката трябва да е свързан към компютъра) и посочете отново към Windows съответния .inf файл. Този файл се намира в папката drivers/ на софтуера Arduino (не в поддиректорията FTDI USB Drivers).
  • Ако получите следната грешка при инсталиране на драйверите Arduino Uno или Mega 2560 под Windows XP: „Системата не може да намери указания файл“, опитайте това решение (относно добавянето на ключа „RunOnce“ към клона на системния регистър „HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\ CurrentVersion").
  • В Linux Arduino Uno и Mega 2560 се дефинират като /dev/ttyACM0 устройства, които не се поддържат от стандартната версия на библиотеката RXTX, използвана от серийната среда на Arduino. Поради това версията на Linux на тази среда включва коригирана RXTX библиотека, която също работи с /dev/ttyACM* устройства. Има и специален (11.04), който включва поддръжка за такива устройства. Ако използвате стандартния RXTX пакет, тогава трябва да създадете символна връзка в системата от /dev/ttyACM0 към /dev/ttyUSB0 (например) - тогава серийният порт ще се появи в средата на Arduino.

Достъп до сериен порт

  • В Windows: ако програмата отнема много време за отваряне или се срива при стартиране, или менюто Инструменти в нея отнема твърде много време за отваряне, тогава в диспечера на устройствата опитайте да деактивирате всички Bluetooth серийни портове и други мрежови COM портове. При стартиране или отваряне на менюто Инструменти, средата за разработка Arduino сканира всички серийни портове на вашия компютър, съответно наличието на такива мрежови портове понякога може да доведе до замръзване или срив на програмата.
  • Уверете се, че нямате стартирани програми за сериен скенер, като USB Cellular Wifi Dongle (като от Sprint или Verizon), PDA приложения за синхронизиране, Bluetooth USB драйвери (като BlueSoleil), виртуални демони и др.
  • Уверете се, че причината за блокиране на серийния порт не е защитна стена (например ZoneAlarm).
  • Също така е необходимо да затворите всички програми, които следят данни, изпратени чрез USB между Arduino и компютър (например Processing, PD, vvvv и др.).
  • В Linux: опитайте да стартирате средата на Arduino като root, поне временно, за да видите дали това помага да флашнете Arduino или не.

Физическа връзка с платката

  • Първо се уверете, че Arduino е включен (свети зелен светодиод) и свързан към компютър.
  • На Mac компютри има някои проблеми, когато свързване на Arduino Uno и Mega 2560 през USB хъб. Ако нищо не се появи в менюто "Инструменти > Сериен порт", опитайте да свържете платката директно към компютъра и рестартирайте Arduino IDE.
  • По време на фърмуера изключете всички устройства от цифрови пинове 0 и 1, тъй като тези пинове са свързани към интерфейса за свързване на Arduino към компютъра (след успешно флашване на кода към контролера, те могат да се използват отново).
  • Опитайте да флашнете Arduino, като изключите всички устройства от него (с изключение на USB кабела, разбира се).
  • Уверете се, че платката не е в контакт с проводими метални предмети.
  • Опитайте с друг USB кабел, понякога и те не успяват.

Автоматично нулиране

  • Ако вашият Arudino не поддържа функцията за автоматично нулиране, уверете се, че сте нулирали платката няколко секунди, преди да мига. (Arduino Diecimila, Duemilanove и Nano поддържат автоматично нулиране, както LilyPad, Pro и Pro Miniс 6-пинови конектори за програмиране).
  • Моля, обърнете внимание: някои Arduino Diecimila бяха случайно флашнати с грешен буутлоудър. Такива модели изискват физическо натискане на бутона за нулиране преди зареждане на програмата; вижте по-долу за повече информация.
  • На някои компютри трябва да натиснете бутона за нулиране (на платката), след като натиснете бутона за качване в средата на Arduino. Експериментирайте с различни времеви интервали между докосванията - от 0 до 10 секунди или повече с интервал от около 2 секунди.
  • Ако получите тази грешка: „Устройството не реагира правилно“. опитайте отново да флашнете програмата (с други думи, нулирайте платката и натиснете отново бутона Upload).

Товарач

  • Уверете се, че вашият Arduino има буутлоудър. За да направите това, просто рестартирайте устройството си. Вграденият светодиод (свързан към 13-ия пин на контролера) трябва да мига. Ако това не се случи, най-вероятно вашата платка няма буутлоудър.

Ако програмите все още не мигат, задайте въпрос във форума. Моля, включете следната информация в съобщението си:

  • Версията на вашата операционна система.
  • Тип на вашия Arduino. Ако това е Mini, LilyPad или друг модел, който изисква допълнителни кабели, включете снимка на вашата верига, ако е възможно.
  • Успявали ли сте успешно да флашнете платката преди. Ако да, моля, опишете какво сте правили с платката, преди да спре да работи, какво софтуерИнсталирали ли сте или деинсталирали от компютъра си напоследък?
  • Съобщения, които се появяват при опит за зареждане на програма в Arduino. За да получавате съобщения, задръжте натиснат клавиша Shift, докато щракнете върху бутона Качване в лентата с инструменти.

Възниква грешка „Папката за компилация изчезна или не може да бъде записана“ (в Mac OS X)

Извлекли ли сте Arduino.app от образа на диска (напр. в папката Applications)? Ако не, няма да можете да изтеглите примери.

Arduino няма да стартира след актуализация на Java на Mac

Последно нещо актуализация на java Apple се опитва да използва 64-битови версии на родните библиотеки. Софтуерът Arduino обаче използва 32-битовата версия на библиотеката RXTX. При стартиране на Arduino възниква следната грешка:

Неуловено изключение в основния метод: java.lang.UnsatisfiedLinkError: /Applications/arduino-0016/Arduino 16.app/Contents/Resources/Java/librxtxSerial.jnilib: не е намерено подходящо изображение. Намерих: /Applications/arduino-0016/Arduino 16.app/Contents/Resources/Java/librxtxSerial.jnilib: няма съответстваща архитектура в универсална обвивка

За да разрешите този проблем, щракнете върху приложението Arduino (т.е. Arduino 16.app) в прозореца Finder и от менюто File изберете Get Info. На панела поставете отметка в квадратчето „Отваряне в 32-битов режим“. След това средата на Arduino трябва да стартира нормално.

При компилиране на програмата възниква java.lang.StackOverflowError

Arduino IDE обработва предварително вашата скица, като манипулира кода с регулярни изрази. Понякога определени редове от текст причиняват неуспех на този процес. Ако видите грешка като тази:

Java.lang.StackOverflowError в java.util.Vector.addElement(Неизвестен източник) в java.util.Stack.push(Неизвестен източник) в com.oroinc.text.regex.Perl5Matcher._pushState(Perl5Matcher.java)

В com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) в com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java)) в com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher. java) в com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher.java) в com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher. java) в com.oroinc.text.regex.Perl5Matcher._match(Perl5Matcher .java)

тогава ситуацията е точно такава. Проверете кода за необичайни последователности от знаци, свързани с "двойни кавички", "единични кавички", обратна наклонена черта \, коментари и т.н. Например липсващи кавички или например такава последователност "\" (вместо """) .

Sketch не работи, когато платката се захранва от външен източник (модели на Arduino Diecimila или по-стари)

Тъй като RX пинът е изключен, буутлоудърът на Arduino може да получи шум вместо данни, което означава, че никога няма да изтече и съответно програмата няма да стартира. За да разрешите този проблем, опитайте да свържете щифта RX към маса с резистор от 10 kΩ (или свържете щифтовете RX и TX).

Средата за разработка Arduino (в Windows) замръзва при опит за флашване на програмата

Този проблем може да възникне поради конфликт между Arduino и процеса "LVPrcSrv.exe" на Logitech. Отворете диспечера на задачите и го намерете в списъка с процеси. Ако е там, тогава трябва да завършите процеса, преди да мигате програмата.

Arduino не се включва (зеленият светодиод за захранване не свети)

Ако използвате Arduino Diecimila или по-стар с USB (напр. NG), уверете се, че джъмперът на платката (малката пластмасова част близо до USB конектора) е поставен правилно. Ако платката се захранва от външен източник на захранване (свързан към съответния конектор), тогава джъмперът трябва да затваря двата щифта, които са по-близо до захранващия конектор. Ако платката се захранва от USB, тогава джъмперът трябва да затваря двата щифта, които са по-близо до USB конектора. Тази снимка показва позицията на джъмпера, когато платката се захранва от USB.

(благодарение на mrbbp за публикацията и снимката)

Стартирането на програмата на Arduino Diecimila отнема твърде дълго (6-8 секунди)

На някои платки на Arduino Diecimila, буутлоудърът на Arduino NG беше случайно флашнат. Работи добре, само че има по-дълъг период на изчакване след нулиране на платката (тъй като Arduino NG не прилага автоматично нулиране, което изисква ръчно синхронизиране на процеса на фърмуера). Можете да разпознаете буутлоудъра от NG по светодиода, свързан към пин 13: в Arduino NG, след нулиране на платката, той мига 3 пъти, а в Diecimila - 1 път. Ако вашата Diecimila има инсталиран буутлоудър от NG, тогава преди да мигате скицата, трябва физически да натиснете бутона за нулиране, разположен на платката. Възможно е също да флашнете правилния буутлоудър на Diecimila в устройството, вижте страницата на буутлоудъра за повече подробности.

Грешка при стартиране на arduino.exe в Windows

Ако възникне грешка при стартиране на arduino.exe под Windows, като например това:

Arduino се натъкна на проблем и трябва да се затвори.

след това опитайте да стартирате Arduino, като използвате файла run.bat. Моля, бъдете търпеливи като Отнема известно време, за да стартирате средата на Arduino.

Защо Arduino не работи на по-стари версии на Mac OS X?

Ако получите грешка като тази:

Грешка при връзка (dyld): dyld: /Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino Недефинирани символи: /Applications/arduino-0004/librxtxSerial.jnilib недефинирана препратка към _printf$LDBL128 се очаква да бъде дефинирана в / usr/lib/libSystem.B.dylib

тогава вероятно трябва да актуализирате системата си до Mac OS X 10.3.9 или по-нова версия. По-старите системни библиотеки не са съвместими с Arduino.

Благодаря на Gabe462 за съобщението.

При стартиране на средата Arduino се появява UnsatisfiedLinkError (със съобщение за библиотеката librxtxSerial.jnilib)

Ако получите следната грешка при стартиране на Arduino:

Неуловено изключение в основния метод: java.lang.UnsatisfiedLinkError: Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib вече е зареден в друг класов зареждащ

тогава вероятно имате стара версия на библиотеката, която отговаря за връзката. Потърсете файловете comm.jar или jcl.jar в папката /System/Library/Frameworks/JavaVM.framework/ или в директориите, изброени в променливите на средата CLASSPATH и PATH. (бъг, открит от Anurag Sehgal)

Какво означава грешката „Не може да се намери главният клас“?

Ако възникне следната грешка при стартиране на Arduino:

Стартираща програма за виртуална машина на Java: Не може да се намери главният клас. Програмата ще излезе.

проверете дали сте разопаковали правилно съдържанието на Arduino .zip - по-специално се уверете, че папката lib се намира директно в директорията на Arduino и съдържа файла pde.jar.

Как да се справя с cygwin конфликти в Windows?

Ако cygwin вече е инсталиран на вашата машина, когато се опитате да компилирате скицата в средата на Arduino, може да възникне следната грешка:

6? (3512) C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe: *** фатална грешка - C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe : *** Открито е несъответствие на версията на споделената системна памет - 0x75BE0084/0x75BE009C.

Този проблем най-вероятно се дължи на използването на несъвместими версии на cygwin DLL.

В търсенето на Windows (Старт -> Намери), въведете cygwin1.dll и изтрийте всички намерени файлове, с изключение на най-новата версия. Най-новата версия трябва да се намира в папката x:\cygwin\bin, където "x" е устройството, където е инсталирана дистрибуцията на cygwin. Също така се препоръчва да рестартирате компютъра си.

Също така се уверете, че cygwin не седи в процеси, когато средата на Arduino работи. Можете също да опитате да премахнете файла cygwin1.dll от папката на Arduino и да го замените с файла cygwin1.dll от съществуващата дистрибуция на cygwin (която най-вероятно се намира в папката c:\cygwin\bin).

Средата Arduino и менюто Инструменти се отварят за дълго време (в Windows)

Ако средата на Arduino се стартира за много дълго време или замръзва, когато се опитвате да отворите менюто с инструменти, тогава това показва конфликт с друго устройство в системата. При стартиране, а също и при отваряне на менюто Инструменти, софтуерът Arduino се опитва да получи списък с всички налични COM портове в системата. Възможно е специфичен COM порт, създаден от някое от устройствата на компютъра, да забавя този процес. Проверете диспечера на устройствата. Опитайте да деактивирате всички устройства в него, които могат да създават COM портове в системата (например Bluetooth адаптери).

Устройството не се показва в Tools | Сериен порт

Ако използвате Arduino от USB, уверете се, че драйверите за FTDI чипа са инсталирани правилно (вижте инструкциите за инсталиране). Ако използвате USB-UART адаптер с обикновен Arduino (без USB), проверете дали драйверите за този адаптер са инсталирани.

След това се уверете, че платката наистина е свързана: менюто със списъка с портове се актуализира всеки път, когато отворите менюто Инструменти, така че ако току-що сте изключили платката, тя няма да бъде в този списък.

Проверете дали работят програми, които сканират всички серийни портове, като приложения за синхронизиране на PDA, Bluetooth-USB драйвери (като BlueSoleil), виртуални демони и др.

В Windows системи номерът на COM порта, зададен от Arudino, може да е твърде голям. От потребител zeveland:

„Малка бележка за тези, които не могат да флашнат програма Arduino с висок номер на COM порт: опитайте да намалите номера на порта, свързан с FTDI чипа.“

„Моята система има куп виртуални COM портове от Bluetooth адаптер, така че на Arduino беше присвоен COM17. IDE не можа да намери Arduino, така че премахнах другите виртуални портове в контролния панел (под XP) и промених порта за FTDI чипа към COM2. Просто се уверете, че arduino използва определения порт и трябва да сте добре."

Ако имате стара версия FTDI драйверина компютър Mac, ще трябва да ги премахнете и инсталирате последна версия. Вижте тази нишка във форума за инструкции за инсталиране.

Gnu.io.PortInUseException хвърля ли се при мигане на код или в „Сериен монитор“ (на Mac системи)?

Грешка в серийния номер. () gnu.io.PortInUseException: Неизвестно приложение в gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354) в processing.app.Serial. (Serial.java:127) на адрес processing.app.Serial. (Serial.java:72)

Най-често тази грешка означава, че портът е зает от друго приложение. Затова проверете дали работят някакви програми, които работят със серийни или USB портове, като приложения за синхронизиране на PDA, мениджъри на Bluetooth устройства, определени защитни стени и т.н. Също така имайте предвид, че някои програми (напр. Max/MSP) оставят серийния порт отворен дори когато не го използвате - така че е по-добре да затворите всички помощни програми, които използват серийния порт, и да излезете от тези приложения напълно.

Ако тази грешка възникне в средата за обработка или на Arduino версия 0004 или по-стара, тогава трябва да изпълните скрипта macosx_setup.command и да рестартирате компютъра. В Arduino 0004 този скрипт е променен и всички потребители трябва да го изпълняват (дори тези, които са изпълнявали същия скрипт, който идва с Arduino версия 0003). Трябва също така да изтриете съдържанието на папката /var/spool/uucp.

Възникват проблеми с USB FTDI драйвери

Скицата не стартира при включване или нулиране на Arduino

Най-вероятно това е така, защото изпращате данни от компютъра към платката веднага след включването му. Първите няколко секунди след нулирането, буутлоудърът (програма, мигаща в микроконтролера на платката) чака компютърът да изпрати нова скица, която да бъде записана в паметта на платката. Ако през тези няколко секунди данните не са пристигнали, товарачът ще завърши работата си след изчакване и ще стартира предварително заредената програма. Ако непрекъснато изпращате данни, товарачът няма да изтече и никога няма да изпълни качената скица. Следователно трябва или да намерите начин да „задържите“ изпращането на данни за няколко секунди след включване на устройството (например чрез програмиране на контролера да изпраща някои данни към компютъра в блока за настройка ()), или да флашнете своя програмирайте в микроконтролера в горната част на буутлоудъра с помощта на външен програмист.

Фърмуерът изглежда успешен, но нищо не работи

Неправилно сте избрали устройство от менюто Инструменти > Микроконтролер. Уверете се, че избраният от вас микроконтролер съвпада с този на вашата платка (ATmega8 или ATmega168) - моделът на контролера е посочен на най-големия чип.

Уверете се, че захранването е стабилно. Смущения или прекъсвания на захранването могат да причинят грешки при качване на скица.

Друг възможна причина- размерът на скицата е твърде голям за вашето устройство. Когато качва скица, Arduino 0004 проверява дали има достатъчно място в паметта на ATmega8 за зареждане на програмата. В същото време Arduino извършва своите изчисления въз основа на факта, че товарачът в паметта на контролера заема 1 KB. Може би вашето устройство има стара версия на 2 KB буутлоудър вместо 1 KB, тогава от 8 KB флаш памет на микроконтролера ATmega8 2 KB вече ще бъдат заети. Съответно в този случай само част от скицата ще бъде заредена в контролера, но програмата не знае това a priori, което ще доведе до постоянни нулирания на устройството.

Ако имате програмист (за паралелен порт или AVR-ISP), тогава можете да актуализирате версията на буутлоудъра в микроконтролера, като използвате Инструменти | Записване на Bootloader. В противен случай можете просто да коригирате настройките на средата на Arduino, като посочите наличното количество програмна памет в променливата upload.maximum_size, разположена вътре в конфигурационния файл (вижте инструкциите къде да намерите този файл). Променете посочената там стойност 7168 на 6144, след което средата за разработка правилно ще ви предупреди, когато допустимият размер на скицата бъде надвишен.

Как мога да намаля размера на фърмуера?

Микроконтролерът ATmega168 в Arduino е сравнително евтин модел, който има само 16 KB програмна памет, което всъщност не е много (от които 2 KB вече са заети от буутлоудъра).

Ако използвате изчисления с плаваща запетая във вашата програма, опитайте да пренапишете кода, за да използвате изчисления с цели числа - това ще спести приблизително 2 KB памет. В началото на програмата премахнете директивите #include на всички неизползвани библиотеки.

Също така проверете дали програмният код може да бъде оптимизиран, за да стане по-кратък.

Ние непрекъснато работим върху оптимизирането на ядрото Arduino, за да намалим пространството, заемано от неговите функции в общия обем на компилираната скица, и да оставим възможно най-много място за писане на програми.

Не се генерира PWM сигнал (аналогов изход) при извикване на функцията analogWrite() на щифтове, различни от 3, 5, 6, 9, 10 и 11

В микроконтролера Arduino (ATmega168) хардуерната поддръжка за PWM / analogWrite () се реализира само на определени щифтове. Следователно извикването на функцията analogWrite() на всеки друг контролер ще доведе до едно от двете високо нивосигнал (5 V - за стойности, по-големи от 128), или ниско ниво(0 V - за стойности по-малки от 128). В по-старите версии на Arduino с микроконтролера ATmega8 поддръжката на PWM е реализирана само на пинове 9, 10 и 11.

Защо възникват грешки относно недекларирани функции или типове?

Средата за разработка на Arduino се опитва автоматично да генерира прототипи на дефинирани от потребителя функции, така че да могат да бъдат поставени в произволен ред във вашата програма. Процесът на прототипиране обаче не е съвършен и понякога води до объркващи грешки.

Например, ако декларирате вашия тип данни в програма и след това създадете функция, която използва този тип, тогава ще възникне грешка, когато се опитате да компилирате скицата. В този случай грешката възниква, защото автоматично генерираният прототип за тази функция ще бъде разположен ПРЕДИ декларацията на типа.

Ако декларирате функция, която връща 16-битов резултат (например от тип "unsigned int"), средата няма да разбере, че това е функция и съответно няма да създаде неин прототип. В този случай ще трябва да я напишете ръчно или да поставите декларацията на тази функция в програмния код по-горе - преди да бъде извикана за първи път в програмата.

При опит за флашване на програмата възниква грешка "невалиден подпис на устройството"

Следваща грешка:

Avrdude: Мда! Невалиден подпис на устройството. Проверете отново връзките и опитайте отново или използвайте -F, за да отмените тази проверка.

може да означава едно от двете неща: или сте избрали грешната дъска в менюто Инструменти > Дъска, или използвате грешната версия на avrdude. За качване на скици в Arduino се използва леко модифицирана версия на avrdude. Стандартната версия изпраща заявки, идентифициращи устройството във формат, който буутлоудърът на Arduino не разбира, което води до грешка. Затова се уверете, че използвате точната версия на avrdude, която идва с Arduino (

Ядрото на платформата Arduino е микроконтролен чип, известен като ATmega328.

ATmega328 всъщност е 8-битов компютър във всички отношения: след като бъде включен, неговият процесор зарежда байт от дадено място в паметта и го интерпретира като команда. Какво следва след това зависи от стойността на този байт. Само за разлика от познатите ни компютри, ATmega328 не работи операционна система: Използването на ресурси е под пълен контрол на програмиста. Не можем да разчитаме на операционна система, която може да разпредели неправилно паметта, да я препълни или да доведе до други последствия, нежелани за прецизна автоматична система. Освен това процесорът може да работи само по една задача в даден момент (вероятно знаете, че всички процесори работят по този начин, но операционната система разпределя работното време на различни задачи по такъв начин, че изглежда, че няколко програми на вашия компютър са работещи по едно и също време).

Новият Arduino има напълно празна памет, следователно първият байт, обработен от процесора, има стойност нула: „Без операция“. Преди с помощта на Arduinoтрябва да заредите изпълнима програма в паметта му, т.е. поредица от битове, първият от които се интерпретира като команда и се изпълнява. Ако командата се нуждае от параметри за изпълнение, те се вземат от следващите байтове памет. След изпълнение на командата, процесорът зарежда получения байт в паметта и го интерпретира като команда. Ако изключите Arduino, паметта не се изтрива. Последователността от заредени в него байтове се съхранява в енергонезависима памет, така че когато го включите отново, програмата започва отново отначало.

Честотата на процесорните операции се задава от 16 MHz тактов генератор. Захранването може да се извърши през USB конектора. Да работиш без Arduino USB захранваненеобходимо е отделно захранване от 7 до 12 V (това напрежение се нормализира до необходимите нива от вграден регулатор, така че просто се нуждаете от евтино захранване за това). На борда на потребителя са достъпни и двете нива на напрежение от 5V и 3,3V, от които може да се изтегли максимум 50mA ток.

Arduino паметта се състои от три вида: флаш памет, където програмата се съхранява 32 KB; RAM(SRAM) 2 KB, където процесорът съхранява и презаписва променливите, използвани в програмата; и памет само за четене (EEP-ROM) от 1 KB, където програмистът може да съхранява данни, които трябва да останат при рестартиране на контролера (като флаш памет, където се съхранява програмата). В сравнение с днешните компютри, които обработват поне няколко гигабайта, 35 kb изглеждат смешни, но всъщност са достатъчни за повечето цели. Поради липсата на операционна система, използването на паметта е изцяло ваша отговорност: ако възникне препълване на паметта или се осъществи достъп до несъществуващо място в паметта, вашата програма може да се държи непредвидимо и това е доста трудно да се проследи по време на отстраняване на грешки. Винаги трябва да държите броя на променливите под контрол във вашата програма.

Процесорът ATmega328 е свързан към 14 дискретни I/O порта (номерирани от 0 до 13), 6 аналогови входа и USB порт. Дискретният I/O е електрическа връзка, което може да има две булеви състояния: 1 и 0, или TRUE и FALSE, или, както в Синтаксис на Arduino, НИСКО и ВИСОКО. Ако сигналът е в НИСКА стойност, съответният щифт има нулев потенциал от 0 V - тоест свързан към общ проводник. Ако сигналът е ВИСОК, тогава нивото на напрежението между този щифт и земята е 5 V.

Изводи 0 и 1 се използват за серийно приемане и предаване на данни: чрез тях ардуино платкаможе да комуникира с прикачени модули (щитове), използвайки сериен протокол. Серийните протоколи са комуникационни протоколи, при които всеки бит се предава/получава последователно един след друг. Изводи 2 и 3 също могат да се използват като прекъсвания. Прекъсването е електрически сигнал на цифров вход, който прекъсва текущата програма на процесора, когато възникне дадено логическо състояние. Прекъсванията съществуват и в процесорите на конвенционалните компютри. След като възникне прекъсване, процесорът съхранява състоянието си в паметта и забавя изпълнението на програмата, преминавайки към изпълнението на манипулатор на прекъсване: кратка част от програмния код, необходима за обслужване на прекъсването. След завършване процесорът възобновява състоянието, което е имал преди пристигането на прекъсването, и възобновява изпълнението на програмата.

Пинове 3, 5, 6, 9, 10 и 11 могат да се използват като PWM изходи и имат някои аналогови настройки. Съответно клетките на паметта им съдържат стойности между 0 и 255.

Фиг. 1 Arduino UNO, както изглежда отгоре и отдолу. Обърнете внимание на картата на Италия на гърба.

Пин 13 също е свързан към светодиода на платката. Когато сигналът е НИСЪК, светодиодът е изключен, а ако сигналът е ВИСОК, светодиодът свети.

В допълнение към стандартната употреба като цифрови I/O, щифтове 10, 11, 12 и 13 осигуряват възможност за комуникация с външни периферни устройства.

Аналоговите входове са обозначени с A0 ... A5: всеки от тях има цифрова резолюция от 10 бита,

тоест, те преобразуват всяко напрежение между 0 и 5V в число между 0 и 1023, което може да бъде достъпно в паметта.

Всички платформи са монтирани върху дъска с размери 60,6 mm × 53,4 mm и тегло не повече от 25 g (фиг. 1).

Платките имат и USB A/B конектори, с които можете да ги свържете към компютър за комуникация. USB връзката също осигурява захранване на Arduino, когато е свързан към компютър, така че не се нуждаете от външен източник на захранване, за да започнете.

програма

Програмата Arduino, както всяка друга програма за процесора, е последователност от битове на машинен език. За да улесни живота на програмистите, екипът на Arduino разработи език за програмиране на високо ниво, компилатор и инструмент за фърмуер за качване на машинен код в паметта на Arduino.

Всички тези инструменти са включени в една програма IDE (интегрирана среда за разработка), безплатна

за изтегляне от уебсайта на Arduino: изберете операционната система на вашия компютър и изтеглете програмата. Изглежда точно като повечето обикновени компютърни програми. Има няколко раздела в различни прозорци. Един от тези прозорци се използва за редактиране на програмата. На жаргон на Arduino се нарича скица. Скиците са написани на опростен C++.


Фиг. 2 Програмата Arduino се появява като прозорец, в който можете да въведете текста на програмата, който просто се нарича скица.

Можете да компилирате вашата скица до Програма Ардуино(Фиг. 2), като щракнете върху бутона Проверка в горния ляв ъгъл на прозореца: процесът на компилация превежда програмата C ++ в съответните машинни кодове на процесора ATmega328. Веднъж компилиран, изпълнимият скеч може да бъде качен в паметта на Arduino чрез USB кабел чрез натискане на бутона Качване. Може да се наложи да изберете подходящия COM порт от менюто, ако има повече от един наличен. Зареждането на скица винаги кара първо да стартира компилатора. Скицата започва веднага след приключване на изтеглянето.

Допълнителни функции се добавят към основния език с помощта на външни библиотеки, разработени от екипа на Arduino или трети страни. Библиотеките могат да бъдат включени в изпълнимия код, като изберете съответния елемент от менюто. Ако е необходимо, добавянето на библиотека автоматично ще добави редове към скицата, съобщавайки на компилатора за новия синтаксис.