Uploaded by артём волк

Balyko Ivan f

advertisement
Балыко Иван 3-1Э9
Функции Ардуино
analogRead()
analogRead(pinA)
Функция analogRead() возвращает целочисленное значение в диапазоне от 0 до 1023,
пропорциональное напряжению, поданному на аналоговый вход, номер которого мы
передаем функции в качестве параметра pinA. В большинстве плат это порты 0-5. В
платах Mini и Nano: 0-7, в плате Mega: 0-15.
analogWrite()
void analogWrite(pin, value)
Устанавливает аналоговое значение PWM (ШИМ, Широтно-импульсная модуляция) для
вывода. Используется для плавного изменения цвета у светодиода или скорости вращения
мотора. Пины с поддержкой PWM обозначены на плате символом тильда (~). Для Arduino
Uno выводы имеют номера 3, 5, 6, 9, 10 и 11.
Перед вызовом данной функции нет необходимости вызывать функцию pinMode().
Функция не возвращает значения и имеет два параметра.


pin - номер вывода для отправки сигнала
value - значение яркости от 0 (полностью выключен) до 255 (полная яркость)
(значение скважности ШИМ)
bit()
Функция возвращает значение бита в указанной позиции.
Общий пример для функций с битами.
byte flags = 0;
void setFlag(int flagNumber)
{
bitSet(flags, flagNumber);
}
void clearFlag(int flagNumber)
{
bitClear(flags, flagNumber);
}
int getFlag(int flagNumber)
{
return bitRead(flags, flagNumber);
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
flags = 0; // clear all flags
showFlags();
setFlag(2); // set some flags;
setFlag(5);
showFlags();
clearFlag(2);
showFlags();
delay(10000); // wait a very long time
}
// reports flags that are set
void showFlags()
{
for(int flag = 0; flag < 8; flag++){
if (getFlag(flag) == true)
Serial.print("* bit set for flag ");
else
Serial.print("bit clear for flag ");
Serial.println(flag);
}
Serial.println();
}
// Результат
bit clear for flag 0
bit clear for flag 1
bit clear for flag 2
bit clear for flag 3
bit clear for flag 4
bit clear for flag 5
bit clear for flag 6
bit clear for flag 7
bit clear for flag 0
bit clear for flag 1
* bit set for flag 2
bit clear for flag 3
bit clear for flag 4
* bit set for flag 5
bit clear for flag 6
bit clear for flag 7
bit clear for flag 0
bit clear for flag 1
bit clear for flag 2
bit clear for flag 3
bit clear for flag 4
* bit set for flag 5
bit clear for flag 6
bit clear for flag 7
bitClear()
Функция устанавливает 0 в указанной позиции у числа.
bitRead()
bitRead(x, n)
Функция считывает биты с указанного числа. Возвращает значение бита (0 или 1)


x - число, которое нас интересует
n - какой бит нужно считать
bitSet()
Функция устанавливает бит в указанном числе в указанной позиции.
bitWrite()
Функция записывает бит в указанной позиции.
ceil()
Функция находит ближайшее целое число к числу x, но не меньше чем само число x.
Serial.println( ceil(1) ); // 1.00
Serial.println( ceil(1.1) ); // 2.00
Serial.println( ceil(0) ); // 0.00
Serial.println( ceil(.1) ); // 1.00
Serial.println( ceil(-1) ); // -1.00
Serial.println( ceil(-1.1) ); // -1.00
cos()
Функция находит косинус угла в радианах. Значение находится в интервале от -1 до 1.
delay()
void delay(ms)
Функция делает паузу в программе на указанное количество времени в миллисекундах ,
которое указывается в единственном параметре. Не возвращает значения.

ms - число миллисекунд для установки паузы (unsigned long). 1000 миллисекунд =
1 сек
digitalRead()
digitalRead(pin)
Функция digitalRead() считывает показания с цифрового вывода.
Возвращается HIGH (высокое, 1) или LOW (низкое, 0):

pin — номер цифрового порта, на который мы отправляем сигнал
digitalWrite()
void digitalWrite(pin, value)
Функция digitalWrite() не возвращает значения и принимает два параметра:


