Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Цифровой ввод/вывод на контакты




Arduino для студентов-двигателистов v.1.0

 


Введение - 2 час.

Введение в программирование Arduino

Что такое Arduino?

Arduino – это платформа, включающая семейство аппаратных модулей на основе микроконтроллеров AVR и ARM (и, возможно, других) и единое программное обеспечение, позволяющее освоить программирование микроконтроллеров даже ребёнку.

Основной используемый модуль – Arduino Uno (рисунок 1) на основе AVR-микроконтроллера Amtel Atmega 328P.

Рисунок 1 – Arduino Uno

 

Микроконтроллер представляет собой микропроцессорную систему со всеми опорными устройствами, интегрированными в одном чипе. Для создания простейшего автоматического устройства достаточно подключить источник питания, цепь сброса и (не обязательно!) кристалл кварца (источник тактовой частоты).

Плата Arduino устроена очень просто: на ней присутствуют разъёмы внешнего питания, USB, штырьковые разъёмы, подключенные к универсальным входам/выходам микроконтроллера, кварц, кнопка сброса, регулятор входного напряжения, несколько светодиодов, преобразователь USB/UART и другие вспомогательные микросхемы. Упрощённый или даже полноценный аналог Arduino можно легко собрать своими руками, но это обычно не имеет смысла из-за низкой стоимости модуля.

Обобщенная функциональная схема AVR-микроконтроллера приведена на рисунке 1. На схеме мы видим все стандартные компоненты компьютера: системные шины, АЛУ, ОЗУ, ПЗУ, РОН, плюс множество встроенных интерфейсов: UART, SPI, 3-wire и др. Основные отличия от ПК состоят в том, что все компоненты размещены в одном кристалле, и что используется гарвардская архитектура, в которой программы и данные хранятся в разных модулях памяти, в отличие от архитектуры фон Неймана, когда и программа и данные хранятся в одном и том же модуле памяти.

 

Рисунок 1 – Обобщенная функциональная схема AVR-микроконтроллера

 

 

Начало работы с Arduino

Строго говоря, ответы на почти любые вопросы по Ардуино очень легко найти в Интернете, в том числе бесчисленное количество видеороликов.

Или сразу идем на сайт производителя arduino.cc и скачиваем и устанавливаем последнюю версию Arduino IDE (интегрированная среда разработки).

Запускаем программу.

Подключаем модуль к компьютеру с помощью USB-кабеля.

В разделе Tools выбираем тип платы. (Для Arduino Due нужно выбрать programming port и подключить кабель к соответствующему разъёму из двух)

В разделе Tools необходимо указать COM-порт для связи с платой. Обычно в списке не много портов, и очевидно, какой нужно использовать. COM-1 – обычно это стандартный COM-порт компьютера. Наша плата создает новый свой собственный порт с более высоким номером, например COM5. Если непонятно, то можно отключить кабель и посмотреть, какой порт пропадёт.

Для начала работы можно воспользоваться библиотекой программ для Ардуино, в меню Файл/Примеры (File/Examples) Arduino IDE. Выберем программу blink. Программа вызывает мигание встроенного в плату светодиода, который подключен к выводу №13.

int ledPin = 13;

void setup ()

{

pinMode (ledPin, OUTPUT);

}

void loop ()

{

digitalWrite (ledPin, HIGH);

delay (1000);

digitalWrite (ledPin, LOW);

delay (1000);

}

Нажимаем на кнопку «Вгрузить» (самая левая на панели кнопок под главным меню).

 

Рассмотрим текст программы. Основа языка программирования модуля Arduino — это язык Си (скорее Си++), точнее, диалект Processing/Wiring.

Строчка

int ledPin = 13

объявляет целочисленную переменную ledPin и присваивает ей значение 13.

Фрагмент кода

void setup ()

{

…..

}

- это объявление функции setup (). Имя setup зарезервировано и означает, что эта функция будет запущена один раз при начале работы микроконтроллера. Между фигурными скобкам записываются действия, которы необходимо выполнить при запуске (инициализации) программы. В нашем случае мы командой

pinMode (ledPin, OUTPUT);

устанавливаем режим работы универсального контакта ввода/вывода с номером, равным ledPin = 13. «OUTPUT» означает, что контакт настроен на вывод.

void loop ()

{

…..

}

