Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

SetFirmwareVersion(byte major, byte minor)

Поиск

установить имя прошивки используя имя скетча без расширения

 

Отправка сообщений:

sendAnalog(byte pin, int value)

послать аналоговое сообщение

sendDigitalPorts(byte pin, byte firstPort, byte secondPort)

послать цифровое сообщение как отдельные байты

sendDigitalPortPair(byte pin, int value)

послать int на цифровой порт

sendSysex(byte command, byte bytec, byte* bytev)

послать комманду с аттрибутами в виде массива байт

sendString(const char* string)

послать строку на компьютер

sendString(byte command, const char* string)

послать строку на компьютер использя параметры командной строки

 

Получение сообщений:

available()

проверить наличие сообщений в буфере

processInput()

прочесть сообщение, находящееся в буфере

attach(byte command, callbackFunction myFunction)

подключить функцию к определенному типу сообщений

detach(byte command)

отключить функцию от определенного типа сообщений

 

Вызываемые функции

Чтобы подключить вашу функцию к типу сообщений она должна соответствовать стандартным функциям обратного вызова. Существует три основных типа функций Firmata: generic, string, and sysex.

generic

void callbackFunction(byte pin, int value);

system_reset

void systemResetCallbackFunction(void);

string

void stringCallbackFunction(char *myString);

sysex

void sysexCallbackFunction(byte pin, byte byteCount, byte *arrayPointer);

 

Типы сообщений

Представлены различные типы сообщений, к которым можно подключить нашу функциюh

ANALOG_MESSAGE

аналоговое значение пина

DIGITAL_MESSAGE

8-бит цифровых данных (1 порт)

REPORT_ANALOG

включить/отключить отчет об аналоговом пине

REPORT_DIGITAL

включить/отключить отчет о цифровом пине

SET_PIN_MODE

установить режим пина INPUT/OUTPUT/PWM/и.т.д.

FIRMATA_STRING

строки C-стиля использующие stringCallbackFunction как типовую функцию

SYSEX_START

generic, сообщения (с MIDI SysEx протоколом), использует sysexCallbackFunction как типовую функцию

SYSTEM_RESET

сообщение для перезагрузки прошивки,используется systemResetCallbackFunction как типовая функция

 

Пример:

Этот пример показывает, как можно передавать и получать аналоговые данные используя Firmata.

#include <Firmata.h>

byte analogPin;

 

void analogWriteCallback(byte pin, int value)

{

pinMode(pin,OUTPUT);

analogWrite(pin, value);

}

 

void setup()

{

Firmata.setFirmwareVersion(0, 1);

Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);

Firmata.begin();

}

 

void loop()

{

while(Firmata.available()) {

Firmata.processInput();

}

for(analogPin = 0; analogPin < TOTAL_ANALOG_PINS; analogPin++) {

Firmata.sendAnalog(analogPin, analogRead(analogPin));

}

}

LiquidCrystal Library

 

Данная библиотека позволяет Arduino работать с ЖКИ, основанными на чипах Hitachi HD44780 (или совместимыми), которые можно встретить в большинстве текстовых ЖКИ. Библиотека работает в 4-х и 8 битовом режиме. При этом используется 4 или 8 линий данных плюс линия RS, Enable, и, опционально, RW.

 

LiquidCrystal()

 

Описание:

Создает переменную типа LiquidCrystal. Дисплей может быть подключен, используя 4 или 8 линий данных. В первом случае пины d0 - d3 остаются неподключенными. RW может быть подтянут на землю если он неподключен

Синтаксис:

LiquidCrystal(rs, enable, d4, d5, d6, d7)

LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)

LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)

LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

Параметры:

rs: номер пина Arduino который подключен к RS ЖКИ.

rw: номер пина Arduino который подключен к RW ЖКИ(опционально).

enable: номер пина Arduino который подключен к разрешающему пину ЖКИ.

d0, d1, d2, d3, d4, d5, d6, d7: номера пинов Arduino которые подключены к соответствующим пинам LCD. d0, d1, d2, и d3 опциональны;

 

Пример:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()

{

lcd.print("hello, world!");

}

void loop() {}

 

Begin()

Описание:

Устанавливает количество символов дисплея (кол-во строк, символов в строке).

Синтаксис:

lcd.begin(cols, rows)

Параметры:

lcd: переменная типа LiquidCrystal

cols: количество символов в строке дисплея.

rows: количество строк дисплея.

 

Clear()

Описание:

Очищает экран и устанавливает курсор в левый верхний угол.

Синтаксис:

lcd.clear()

Параметры:

lcd: переменная типа LiquidCrystal

 

Home()

Описание:

Устанавливает курсор в левый верхний угол дисплея. Новый текст будет заменять уже имеющийся.

Синтаксис:

lcd.home()

Параметры:

lcd: переменная типа LiquidCrystal

 

SetCursor()

Описание:

Устанавливает курсор в определенную позицию.

Синтаксис:

lcd.setCursor(col, row)

Параметры:

lcd: переменная типа LiquidCrystal