pin — номер цифрового порта, на который мы отправляем сигнал
value — значение, которое мы отправляем на порт. Для цифровых портов
значением может быть HIGH (высокое, 1) или LOW (низкое, 0)
floor()
Функция находит ближайшее целое число к числу x, но не больше чем само число x.
Serial.println( floor(1) ); // 1.00
Serial.println( floor(1.9) ); // 1.00
Serial.println( floor(0) ); // 0.00
Serial.println( floor(.1) ); // 0.00
Serial.println( floor(-1) ); // -1.00
Serial.println( floor(-1.1) ); // -2.00
loop()
void loop()
После выполнения setup() запускается функция loop(), которая выполняется в
бесконечном цикле.
Функция loop() должна присутствовать в любой программе (скетче), даже если вам не
нужно ничего выполнять в них — просто не пишите ничего между фигурными скобками.
map()
map(value, fromLow, fromHigh, toLow, toHigh)
Преобразует число из одного диапазона в другой диапазон. Т.е. значение
из fromLow попадёт в toLow, значение fromHigh попадёт в toHigh, а значения между
ними пропорционально попадут в новые значения другого диапазона.
Нижнее значение диапазона может быть больше или меньше верхнего значения.
Функция map() в таких случаях может работать в обратном порядке. Например.
y = map(x, 1, 50, 50, 1);
Также допускаются отрицательные числа.
y = map(x, 1, 50, 50, -100);
Функция использует целые числа и не генерирует дробные числа. Дробные числа
усекаются до целых.





value - число для конвертации
fromLow - нижнее значение текущего диапазона
fromHigh - верхнее значение текущего диапазона
toLow - нижнее значение нового диапазона
toHigh - верхнее значение нового диапазона
Возвращается новое значение после преобразования.
/* Map an analog value to 8 bits (0 to 255) */
void setup() {}
void loop()
{
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
}
max()
Функция возвращает большее из двух чисел.
int myValue = analogRead(A0); // получим какое-то значение с аналогового порта
int maxValue = min(myValue, 200); // сравним с некоторым значением и узнаем, какое из
них больше
millis()
millis()
Функция без параметров возвращает число миллисекунд (unsigned long), прошедших с
запуска Arduino.
Пример
unsigned long time;
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("Time: ");
time = millis();
//prints time since program started
Serial.println(time);
// wait a second so as not to send massive amounts of data
delay(1000);
}
min()
Функция возвращает меньшее из двух чисел.
int myValue = analogRead(A0); // получим какое-то значение с аналогового порта
int minValue = min(myValue, 200); // сравним с некоторым значением и узнаем, какое из
них меньше
pinMode()
void pinMode(pin, mode)
Функция pinMode() устанавливает режим для портов.


pin - вывод, с которым мы собираемся работать
mode - как должен работать указанный вывод: работать на выход (OUTPUT) или
вход (INPUT) или INPUT_PULLUP
pow()
Функция для возведения числа в степень.
void setup() {
Serial.begin(9600);
int z = pow(2, 3);
Serial.println(z); // 8
}
void loop() {}
random()
random(max)
random(min, max)
Функция генерирует псевдослучайные числа.


min - нижняя граница случайных значений
max - верхняя граница случайных значений
Функция возвращает случайное число между min и max-1 (long)
Пример
char* catNames[] = {
"Барсик",
"Васька",
"Мурзик",
"Рыжик"
};
void setup() {
Serial.begin(9600);
}
void loop() {
int delayPeriod = random(2000, 5000);
delay(delayPeriod);
int index = random(4);
Serial.println(catNames[index]);
}
setup()
void setup()
Функция setup() выполняется один раз при запуске микроконтроллера. Обычно она
используется для конфигурации портов микроконтроллера и других настроек.
Функция setup() должна присутствовать в любой программе (скетче), даже если вам не
нужно ничего выполнять в них — просто не пишите ничего между фигурными скобками.
sin()
Функция находит синус угла в радианах. Значение находится в интервале от -1 до 1.
shiftOut()
В качестве третьего аргумента передаётся параметр bitOrder (порядок битов), который
определяет в какой последовательности подаваемые биты будут интерпретироваться
регистром — в прямом или обратном. LSBFIRST (Least Significant Bit First) — означает,
что вывод в регистр начнётся с последнего бита. Например, при передаче байта 00010111
на выходах регистра окажутся значения (с 1 по 8 пины) — 00010111. MSBFIRST (Most
Significant Bit First) — означает, что вывод в регистр начнётся с первого бита. При
передаче байта 00010111 на выходах регистра окажутся значения в обратном порядке (с 1
по 8 пины) — 11101000.
sqrt()
Функция извлекает корень из числа.
void setup() {
Serial.begin(9600);
int z = sqrt(16);
Serial.println(z); // 4
}
void loop() {}
tan()
Функция находит тангенс угла в радианах.
tone()
tone(pin, frequency)
tone(pin, frequency, duration)
Генерирует звук заданной частоты на указанном пине. Можно указать продолжительность
звука. Если продолжительность не указана, то остановить воспроизведение можно с
помощью функции noTone(). Вывод можно соединить с пьезопищалкой или другим
устройством, способным выводить звук.
Можно выводить только одну ноту во время исполнения.



