- •С.М. Липкин, т.В. Липкина компьютерное управление технологическими процессами и оборудованием
- •Лабораторная работа № 1. Создание приложения.
- •Программа работы
- •Методические указания
- •Лабораторная работа №2 Базовые приемы разработки программ с графическим интерфейсом пользователя (gui) на языке c#
- •Программа работы.
- •Методические указания.
- •Лабораторная работа №3 Основы работы с аппаратной платформой Arduino
- •Программа работы
- •Методические указания
- •Void loop() {
- •Void setup() {
- •Void loop() {
- •Лабораторная работа №4 Взаимодействие технических систем с эвм по последовательному интерфейсу Цель работы
- •Программа работы
- •Методические указания
- •Void setup() {
- •Void loop() {
- •InitializeComponent();
- •InitializeComponent();
- •Литература
- •346428, Г. Новочеркасск, ул. Просвещения, 132
- •346428, Г. Новочеркасск, ул. Первомайская, 166
Лабораторная работа №3 Основы работы с аппаратной платформой Arduino
Цель работы: Приобретение навыков работы с устройством Arduino Uno R3, а также интегрированной средой разработки программного обеспечения для устройств платформы Arduino.
Программа работы
1. Ознакомиться со структурой программ на языке Wiring (скетчей).
2. Разработать скетч для Arduino Uno, осуществляющий включение/выключение встроенного светодиода с периодом в Т=0.5 с.
3. Усовершенствовать разработанный скетч, оформив программный код включения и выключения светодиода в виде функции.
4.Разработать скетч, обеспечивающий кодирование заданных символов с помощью азбуки Морзе.
5.Собрать схему и разработать скетч, выполняющий функцию регулирования яркости светодиода.
6.Сделать выводы по работе
Методические указания
к п.1. Создание скетчей для аппаратной платформы Arduino выполняется в интегрированной среде разработки Arduino IDE (рис. 1)
Рис. 1 – Вид главного окна Arduino IDE
Данная среда позволяет выполнять компилирование и загрузку программного кода в устройство, а также содержит большое количество скетчей-примеров.
Структуру скетча рассмотрим на следующем примере:
//Подключение внешних модулей, необходимых для выполнения скетча
#include <SPI.h>
#include <Ethernet.h>
//Объявление глобальных переменных в формате:
//ТипПеременой ИмяПеременной = НачальноеЗначение;
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);
IPAddress gateway(192,168,1, 1);
IPAddress subnet(255, 255, 0, 0);
EthernetServer server(23);
boolean alreadyConnected = false;
//Функция инициализации setup.
//Работа скетча начинается с ее выполнения.
//Данная функция вызывается автоматически и выполняется один раз
void setup() {
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.begin(9600);
while (!Serial) {}
Serial.print("Chat server address:");
Serial.println(Ethernet.localIP());
}
//Главная функция loop
//Эта функция содержит программный код основных действий программы
void loop() {
EthernetClient client = server.available();
if (client) {
if (!alreadyConnected) {
client.flush();
Serial.println("We have a new client");
client.println("Hello, client!");
alreadyConnected = true;
}
if (client.available() > 0) {
char thisChar = client.read();
server.write(thisChar);
Serial.write(thisChar);
}
}
}
к п.2-4. Для разработки данного скетча удобно воспользоваться примером Blink
(рис. 2).
Рис. 2 – Загрузка скетча Blink
Рассмотрим текст функции loop данного примера:
Void loop() {
digitalWrite(led, HIGH); // включение светодиода
delay(1000); // пауза
digitalWrite(led, LOW); // выключение светодиода
delay(1000); // пауза
}
Период включений светодиода задается параметром, передаваемым функции delay().
Таким образом, для оформления включения-выключения светодиода в виде функции программный код, выполняемый в теле функции loop(), поместить в тело создаваемой функции. А в теле функции loop() достаточно лишь выполнять вызов созданной функции.
Для кодирования символов азбуки Морзе целесообразно будет создать 2 функции: длинного и короткого включения.
к п 5. Для разработки данного скетча можно воспользоваться следующим шаблоном:
int led = ???;
int brightness = 0; // величина яркости светодиода
int fadeAmount = 5; // величина изменения яркости светодиода за 1 такт