col: номер символа, начиная с 0.

row: номер строки, начиная с 0

 

Write()

Описание:

Печатает символ на ЖКИ.

Синтаксис:

lcd.write(data)

Параметры:

lcd: переменная типа LiquidCrystal

data: символ, который необходимо отобразить.

 

Print()

Описание:

Печатает текст на ЖКИ.

Синтаксис:

lcd.print(data)

lcd.print(data, BASE)

Параметры:

lcd: переменная типа LiquidCrystal

data:данные для печати(char, byte, int, long, or string)

BASE (опционально): основание, в котором передавать числа: BIN для двоичной (основание 2), DEC для десятиричной (основание 10), OCT для восьмеричной (основание 8), HEX для шестнадцатеричной (основание 16).

 


Cursor()

Описание:

Отображает курсор на экране ЖКи в том месте, где будет напечатан следующий символ.

Синтаксис:

lcd.cursor()

Параметры:

lcd: переменная типа LiquidCrystal

 

NoCursor()

Описание:

Скрывает курсор

Синтаксис:

lcd.noCursor()

Параметры:

lcd: переменная типа LiquidCrystal

 

Blink()

Описание:

Отображает мигающий курсор на экране ЖКИ. В случае использования вместе с функцией cursor(), результат будет зависеть от конкретного дисплея.

Синтаксис:

lcd.blink()

Параметры:

lcd: переменная типа LiquidCrystal

 

NoBlink()

Описание:

Выключает мигающий курсор.

Синтаксис:

lcd.noBlink()

Параметры:

lcd: переменная типа LiquidCrystal

 

Display()

Описание:

Включает дисплей после выключения функцией noDisplay(). восстанавливает текст и положение курсора, что были на дисплеее ранее.

Синтаксис:

lcd.display()

Параметры:

lcd: переменная типа LiquidCrystal

NoDisplay()

Описание:

Выключает дисплей без потери информации на нем.

Синтаксис:

lcd.noDisplay()

Параметры:

lcd: переменная типа LiquidCrystal

 


ScrollDisplayLeft()

Описание:

Сдвигает содержимое дисплея влево

Синтаксис:

lcd.scrollDisplayLeft()

Параметры:

lcd: переменная типа LiquidCrystal

 

ScrollDisplayRight()

Описание:

Сдвигает содержимое дисплея вправо

Синтаксис:

lcd.scrollDisplayRight()

Параметры:

lcd: переменная типа LiquidCrystal

 

Autoscroll()

Описание:

Включает актоматический скроллинг дисплея. Это значит, что каждый последующий символ отправленный на дисплей, сдвигает имеющиеся на экране на одно положение, в зависимости от выбранного направления текста.

Синтаксис:

lcd.autoscroll()

Параметры:

lcd: переменная типа LiquidCrystal

 

NoAutoscroll()

Описание:

Выключает автоматический скроллинг дисплея.

Синтаксис:

lcd.noAutoscroll()

Параметры:

lcd: переменная типа LiquidCrystal

 

LeftToRight()

Описание:

Устанавливает направление набора текста слева-на-право, по умолчанию. Это значит, что каждый новый символ будет появляться справа от предыдущего.

Синтаксис:

lcd.leftTorRight()

Параметры:

lcd: переменная типа LiquidCrystal

 

RightToLeft()

Описание:

Устанавливает направление набора текста справа-на-лево. Это значит, что каждый новый символ будет появляться слева от предыдущего.

Синтаксис:

lcd.rightToLeft()

Параметры:

lcd: переменная типа LiquidCrystal

 

CreateChar()

Описание:

Создает новый символ для его отображения на ЖКИ. ПОддерживается 8 дополнительных символово 5x8 пикселов (с номерами от 0 до 7). Каждый символ представляет собой массив из 8 байт, по одному байту на каждую строку символа, занимая младшие 5 бит. Для создания специального символа используйте функцию write() с номером символа.

Синтаксис:

lcd.createChar(num, data)

Параметры:

lcd: переменная типа LiquidCrystal

num: номер создаваемого символа (0 to 7)

data: информация о пикселях символа

 

Servo Library

 

Библиотека позволяет платформе управлять сервомоторами от радиоуправляемых моделей (RC). Сервомоторы имеют встроенный редуктор и контролируемый вал. Стандартные сервомоторы позволяют поворачивать вал на определенный угол, обычно в пределах от 0 до 180 градусов. Сервомоторы непрерывного вращения позволяют изменять скорость вращения вала.

В Arduino 0017 библиотеа Сервомотора поддерживает до 12 машинок для большинства платформ, и до 48 машинок на платформе Arduino Mega. На платформах (кроме Mega) использование библиотеки не позволяет использовать функциональные возможности команды analogWrite() (ШИМ) на выводах 9 и 10 независимо от того, подключен к ним сервомотор или нет. На платформе Mega могут быть использованы до 12 машинок без вмешательства в функционирования ШИМ; при использовании от 12 до 23 моторов функция ШИМ на выводах 11 и 12 будет недоступна