- это тоже объявление стандартной, но, в отличие от setup (), то, что записано в фигурных скобках будет повторяться бесконечно, пока включен микроконтроллер. В этих двух стандартных функциях заложен весь принцип работы данного микроконтроллера. Они обязательно присутствуют в любой программе для Arduino, но могут быть пустыми. Функция setup () выполняется однократно сначала, а функция loop () – после завершения запускается заново, и этот процесс повторяется бесконечно. Рабочий Цикл loop () задает поведение нашей системы, в нём производится чтение информации со входов, выполняются необходимые действия, посылается информация через порты, устанавливаются значения выводов.

 

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

Программа на Си, каких бы размеров она ни была, состоит из функций и переменных.

Базовый Си (в отличие от c++ и Csharp и т.д.) — язык сравнительно "низкого уровня". Все механизмы высокого уровня в Си обеспечиваются исключительно с помощью функций.

Синтаксис языка СИ

Комментарии

Комментарии – важный элемент оформления программы.

// Комментарий до конца строки

/* Многострочный

комментарий */

 

 

Символы операций языка Си

Символ Назначение Пример
() Вызов функции  
[ ] Выделение элемента массива  
. Выделение элемента записи (поля объекта)  
-> Выделение элемента записи  
! Логическое отрицание  
~ Поразрядное отрицание  
- Изменение знака  
++ Увеличение на единицу i++;
-- Уменьшение на единицу i--;
& Взятие адреса  
* Обращение по адресу  
(тип) Преобразование типа x= (float) a;
sizeof() Определение размера в байтах  
* Умножение  
/ Деление  
% Определение остатка от деления  
+ Сложение  
- Вычитание  
<< Сдвиг влево  
>> Сдвиг вправо  
< Меньше, чем  
<= Меньше или равно  
> Больше, чем  
>= Больше или равно  
= = Равно  
!= Не равно  
& Поразрядное логическое "И"  
^ Поразрядное исключающее "ИЛИ"  
| Поразрядное логическое "ИЛИ"  
&& Логическое "И"  
|| Логическое "ИЛИ"  
?: Условная (тернарная) операция  
= Присваивание  
+=, - =, *=, /=, %=, <<=,>>=, &=, |=, ^= Составные операции присваивания а *= b (т.е. a = a * b)

 

Типы данных

 

· Простые типы данных

o Целочисленные

o Вещественные

o Символьные

o Логические

o Указатель

o Пустой тип (void)

· Составные типы данных

o Массивы

o Строки

o Структуры

 

Целочисленные типы данных

Количество бит Беззнаковый тип Знаковый тип
  unsigned char 0...255 char -128...127
  unsigned short 0...65535 short -32768...32767
  unsigned int int
  unsigned long int long int

 

Вещественные типы данных

Вещественное число в памяти вычислительной машины представляется в нормированной форме в двоичной системе счисления в виде 4 полей: мантисса m, знак мантиссы, порядок p, знак порядка.

m

Само число определяется по формуле

.

Различают три основных типа представления вещественных чисел в языке Си (они напрямую соответствуют встроенным типам вещественных чисел центрального процессора):

Тип Обозначение в Си Кол-во бит Биты степени Мантисса Сдвиг
простое float   30...23 22...0  
двойной точности double   62...52 51...0  
двойной расширен- ной точности longdouble   78...64 62...0  

 

Пример: представить число -178,125 как тип float:

Преобразуем отдельно целую и дробную части:

17810 = 101100102.

0,12510 = 0,0012.

Тогда 178,12510 = 10110010,0012=1,0110010001·2111

В Arduino типы несколько отличаются:

char —единичный байт, который может содержать один символ из допустимого символьного набора;

int —целое, обычно отображающее естественное представление целых в машине;

float —число с плавающей точкой одинарной точности;

double —число с плавающей точкой двойной точности.

При своем объявлении переменная может быть инициализирована, например:

char esc = '\\';

int i = 0;

int limit = MAXLINE+1;

floateps= 1.0e-5;

 

 

Логический тип boolean

имеет два значения:true/false(истина и ложь).

 

Функции ввод/выводa (для Arduino)

Микроконтроллеры отличаются широким набором интерфейсов ввод/выводa, но они отличаются от используемых на персональных компьютерах.

Цифровой ввод/вывод на контакты

digitalWrite()

digitalRead()





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 607 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2259 - | 2110 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.