Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Язык программирования





Среда разработки основана на языке программирования Processing и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения. Строго говоря, это C++, дополненный некоторыми библиотеками. Программы обрабатываются с помощью препроцессора, а затем компилируется с помощью AVR-GCC.

 

Язык ардуино можно разделить на три раздела:

· Операторы

· Данные

· Функции

Операторы:

Таблица 1. Операторы

Основные операторы
Оператор Описание Пример
setup()   Функция setup() вызывается, когда стартует скетч. Используется для инициализации переменных, определения режимов работы выводов, запуска используемых библиотек и т.д. int buttonPin = 3; void setup() {Serial.begin(9600); pinMode(buttonPin, INPUT);} void loop() { //... }
loop()   После вызова функции setup(), которая инициализирует и устанавливает первоначальные значения, функция loop() крутится в цикле, позволяя программе совершать вычисления и реагировать на них. int buttonPin = 3; // setup инициализирует последовательный порт и кнопку void setup() { beginSerial(9600); pinMode(buttonPin, INPUT);} void loop() { if (digitalRead(buttonPin) == HIGH) serialWrite('H'); else serialWrite('L'); delay(1000);}
Управляющие операторы
if (условие) и ==,!=, <, > (операторы сравнения)   if, используется в сочетании с операторами сравнения, проверяет, достигнута ли истинность условия. Выражения, которые вычисляются внутри круглых скобок, могут состоять из одного или нескольких операторов. Операторы сравнения: · x == y (x равно y) · x!= y (x не равно y) · x < y (x меньше чем y) · x > y (x больше чем y) · x <= y (x меньше чем или равно y) · x >= y (x больше чем или равно y) if (someVariable > 50) { // выполнять действия }
if..else Предоставляет больший контроль над процессом выполнения кода, чем базовый оператор if, позволяя осуществлять несколько проверок, объединенных вместе. if (pinFiveInput < 500) { // действие A } else { // действие B}
for Используется для повторения блока операторов, заключенных в фигурные скобки. Счетчик приращений обычно используется для приращения и завершения цикла. Оператор for подходит для любых повторяющихся действий. void setup() { // настройка не нужна } void loop() { for (int i=0; i <= 255; i++){ analogWrite(PWMpin, i); delay(10); } }
while while будет вычислять в цикле непрерывно и бесконечно до тех пор, пока выражение в круглых скобках, () не станет равно логическому ЛОЖНО. Что-то должно изменять значение проверяемой переменной, иначе выход из цикла while никогда не будет достигнут. var = 0; while(var < 200) {// выполнить что-то, повторив 200 раз var++; }
do { } while Цикл do работает так же, как и цикл while, за исключением того, что условие проверяется в конце цикла, таким образом, цикл do будет всегда выполняться хотя бы раз. do { delay(50); // подождать, пока датчики стабилизируются x = readSensors(); // проверить датчики } while (x < 100);
break Используется для принудительного выхода из циклов do, for или while, не дожидаясь завершения цикла по условию.   for (x = 0; x < 255; x ++) { digitalWrite(PWMpin, x); sens = analogRead(sensorPin); if (sens > threshold) {// выходим из цикла если есть сигнал с датчика x = 0; break; } delay(50); }
Синтаксис
;(точка с запятой) Используется для обозначения конца оператора. int a = 13;
Фигурные скобки {} Важный элемент языка программирования С. Открывающая скобка “{” должна всегда сопровождаться закрывающей скобкой “}”. Это условие, известное как парность (симметричность) фигурных скобок. while (логическое выражение) {оператор(ы)}
// текст /* текст */ Комментарии Комментарии – это строки в программе, которые используются для информирования вас самих или других о том, как работает программа. // - Это комментарий в одной строке. Все после двойного слэша – комментарий до конца строки. /* - Это многострочный комментарий – используйте его для закоментирования целых кусков кода. x = 5; //Это комментарий в одной строке. Все после двойного слэша – комментарий до конца строки /* это многострочный комментарий – используйте его для закоментирования целых кусков кода // не забывайте «закрывать» комментарии – они должны быть парными! */
Орифметические операторы
= (Оператор присваивания) Присваивает переменной слева от оператора значение переменной или выражения, находящееся справа. int sensVal; // объявление переменной типа integer senVal = analogRead(0); // присваивание переменной sensVal, значения, считанное с аналогового входа 0
+, -, *, / Сложение, вычитание, умножение и деление. Операторы   result = value1 + value2; value1: любая переменная или константа result = value1 - value2; value2: любая переменная или константа result = value1 * value2; result = value1 / value2;  
Логические операторы
&& (логическое И) Истина, если оба операнда истина (true).   if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) { // считывает состояние двух портов }
|| (логическое ИЛИ) Истина, если хотя бы один операнд истина. if (x > 0 || y > 0) {… }
! (логическое отрицание) True, если операнд false, и наоборот. if (!x) {…}
Унарные операторы
++ (увеличение значения) -- (уменьшение значения) Унарные (имеющие один операнд) операторы ++, -- увеличивают, уменьшают значение переменной соответственно.   x++; // увеличивает значение x на единицу и возвращает старое значение x ++x; // увеличивает значение x на единицу и возвращает новое значение x x--; // уменьшает значение x на единицу и возвращает старое значение x --x; // уменьшает значение x на единицу и возвращает новое значение x  
+= -= *= /= Короткий способ записи арифметических действий над переменной и одним операндом.   x += y; // эквивалент записи x = x + y; x -= y; // эквивалент записи x = x - y; x *= y; // эквивалент записи x = x * y; x /= y; // эквивалент записи x = x / y;

Данные:

Таблица 2. Данные

Типы данных:
Данные Описание Пример
boolean Логический (булевый) тип данных. Может принимать одно из двух значений true или false. Boolean занимает в памяти один байт.   int LEDpin = 5; // Светодиод на входе 5 int switchPin = 13; // выключатель на порту 13, замыкает на землю boolean running = false; void setup() { pinMode(LEDpin, OUTPUT); pinMode(switchPin, INPUT); digitalWrite(switchPin, HIGH); // включаем подтягивающий резистор } void loop() { if (digitalRead(switchPin) == LOW) {// выключатель нажат, т.к. подтягивающий резистор будет давайть HIGH на входе, если не замкнут напрямую на землю delay(100); // ждем 0.1сек running =!running; // меняем значение булевой переменной digitalWrite(LEDpin, running) // включаем или выключаем светодиод. }}
char Занимает 1 байт памяти и может хранить один алфавитно-цифровой символ (литеру). Тип char знаковый тип, т.е. число (код) хранящийся в памяти может принимать значения от -128 до 127. char myChar = 'A'; char myChar = 65;//Варианты эквивалентны
byte Тип данных byte 8-ми битное беззнаковое целое число, в диапазоне 0..255. byte c = 18;  
int Тип данных int (от англ. integer - целое число) наиболее часто используемый типов данных для хранения чисел. int занимает 2 байта памяти, и может хранить числа от -32 768 до 32 767 (от -2^15 до 2^15-1) int ledPin = 13;
unsigned int Тип данных unsigned int - беззнаковое целое число, занимает в памяти 2 байта. Может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1). unsigned int ledPin = 13;
word Хранит 16-битное, не содержащее знака, число от 0 до 65535. word w = 10000;
long Используется для хранения целых чисел в диапазоне от -2,147,483,648 до 2,147,483,647. long занимает 4 байта в памяти. long speedOfLight = 186000L;
Unsigned long Используется для хранения положительных целых чисел в диапазоне от 0 до 4,294,967,295 (2^32 - 1) изанимает 32 бита (4 байта) в памяти. unsigned long var = val; var - имя переменной val - присваиваемое значение
float Служит для хранения чисел с плавающей запятой. Используется для операций с данными, считываемыми с аналоговых входов. Диапазон значений — от -3.4028235E+38 до 3.4028235E+38. Переменная типа float занимает 32 бита (4 байта) в памяти. float var = val; var - имя переменной val - присваиваемое значение
double В отличие от большинства языков программирования, имеет ту же точность, что и тип float и занимает также 4 байта памяти.  
string –массив символов Текстовые строки в Ардуино объявляются как массив (array) типа char (символов - литер), оканчивающийся символом "конца строки". char Str1[15]; char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'}; char Str4[ ] = "arduino"; char Str5[8] = "arduino"; char Str6[15] = "arduino";
String Позволяет хранить и манипулировать текстовыми строками, по сравнению с string (массивом символов) класс String предоставляет удобные функции для работы со строками, такие как поиск вхождения в строку, объединение строк и др.  
arrays -массивы Именованный набор однотипных переменных, с доступом к отдельным элементам по их индексу.   int myInts[6]; int myPins[] = {2, 4, 8, 3, 6}; int mySensVals[6] = {2, 4, -8, 3, 2}; char message[6] = "hello";
void Используется при объявлении функций, если функция не возвращает никакого значение при ее вызове (в некоторых языках программирования такие функции называют процедурами).   // в функциях "setup" и "loop" производятся некоторые действия, // но ничего не возвращается во внешнюю программу void setup() { //...} void loop() { //...}

Функции:

Таблица 3. Функции

Цифровой ввод/вывод:
Функция Описание Пример
pinMode() Устанавливает режим работы заданного вход/выхода(pin) как входа или как выхода.   pinMode(pin, mode) Параметры: pin: номер вход/выхода(pin), mode: режим одно из двух значение - INPUT или OUTPUT
digitalWrite() Подает HIGH или LOW значение на цифровой вход/выход (pin). digitalWrite(pin, value) Параметры: pin: номер вход/выхода(pin) value: значение HIGH или LOW
digitalRead() Функция считывает значение с заданного входа - HIGH или LOW. digitalRead(pin) Параметры: pin: номер вход/выхода(pin) который Вы хотите считать
Аналоговый ввод/вывод:
analogRead() Функция считывает значение с указанного аналогового входа. analogRead(pin) Параметры: pin: номер порта аналогового входа с которого будет производиться считывание
analogReference() Функция определяет опорное напряжение относительно которого происходят аналоговые измерения. Функция analogRead() возвращает значение с разрешением 8 бит (1024) пропорционально входному напряжению на аналоговом входе, и в зависимости от опорного напряжения.   analogReference(type) Параметры: type: определяет используемое опорное напряжение (DEFAULT, INTERNAL или EXTERNAL).
analogWrite() Выдает аналоговую величину (ШИМ волну) на порт вход/выхода. Функция может быть полезна для управления яркостью подключенного светодиода или скоростью электродвигателя. После вызова analogWrite() на выходе будет генерироваться постоянная прямоугольная волна с заданной шириной импульса до следующего вызова analogWrite (или вызова digitalWrite или digitalRead на том же порту вход/выхода).   analogWrite(pin, value) Параметры: pin: порт вход/выхода на который подаем ШИМ сигнал. value: период рабочего цикла значение между 0 (полностью выключено) and 255 (сигнал подан постоянно).  

 

Date: 2016-05-23; view: 344; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию