Программирование 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 комментариев на «“Программирование Arduino — структура программы, константы”»

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение