Инсталиране на arduino uno на Windows 7. Има проблеми с USB FTDI драйвери

Обмислете да започнете с Arduino в операционната зала Windows система. Да вземем за пример платформата Arduino Uno. При другите табла разликата е минимална.

Инсталиране на Arduino IDE

Първо трябва да инсталирате интегрираната среда на компютъра Разработка на Arduino - Arduino IDE. Защото войни между Arduino SRL и Arduino LLC, в зависимост от модела на платформата, изберете версията Arduino IDE.

Изтеглете Arduino IDE 1.7.7- за всички платформи (стабилна версия от Arduino SRL).
Изтеглете Arduino IDE 1.6.4- за всички платформи с изключение на Arduino Leonardo ETH и Arduino M0 (стабилна версия от Arduino LLC).

Стартиране на Arduino IDE

След като изтеглите и инсталирате Arduino IDE, нека го стартираме! Трябва да се отвори прозорец като този по-долу.

Нещо се обърка?

Arduino IDE не стартира? JRE (Java Runtime Environment) вероятно не е инсталиран правилно на компютъра. Обърнете се към стъпка (1), за да преинсталирате Arduino IDE: инсталаторът ще свърши цялата работа по внедряването на JRE.

Свързване на Arduino към компютър

След като инсталирате Arduino IDE, е време да свържете платформата Arduino към компютъра.

Свържете Arduino към компютър чрез USB кабел. Ще видите, че светодиодът “ON” на платката се включва и светодиодът “L” ще започне да мига. Това означава, че захранването се подава към платката и микроконтролера Arduino започнаизпълнете фабрично програмираната програма “Blink” (мигане на светодиода).

За да конфигурираме Arduino IDE да работи с конкретен Arduino, трябва да знаем какъв номер на COM порт компютърът е присвоил на тази платформа. За да направите това, отидете в "Диспечер на устройства" на Windows и отворете раздела "Портове (COM и LPT)". Трябва да видим следната картина:


Това означава, че операционната система е разпознала нашата платка Arduino като COM порт, избрала е правилния драйвер за него и е присвоила номер 2 на този COM порт.Ако свържем друга платка Arduino към компютъра, операционната система ще й присвои различен номер . Ето защо, ако имате няколко платки Arduino, е много важно да не се бъркате с номерата на COM портовете.

Нещо се обърка?

Ако след свързване на Arduino към компютъра не се появяват нови устройства в диспечера на устройствата, това може да се дължи на една от причините:
Дефектен USB кабел или порт
Странично заключване операционна система
Дефектна платка Arduino

Настройване на Arduino IDE за работа с Arduino

Сега трябва да кажем на Arduino IDE, че платката, с която ще говори, е на COM порт номер 2.
За да направите това, отидете в менюто: Инструменти Порт и изберете порта "COM2". Сега Arduino IDE знае - нещо има на порта "COM2". И с това "нещо" тя скоро ще трябва да общува.

За да няма съмнения в Arduino IDE, трябва да кажем на Arduino IDE с коя платка ще работим. За да направите това, отидете в менюто: Tools Board и изберете платката "Arduino Uno".


Сега Arduino IDE знае всичко необходимо за флашване на Arduino.

Нещо се обърка?

Празен ли е списъкът със серийни портове? Така че Arduino не е свързан правилно. Върнете се към стъпка (3), за да отстраните грешки във връзката.
Arduino IDE е невероятно бавен при навигация в менюта? Деактивирайте всички външни "Bluetooth Serial" устройства в Device Manager. Например виртуално устройство за свързване мобилен телефонпрез Bluetooth може да причини това поведение.

Средата е конфигурирана, платката е свързана. Сега можете да продължите с качването на скицата.
Arduino IDE съдържа много готови примери, в които можете бързо да надникнете в решението на всеки проблем. В него има и прост пример за "Blink". Нека го изберем.


Нека променим малко кода, за да видим разликата с фабрично мигащия светодиод.
Вместо ред:

Пълна версия на кода:

void setup()
{
// задаване на пин 13 за излизане от режим
pinMode(13, ИЗХОД);
}

void loop()
{
// прилагаме към пин 13 "висок сигнал"
digitalWrite(13, HIGH);

// изчакайте 100 милисекунди
забавяне (100);

// прилагане на пин 13 "нисък сигнал"
digitalWrite(13, LOW);

// изчакайте 100 милисекунди
забавяне (100);
}

Светодиодът "L" сега трябва да мига и изключва на всеки 100 милисекунди. Това е 10 пъти по-бързо от фабричната версия. Нека качим нашата скица в Arduino и да видим дали е вярно?

След зареждане светодиодът ще започне да мига по-бързо. Това означава, че всичко се получи. Сега можете спокойно да преминете към „Експерименти“

Нещо се обърка?

Зареждането води до грешка като avrdude: stk500_get sync(): not in sync: resp = 0x00? Това означава, че Arduino е конфигуриран неправилно. Върнете се към предишните стъпки, за да се уверите, че устройството е разпознато от операционната система и че правилните настройки за COM порта и модела на платката са зададени в Arduino IDE.

коментари:

Ще разгледаме как да започнем с Ардуино Нанона операционна система Windows 10.

1. Инсталирайте Arduino IDE

Инсталирайте интегрираната среда за разработка Arduino (Arduino IDE) на вашия компютър.

За да направите това, отидете на официалния уебсайт на Arduino и изтеглете последна версия Arduino IDE.

https://www.arduino.cc/en/Main/software#

Стартирайте изтегления файл като администратор.

Съгласни сме с лиценза.


Не променяйте нищо и щракнете "по-нататък".



Изберете пътя за инсталиране.


Чакаме края на инсталацията.




В следващия прозорец (маркирайте „Винаги се доверявайте на софтуера Arduino LLC“ и щракнетеИнсталирай.



В инсталационния прозорец щракнете върху близо.



2. Стартирайте Arduino IDE

Главният прозорец на Arduino IDE. Докато Arduino Nano не е свързан към компютъра. Обърнете внимание на факта, че в долния десен ъгъл има надпис „Arduino/Genuino Uno на COM1“. Това означава, че програмата е конфигурирана за работа Ардуино платка Uno и неговото търсене се извършва на COM1 порт.

3. Свързване на Arduino към компютър

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

Сега трябва да разберете номера на COM порта, който компютърът е присвоил на тази платформа. Отидете на "Диспечер на устройства" Windows и отворен раздел "Портове (COM и LPT)".


И така Windows 10 идентифицира нашата Arduino платка като COM порт #3.

4. Настройване на Arduino IDE за работа с Arduino

Кажете на Arduino IDE, че нашата платка Arduino Nano е включена COM порт #3.

Стартирайте Arduino IDE и отидете на елемента от менюто:

"Инструменти--> Порт--> и изберете COM3 порта".



Също така трябва да кажете на Arduino IDE с коя платка да работи.

Изберете от менюто:

„Инструменти--> Платка--> изберете платка „Arduino Nano“.



На тази инсталация и настройка на arduinoзавършен.

Програмите не мигат в 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 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. Основи" – "Мигайте".

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


Но може да има платки, които нямат този светодиод, в който случай ще трябва да го свържете през щифтовете на платката. Нека вземем най-обикновен цветен светодиод и го свържем чрез ограничителен резистор 220Ohm - 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 ще мига безкрайно!

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

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