Балыко Иван 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