Пришло время подключить плату Ардуино к компьютеру. Думаю, что вы уже установили Arduino IDE и у вас есть кабель для подключения платы к USB-порту, так как на разных платах самые разные USB-разъемы: у Uno - разъем как у принтеров (тип В, 7х8), на nano у меня мини-USB (тип В 3х7), на MH-Tini микро - USB (тип В, 2х7 мм).
От качества соединения часто зависит, увидит ли комп плату. У меня неоднократно были неудачные подключения, но потом, если пошевелить разъем ..... :).
Как правило, как только подключишь плату к компьютеру на ней загораются два светодиода: один горит постоянно, показывая что питание подается на плату, а второй вспыхивает (обычно с частотой 1 Гц), показывая что начал работать микропроцессор, в который уже залита программа мигания. Но все это совсем не значит, что вы сможете загрузить свою программу - для этого нужно проверить, создан ли виртуальный СОМ порт. Он будет создан при корректной работе загрузчика на плате, для которого там используется отдельная микросхема (очень часто типа СН340). А вот на MH-Tini этой микросхемы нет и она у меня пока так и не подключилась. Поэтому при покупке платы смотрите, есть ли там загрузчик (обычно это указывается в описании СН340).
Чтобы проверить создание СОМ-порта нужно (для Виндовс) зайти в раздел "система" панели управления и просмотреть СОМ порты.
Как видно, у меня образовался СОМ6. У меня он обозначен как USB SERIAL CH340. Если я подключаю плату Uno, то в обозначении у меня так и написано, но номер порта другой, обычно СОМ4. Но номер порта значения не имеют, важно, что комп опознал загрузчик вашей платы.
Теперь обратимся ПО. Запускаем.
Пройдемся по меню.
Во вкладке Файл все знакомо, кроме пункта Примеры. В этом пункте можно выбрать примеры готовых программ. Например, там есть программы с участием жидкокристаллического индикатора Liquid Crystal.
Во вкладке Правка никаких секретов нет.
Во вкладке Скетч первый пункт Проверить/Компилировать позволяет проверить правильность написания вашей программы и подготовить ее к загрузке. Процесс проверки и компиляции отражается в нижней части экрана. Пункт Загрузка позволяет загрузить проверенную и скомпилированную программу в память микропроцессора. Необычен пункт Подключить библиотеку, при выборе которого выпадает меню с названием имеющихся библиотек. По моему пониманию библиотеки - это подпрограммы, описывающие взаимодействие микропроцессора с каким либо устройством, например, с жидкокристаллическим индикатором. Эти подпрограммы можно подключать к своей программе для управления каким-либо внешним устройством или для получения данных от датчиков.
Во вкладке инструменты содержится информация о вашей плате. Причем, если ваша плата подключилась к компьютеру корректно, то ее данные появятся в этом окне. Так у меня подключена плата nano с процессором ATmega328P к порту СОМ6.
Если у вас не появился номер порта, то его нужно выбрать:
Точно также можно выбрать тип платы и микропроцессора. если у вас какой-то экзотический клон.
Список плат и микропроцессоров весьма обширный.
При открытии окна программы (рис. 3), там видна заготовка для программы. Такая же заготовка появляется, если вы нажмете Новый во вкладке Файл.
Я уже писал, что, кроме Бейсика, другим язЫкам не обучен :). Но, если вы не захотите сразу написать программу для синтезатора :), то проблем нет.
void setup() {
// здесь объявляются переменные, библиотеки и т.д., которые будут
//использоваться в программе
}
void loop() {
// а этот бесконечный цикл содержит все действия, которые вы хотите
//проводить
}
Все действия внутри цикла проводятся последовательно, так как процессор одноядерный, то параллельных действий здесь не бывает.
Что же сделать для начала? Обычно рекомендуют подключить светодиод и кнопку. А можно ничего не подключать? Можно, ведь есть уже на плате светодиод, которым можно управлять программно. Он подключен к пину 13.
Вот такую программу вы найдете в сети
int Led = 13; // объявляем переменную Led связывая ее с пином 13
void setup(){
pinMode(Led, OUTPUT); // определяем переменную, как выход
}
void loop() {
digitalWrite(Led, HIGH); // подаём напряжение высокого ЛУ на 13 пин
delay(1000); // ожидаем 1 секунду
digitalWrite(Led, LOW); // подаём напряжение низкого ЛУ на 13 пин
delay(1000); // ожидаем 1 секунду
}
Скопируйте этот скетч и вставте в окно программы. Обратите внимание, что среда программирования сама сделает отступы и раскрасит текст
Эта программа заставит мигать светодиод с частотой 1 Гц, так как мы задали задержку delay(1000), равную 1000 мкс, т.е. 1 с.
Возникает вопрос, а в каком случае будет гореть светодиод: когда на пине 13 будет напряжение высокого логического уровня или низкого? Можно задать этот вопрос Алисе :), а можно в последней строке увеличить время задержки, например, в два раза: delay(2000);
Заходим в Скетч и нажимаем Проверить/Компилировать и процесс пошел. А вот и результат:
Все в порядке, скетч успешно прошел проверку. Вновь заходим в Скетч, только теперь жмем на Загрузить.
Все прошло успешно, даже "Спасибо" сказали :). И программа заработала. Светодиод светился в два раза меньше, чем находился в погасшем состоянии. А это значит, что диод светится, когда на пине 13 присутствует высокий логический уровень.
Вот и первая программа заработала и эксперимент удался.
Всем здоровья и успехов!