Разглядывая примеры в , Вы, возможно, обратили внимание на скетч BlinkWithoutDelay (Examples – Digital — BlinkWithoutDelay)
Этот скетч интересен тем, что он выполняет задачу без функции (). Это означает, что мы можем «одновеменно» с миганием светодиода выполнять ещё какую-нибудь интересную задачу :)
Как же это реализовано? Как обычно – всё достаточно просто :)
Вместо обычного delay() используется (), которая, как мы помним, возвращает нам число миллисекунд, с момента исполнения Arduino/Freeduino текущей программы.
Для этого воспользуемся самым популярным драйвером, используемым для управления моторчиками – микросхемой L293D.
L293D содержит два драйвера для управления электродвигателями небольшой мощности. Имеет две пары входов для управляющих сигналов и две пары выходов для подключения электромоторов. Кроме того, у L293D есть два входа для включения каждого из драйверов. Эти входы используются для управления скоростью вращения электромоторов с помощью (PWM).
Здесь упоминалось, что Arduino//Freeduino можно программировать не только на -е, но и на других языках программирования.
Попробуем разобраться как это можно сделать — написать программу на обычном С/C++.
Для этого воспользуемся компилятором WinAVR.
— это интегрированная среда разработки; она включает мощные компиляторы Си и ассемблера, программатор AVRDUDE, отладчик, симулятор и множество других вспомогательных программ и утилит.
Скачать WinAVR можно на странице проекта:
однако, в комплекте Arduino IDE уже идёт WinAVR (\hardware\tools\avr\), поэтому можно воспользоваться им.
Лично мне, в очень не хватает отладчика – с этим обязательно нужно что-нибудь сделать :)
Но ведь уже существуют пакеты для разработки электронных устройств от схемы до печатной платы.
Например, замечательная программа – :
— PROTEUS может симулировать несколько МК в одном устройстве (AVR, PIC, Motorola, ARM)
— в поставку PROTEUS входит очень много моделей компонентов.
— можно симулировать любые электронные устройства и не содержащие МК
Т.о. если нужно проверить какую-нибудь идею или вариант реализации – можно не искать детали, а просто «собрать» схему в PROTEUS-е и посмотреть как она будет работать :)
Наша свежеслепленная , как и компьютер без софта – просто железо. Чтобы плата ожила и начала делать хоть что-нибудь нужна программа или как часто говорят – прошивка. Написать её под ардуину можно на разных языках — ассемблере, си, паскале, хоть на бейсике, но, обычно, пишут на , из под личной ардуиновской среды разработки — и загружают (прошивают) оттуда же.
Как писать прошивки (у ардуино они называется – скетчи) нам подробно уважаемый admin, а тем кто захочет разобраться с физическим процессом запихивания нашего виртуального творчества в плату поможет (надеюсь) эта серия статей.
На официальном сайте пишут: "...is programmed using the Arduino programming language (based on Wiring)". Фактически — нет никакого особого языка программирования и программы пишутся на C/C++, а компилируются и собираются с помощью широко известного avr-gcc (в версии для Windows — ).
Все особенности сводятся к тому, что имеется набор библиотек, включающий в себя некоторые функции (вроде pinMode) и объекты (вроде Serial), а при компиляции Вашей программы среда разработки создает временный .cpp файл, в который кроме Вашего кода включается еще несколько строчек, и полученный результат скармливается компилятору а затем линковщику с нужными параметрами.
Для примера, рассмотрим стандартный тестовый скетч ()