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

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

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

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

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

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

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

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

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

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

// Программа проверяет 3-й порт на наличие на нём сигнала и посылает ответ в 
// виде текстового сообщения на последовательный порт компьютера
void loop()                    // тело программы
{
  if (digitalRead(3) == HIGH)  // условие на опрос 3-го порта
    Serial.print('H');         // отправка сообщения в виде буквы «Н» на COM-порт
  else
    Serial.print('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

По теме:
Программирование Arduino — Последовательная передача данных
  • 0
  • 1 июля 2009, 10:50
  • admin

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

RSS свернуть / развернуть
+
+1
Начал пробовать пример и компилятор выдает ошибку. Вместо Serial.begin(9600);, написано beginSerial(9600);

В общем должно быть так "Serial.begin(9600); // установка скорости работы серийного порта на 9600 бит/сек"
avatar

TarLink

  • 17 февраля 2016, 17:40
+
0
Спасибо! Пофиксил.
avatar

admin

  • 18 февраля 2016, 09:22

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