• - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!
подписаться на RSS-ленту

Программирование Arduino - структура программы, константы

1. Программирование Arduino — введение

2. Структура программы

Загрузив любой тестовый скетч Вы сразу увидите, что там обязательно присутствуют 2 функции: setup() и loop().


Т.о. и в своей программе Вы должны объявить эти две основные функции.

Функция setup() запускается один раз, после каждого включения питания или сброса платы Arduino/Freeduino. Используйте её, чтобы инициализировать переменные, установить режимы работы цифровых портов, и т.д.

Функция loop() в бесконечном цикле последовательно раз за разом исполняет команды, которые описаны в ее теле. Т.е. после завершения функции снова произойдет ее вызов.

Разберем простой пример:

void setup()          // начальные установки
{
  beginSerial(9600);  // установка скорости работы серийного порта на 9600 бит/сек
  pinMode(3, INPUT);  // установка 3-его порта на ввод данных
}

// Программа проверяет 3-ий порт на наличие на нём сигнала и посылает ответ в 
// виде текстового сообщения на последовательный порт компьютера
void loop()                    // тело программы
{
  if (digitalRead(3) == HIGH)  // условие на опрос 3го порта
    serialWrite('H');          // отправка сообщения в виде буквы «Н» на COM-порт
  else
    serialWrite('L');          // отправка сообщения в виде буквы «L» на COM-порт
  delay(1000);                 // задержка 1 сек.
}


Константы

Константы – предопределенные значения. Они используются, чтобы делать программы более легкими для чтения.
Объявление констант (а так же базовых макросов и функций) можно посмотреть в файле

\hardware\cores\arduino\wiring.h

как видите, там же объявляются и наши функции:

void setup(void);
void loop(void);

Классифицируем константы в группах:

Уровни сигналов порта HIGH и LOW

#define HIGH 0x1
#define LOW  0x0

При чтении или записи к цифровому порту применимо только два возможных значения – порт может быть установлен как HIGH (высокий уровень) или LOW (низкий уровень).

Уровень HIGH соответствует 5 вольтам на выходе. При чтении значения на цифровом порте, начиная с 3 вольт и выше (до напряжения питания), микропроцессор воспримет это напряжение как HIGH. Эта константа представлена целым числом 1.

Уровень LOW соответствует 0 вольтам на выходе порта. При чтении значения на цифровом порте, начиная с 2 вольт и меньше (до 0V), микропроцессор воспримет это напряжение как LOW. Эта константа представлена целым числом 0.

Таким образом, оба следующих вызова будут эквивалентны:

 digitalWrite(13, HIGH);   // можно так,
 digitalWrite(13, 1);      // а можно и так

Согласитесь — первый вариант более нагляден.

Настройка цифровых портов на ввод (INPUT) и вывод (OUTPUT) сигналов

#define INPUT 0x0
#define OUTPUT 0x1

Цифровые порты могут использоваться на ввод или вывод сигналов.

Изменение порта с ввода на вывод производится при помощи функции pinMode().

Порты, сконфигурированные на ввод сигналов, имеют большое входное сопротивление, что позволяет подключать к ним источник сигнала, и порт не будет потреблять большой ток.

Порты, сконфигурированные на вывод сигналов, имеют малое выходное сопротивление. Это означает, что такие порты могут обеспечивать подключенные к ним элементы электроэнергией. В этом состоянии порты поддерживают положительное или отрицательное направление тока до 40 мА (миллиампер) на другие устройства или схемы. Это позволяет подключить к ним какую-либо нагрузку, например светодиод (через резистор, ограничивающий ток). Порты, сконфигурированные как выводы, могут быть повреждены, если их замкнуть накоротко на «землю» (общая шина питания), на источник питания +5 В, или подсоединить к мощной нагрузке с малым сопротивлением.

Пример:

  pinMode(13, OUTPUT);  // 13й вывод будет выходом
  pinMode(12, INPUT);   // а 12й – входом


читать далее: 3. Программирование Arduino — цифровой ввод/вывод

Ссылки на использованные материалы:
http://arduino.cc/en/Reference/HomePage (или же в каталоге ArduinoIDE \reference\HomePage.html )
http://freeduino.ru/arduino/lang.html
  • 0
  • 1 июля 2009, 10:50
  • admin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.