В Arduino 0016 и более ранных библиотека использует встроенную аппаратную функциональность и может работать только на выводах 9 и 10 (не работает совсем на Arduino Mega). В этом случае, если используется одно серво, другой вывод не ножет быть использован как нормальный ШИМ вывод для analogWrite().

Схема.

Сервомотор имеет три провода: питание, земля и управляющий вывод. Провод питания обычно красного цвета, подключается к выводу +5В на платформе Arduino. Провод Земля, обычно черного или коричневого цвета, подключется подключается к Земле платформы Arduino. Управляющий провод обычно желтого, оранжевого или белого цвет подключается к цифровому выводу платформы. Следует иметь ввиду, что сервомоторы достаточно мощные устройства, и при использовании более чем одного или двух следует подключить их к отдельному внешнему источнику питания (а не к выводу +5В на платформе). При этом нужно соединить Землю платформы с Землей внешнего источника питания.

 

Attach()

Описание:

Связывает переменную и вывод. Заметьте, что в Arduino 0016 и более ранних версиях библиотека Сервомотора поддерживает подключение сервомоторов только к выводам 9 и 10.

Синтаксис:

servo.attach(pin)

servo.attach(pin, min, max)

Параметры:

servo: переменная типа Серво

pin: номер вывода, к которому подключен сервомотор

min (дополнительно): ширина импульса, в микросекундах, соответствущего минимальному углу (0 градусов) на сервомоторе (стандартное значение 544)

max (дополнительно): ширина импульса, в микросекундах, соответствующего максимальному углу (180 градусов) на сервомоторе (стандартное значение 2400)

Пример:

#include

Servo myservo;

void setup()

{

myservo.attach(9);

}

 

void loop() {}

 

Write()

Описание

Передает значение сервомотору, управляет валом сервомотора. В стандартных сервомоторах устанавливает вал на определенный угол (в градусах), перемещая его на определенную позицию. На сервомоторах непрерывного вращения устанавливает скорость вращения вала (значение 0 соответствует максимальной скорости при вращении в прямом направлении, 180 - максимальной скорости при вращении в обратном направлении, 90 - вал неподвижен)

Синтаксис

servo.write(angle)

Параметры

servo: переменная типа Серво

angle: величина управляющего воздействия.

Пример

#include

Servo myservo;

void setup()

{

myservo.attach(9);

myservo.write(90); // set servo to mid-point

}

 

void loop() {}

 

writeMicroseconds ()

Описание

Передает значение сервомотору (в микросекундах), управляет валом сервомотора.

На стандартных сервомоторах значение 1000 соответствует полному повороту против часовой стрелке, 2000 - полному повороту по часовой стрелке и 1500 - среднее положение.

Некоторые производители не соблюдают этот стандарт в точности, поэтому сервомоторы часто реагируют на величину от 700 до 2300. Можно увеличивать конечные точки до тех пор, пока сервомотор не перестанет изменять положение вала. Отметьте, что попытка управлять сервомотором за пределами конечных точек (часто сопровождается гудением) приводит к большому потреблению тока сервомотором, что следует избегать.

Сервомоторы непрерывного вращения реагируют на команду writeMicrosecond аналогично команде write.

Синтаксис:

servo: переменная типа Серво

uS: значение параметра (в микросекундах) (int)

Пример:

#include

Servo myservo;

void setup()

{

myservo.attach(9);

myservo.writeMicroseconds(1500); // set servo to mid-point

}

 

void loop() {}

 

read()

Описаие

Считывает положение вала сервомотора (величина соответствует последнему обращению к команде write())

Синтаксис:

servo.read()

Параметры:

servo: переменная типа Серво

Значения

Угол поворота Серво (от 0 до 180 градусов)

 

Attached()

Проверяет, привязан ли серво к выводу или нет.

Синтаксис:

servo.attached()

Параметры:

servo: переменная типа серво

Возвращает:

true если серво привязана к выводу и false в другом случае

 

Detach()

Описание

Отвязывает переменную Серво от вывода. Если все переменные Серво отвязаны, то выводы 9 и 10 могут быть использованы для ШИМ с функцией analogWrite().

Синтаксис:

servo.detach ()

Параметры

servo: переменная типа Серво

 

SoftwareSerial Library

 

Оборудование Arduino имеет встроенную поддержку коммуникационного последовательного порта на выводах 0 и 1. Железная поддержка обеспечивается встроенным в чип модулем UART. Этот модуль позволяет передавать и принимать данные во время других дел, используя входной буфер данных.

Библиотека SoftwareSerial разработана для возможности последовательной коммуникации на других портах, используя программную поддержу функциональности

Ограничения:

Поскольку отсутсвует встроенная поддержrа библиотека имеет следующие ограничения:

Работа на скорости до 9600 бод

Serial.available() не работает

Serial.read() будет ждать пока данные не придут

Только данные, переданные во время выполнения функции Serial.read() будут приняты. Все остальные - потеряны.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 252; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.112.169 (0.01 с.)