Методические указания проведения лабораторных
работ по программированию микроконтроллеров на Arduino-совместимой
платформе...
Введение
Язык программирования устройств Ардуино основан на C/C++. Он прост в
освоении, и на данный момент Arduino — это, ...
< (less than)
> (greater than)
<= (less than or equal to)
>= (greater than or equal
to)
Логические операторы
&& (И)
|| (ИЛ...
Интерфейс среды программирования
Лабораторная работа №1
«Работа светодиодного индикатора»
Цель работы: Написать программу, позволяющую прерывисто светиться...
3) Загрузка текста программы
void setup() {
pinMode(1, OUTPUT);
}
void loop() {
digitalWrite(1, HIGH);
delay(2000);
digita...
Лабораторная работа №2
«Работа светодиодного индикатора светового датчика»
Цель работы: Написать программу, позволяющую пр...
Рисунок 5 – Подключение диода и датчика света
3) Написание программы
4) Загрузка программы в память платформы PIC32 ChipKIT
Рисунок 6 – Процесс загрузки программы
Рисунок 7 – Успешная загрузка программы
5) Проверка работоспособности системы
Результатом правильной работы системы будет являться загорание
светодиода при отсутс...
Лабораторная работа №3
«Работа электромотора с двумя светодиодными индикаторами и
светодатчиком»
Цель работы: Написать про...
void setup() {
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, INPUT);
}
void loop() {
digitalWrite(1, LOW);
digitalWri...
Рисунок 10 – На световой датчик попадает свет и электромотор не работает
При срабатывании датчика загорается зеленый диод и электромотор
начинает вращаться.
Рисунок 11 – Загорается зеленый диод и...
Лабораторная работа №4
«Цифровое табло»
Цель работы: Написать программу, позволяющую отобразить цифровой ряд
от 0 до 9.
За...
Рисунок 13 – Электрическая цепь в сборе
4) Текст программы
void setup() {
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(...
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalW...
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH...
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);...
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW)...
Upcoming SlideShare
Loading in …5
×

Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino

1,016 views
915 views

Published on

Методические указания проведения лабораторных работ по программированию микроконтроллеров на Arduino-совместимой платформе PIC32 ChipKIT Uno32.