pin - вывод платы для воспроизведения звука
frequency - частота звука в герцах (unsigned int)
duration - продолжительность в миллисекундах (необязательно) - unsigned long
Функция не возвращает значения.
Serial
Класс, позволяющий общаться с компьютером.
available()
Serial.available()
//Arduino Mega only:
Serial1.available()
Serial2.available()
Serial3.available()
Получает число байт (символов), доступных для чтения из последовательного порта.
Данные уже пришли и хранятся в специальном буфере (64 байта).
begin()
void Serial.begin(speed)
Устанавливает связь с портом для считывания данных на заданной скорости с Arduino на
ваш компьютер. В IDE есть выпадающий список, в котором можно увидеть возможные
варианты скоростей.

speed - скорость бит в секунду (long)
flush()
Serial.flush(); // Очищаем буфер
Очищает входной буфер последовательного порта. Находящиеся в буфере данные
теряются, и дальнейшие вызовы Serial.read() или Serial.available() будут иметь смысл для
данных, полученных после вызова Serial.flush().
print()
Serial.print(val)
Serial.print(val, format)
Печатает данные, поступаемые с серийного порта в виде ASCII-текста без символа
перевода строки. Схожа с функцией Serial.println().


val - значение для печати
format - формат выводимых данных. Можно использовать
константы DEC (десятичная
система), HEX (шестнадцатеричная), OCT (восьмеричная), BIN (бинарная)
println()
Serial.println(val)
Serial.println(val, format)
Печатает данные, поступаемые с серийного порта в виде ASCII-текста. Данные
заканчиваются символом перевода строки (ASCII 13, '\r') и новой строки (ASCII 10, '\n').
Схожа с функцией Serial.print().


val - значение для печати
format - формат выводимых данных. Можно использовать
константы DEC (десятичная
система), HEX (шестнадцатеричная), OCT (восьмеричная), BIN (бинарная)
Serial.println(10, BIN); // 1010
Serial.println(10, HEX); // A
Serial.println(10, OCT); // 12
read()
Serial.read()
//Arduino Mega only:
Serial1.read()
Serial2.read()
Serial3.read()
Считывает входящие данные из последовательного порта.
Возвращает первый байт входящих данных, если они есть или -1, если данные не
доступны.
write()
Serial.write(val);
Serial.write(str);
Serial.write(buf, len);
Записывает данные в последовательный порт. Данные посылаются как байт или
последовательность байт; для отправки символьной информации следует использовать
функцию print().




val: переменная для передачи, как единственный байт
str: строка для передачи, как последовательность байт
buf: массив для передачи, как последовательность байт
len: длина массива
Разное
pulseIn() - Возвращает продолжительность в микросекундах следующего импульса с
напряжением HIGH на заданном контакте
noTone() - Прерывает любые серии импульсов, запущенные вызовом tone
micros() - Действует подобно millis, но возвращает число микросекунд, прошедших с
момента последнего сброса платы. Значение обнуляется примерно через 70 минут
delayMicroseconds() - минимальная задержка составляет 3 мкс, максимальная — около 16
мс
attachInterrupt() - Устанавливает функцию myFunction, как обработчик положительного
фронта прерывания 1 (контакт D3 в UNO)
detachInterrupt() - Запрещает обработку сигналов от прерывания 1
Download