Загрузив любой тестовый скетч Вы сразу увидите, что там обязательно присутствуют 2 функции: setup() и loop().
Т.о. и в своей программе Вы должны объявить эти две основные функции.
Функция 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й – входом
Комментарии (2)
RSS свернуть / развернутьВ общем должно быть так "Serial.begin(9600); // установка скорости работы серийного порта на 9600 бит/сек"
TarLink
admin
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.