Составители: Автомобильный Институт (АМИ), Нижегородский государственный технический университет им Р.Е. Алексеева.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,016
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino

  1. 1. Методические указания проведения лабораторных работ по программированию микроконтроллеров на Arduino-совместимой платформе PIC32 ChipKIT Uno32 Составители: Кафедра АМИ, НГТУ им Алексеева.
  2. 2. Введение Язык программирования устройств Ардуино основан на C/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах. Микроконтроллерные платы ChipKIT Uno32 с процессором PIC32 полностью совместимы с платформой Arduino, при этом являются более производительными, чем оригинальные платы Arduino. Язык Arduino можно разделить на три раздела: Операторы setup() loop() Управляющие операторы if if...else for switch case while do... while break continue return goto Синтаксис ; (semicolon) {} (curly braces) // (single line comment) /* */ (multi-line comment) Арифметические операторы = (assignment) + (addition) - (subtraction) * (multiplication) / (division) % (modulo) Операторы сравнения == (equal to) != (not equal to) Данные Константы HIGH | LOW INPUT | OUTPUT true | false Целочисленные константы Константы с плавающей запятой Типы данных boolean char byte int unsigned int word long unsigned long float double string - массив символов String - объект класса массив (array) void Преобразование типов данных char() byte() int() long() float() Функции Цифровой ввод/вывод pinMode() digitalWrite() digitalRead() Аналоговый ввод/вывод analogRead() analogReference() analogWrite() Дополнительные фунции ввода/вывода tone() noTone() shiftOut() pulseIn() Работа со временем millis() micros() delay() delayMicroseconds() Математические функции min() max() abs() constrain() map() pow() sq()
  3. 3. < (less than) > (greater than) <= (less than or equal to) >= (greater than or equal to) Логические операторы && (И) || (ИЛИ) ! (Отрицание) Унарные операторы ++ (increment) -- (decrement) += (compound addition) -= (compound subtraction) *= (compound multiplication) /= (compound division) Область видимости переменных и квалификаторы Область видимости static volatile const sqrt() Тригонометрические функции sin() cos() tan() Генераторы случайных значений randomSeed() random() Внешние прерывания attachInterrupt() detachInterrupt() Функции передачи данных Serial Библиотеки Arduino Servo — библиотека управления сервоприводами. EERPOM — чтение и запись энергонезависимой памяти микроконтроллера. SPI — библиотека, реализующая передачу данных через интерфейс SPI. Stepper — библиотека управления шаговыми двигателями.
  4. 4. Интерфейс среды программирования
  5. 5. Лабораторная работа №1 «Работа светодиодного индикатора» Цель работы: Написать программу, позволяющую прерывисто светиться диоду. Задача: Собрать электрическую схему диода с платформой. Ход работы. 1) Устанавливаем светодиод на контакторную платформу Рисунок 1 – Расположение светодиода на контакторной платформе 2) Подключение проводов к пинам платы PIC32 ChipKIT. Рисунок 2 – сосединение электрической схемы Строка состояния
  6. 6. 3) Загрузка текста программы void setup() { pinMode(1, OUTPUT); } void loop() { digitalWrite(1, HIGH); delay(2000); digitalWrite(1, LOW); delay(2000); }
  7. 7. Лабораторная работа №2 «Работа светодиодного индикатора светового датчика» Цель работы: Написать программу, позволяющую прерывисто светиться диоду. Задача : При срабатывании датчика света от него подается сигнал на платформу и посредством программы должен загораться диод. Ход работы. 1)Устанавливаем диод на платформу пинов. Рисунок 3 – расположение диода на платформе пинов 2) Подключение датчика света к платформе PIC32 ChipKIT (рисунок 3). Рисунок 4 – Датчик света
  8. 8. Рисунок 5 – Подключение диода и датчика света 3) Написание программы 4) Загрузка программы в память платформы PIC32 ChipKIT
  9. 9. Рисунок 6 – Процесс загрузки программы Рисунок 7 – Успешная загрузка программы
  10. 10. 5) Проверка работоспособности системы Результатом правильной работы системы будет являться загорание светодиода при отсутствии попадания света на датчик. а) б) Рисунок 8 – Проверка работы системы: (а) – свет попадает на датчик; (б) – свет не попадает на датчик.
  11. 11. Лабораторная работа №3 «Работа электромотора с двумя светодиодными индикаторами и светодатчиком» Цель работы: Написать программу, позволяющую идентифицировать работу электромотора светодиодами. Задача: При выключенном электромоторе горит светодиод красного цвета. При срабатывании электромотора, красный светодиод гаснет и загорается зеленый светодиод. Электромотор включается при срабатывании датчика света. Ход работы. 1) Собираем электрическую цепь. а) Подключаем SIG датчика света к Pin3, VСC датчика света к Pin 5V0, GND датчика света к «-» на платформе пинов. б)Устанавливаем зеленый диод на платформу пинов «-» к «-», «+» к «+». в)Подключаем «-» платформы пинов на GND платформы Arduino. «+» платформы пинов к Pin 2 Arduino. г)Устанавливаем красный диод «-» к «-», а «+» подходит к Pin1 платформы Arduino. г)Подключаем электромотор. «+» подходит к плюсу зеленого светодиода, а «-» подходит к общему минусу на платформе пинов. Рисунок 9 – готовая электрическая цепь 2) Текст программы:
  12. 12. void setup() { pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, INPUT); } void loop() { digitalWrite(1, LOW); digitalWrite(2, HIGH); int val=digitalRead(3); if (val==1) { digitalWrite(2, LOW); digitalWrite(1, HIGH); delay(100); } } 3) Загружаем программу и выполняем проверку :
  13. 13. Рисунок 10 – На световой датчик попадает свет и электромотор не работает
  14. 14. При срабатывании датчика загорается зеленый диод и электромотор начинает вращаться. Рисунок 11 – Загорается зеленый диод и начинает работу электромотор
  15. 15. Лабораторная работа №4 «Цифровое табло» Цель работы: Написать программу, позволяющую отобразить цифровой ряд от 0 до 9. Задача: Собрать электрическую цепь и написать программу включающую определенные сегменты цифрового табло, образующие ту или иную цифру Ход работы. 1) Устанавливаем цифровое табло на платформу пинов. Рисунок 12 – цифровое табло на платформе 2) Подключаем «-»цифрового табло к выходу GND платы ChipKIT 3) Остальные 8 пинов, отвечающие за соответствующие сегменты, подключаем к свободным пинам платы (1→Pin5, 2→Pin7,3→Pin1, 4→Pin8, 5→Pin6, 6→Pin4, 7→Pin3, 8→Pin2,)
  16. 16. Рисунок 13 – Электрическая цепь в сборе 4) Текст программы void setup() { pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); } void loop() { digitalWrite(1, LOW);
  17. 17. digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); digitalWrite(1, HIGH); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW);
  18. 18. delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW);
  19. 19. digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW);
  20. 20. digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); }

×