Сайт разработчика Александра Климова

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Функции

analogRead()
analogWrite()
bitRead()
delay()
digitalRead
digitalWrite()
loop()
map()
millis()
pinMode()
random()
setup()
tone()
Serial
  available()
  begin()
  print()
  println()
  read()

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 (полная яркость) (значение скважности ШИМ)

bitRead()


bitRead(x, n) 

Функция считывает биты с указанного числа. Возвращает значение бита (0 или 1)

  • x - число, которое нас интересует
  • n - какой бит нужно считать

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)

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);
}

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);
}

pinMode()


void pinMode(pin, mode)

Функция pinMode() устанавливает режим для портов.

  • pin - вывод, с которым мы собираемся работать
  • mode - как должен работать указанный вывод: работать на выход (OUTPUT) или вход (INPUT) или INPUT_PULLUP

random()


random(max)
random(min, max) 

Функция генерирует псевдослучайные числа.

  • min - нижняя граница случайных значений
  • max - верхняя граница случайных значений

Функция возвращает случайное число между min и max-1 (long)

Пример


char* messages[] = {
  "Barsik",
  "Vaska",
  "Murzik"};

void setup() {
  Serial.begin(9600);
}

void loop() {
  int delayPeriod = random(2000, 8000);
  delay(delayPeriod);
  int messageIndex = random(4);
  Serial.prinln(messages[messageIndex]);  
}

setup()


void setup()

Функция setup() выполняется один раз при запуске микроконтроллера. Обычно она используется для конфигурации портов микроконтроллера и других настроек.

Функция setup() должна присутствовать в любой программе (скетче), даже если вам не нужно ничего выполнять в них — просто не пишите ничего между фигурными скобками.

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 на ваш компьютер.

  • speed - скорость бит в секунду (long)

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 (бинарная)

read()


Serial.read()

//Arduino Mega only: 
Serial1.read() 
Serial2.read() 
Serial3.read() 

Считывает входящие данные из последовательного порта.

Возвращает первый байт входящих данных, если они есть или -1, если данные не доступны.

Реклама