Arduino — различия между версиями

Материал из CADR
Перейти к: навигация, поиск
(Создал страницу)
 
(Общая информация)
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
 +
= Общая информация =
 +
* Методичка/Книга [https://docs.google.com/document/d/1bDCyNURCL4vtBt96BZDe56C4fJJWLA7_b3P4lXrUvzY/edit "Разработка микропроцессорных систем"]
 +
* [http://forum.arduino.cc/index.php?topic=73748.0 Loop-Back Test] -- описание одного из методов тестирования МК.
 +
* [https://cdn.solarbotics.com/products/documentation/ardx-eg-sola-russian.pdf Руководство по освоению Arduino] (на русском языке)
 +
* Brian W. Evans, [http://playground.arduino.cc/uploads/Main/arduino_notebook_v1-1.pdf arduino programming notebook] (на анлийском языке)
 +
 
= Прерывания =
 
= Прерывания =
Допустим, мы сделали "бегущий огонь" и теперь хотим прикрутить кнопку для управления режимом светодиодов. Самым прямолинейным решением, на первый взгляд, является считвание значение кнопки в начале <code>loop</code>. Собираем схему, добавляем считывание значения с цифрового порта и логику переключения режимов. Всё бы хорошо, но наше кратковременное нажатие на кнопку обычно приводит к многократному считыванию значения; как следствие, логика не работает, как должна.
+
* [http://www.engblaze.com/we-interrupt-this-program-to-bring-you-a-tutorial-on-arduino-interrupts/ We interrupt this program to bring you an Arduino interrupt tutorial] (англ.)
 
+
* [http://www.engblaze.com/microcontroller-tutorial-avr-and-arduino-timer-interrupts/ Microcontroller tutorial series: AVR and Arduino timer interrupts] (англ.)
Плюс, добавляя кнопку в наш проект, мы добавляем в наш проект неопределённость -- нажатие на кнопку может возникнуть в любой момент, и (если всё делать по-нормальному) мы должны обрабатывать это событие в тот момент, как оно возникла.  В таких случаях говорят, что событие возникает асинхронно (по отношению к нашей программе.)
 
  
Для правильного решения данной задачи необходимо использовать прерывания.
+
= Работа с программатором =
 +
* Vcc2GND, [http://www.instructables.com/id/Uploading-Sketch-to-Arduino-Pro-Mini-using-usbASP/ "Uploading Sketch to Arduino Pro Mini using usbASP"]
  
== Реакция на внешние события ==
+
= Подключение оборудования =
Для обработки внешнего асинхнонного события нам потребуются как минимум две вещи:
+
* [[Arduino/MT-16S2H|ЖК-дисплей МЭЛТ MT-16S2H]]
* Написать обработчик события
+
* [[Arduino/RotaryDial|Дисковый номеронабиратель]]
* Связать обработчик с внешним событием
 
  
TODO
+
= Arduino Nano 168p =
 +
Специфика работы с Arduino Nano на базе микроконтроллера MEGA 168PA.
 +
* http://playground.arduino.cc/Bootloader/ArduinoBootloader168P
  
== Прерывания по таймеру ==
+
Судя по отзывам на AliExpress, некоторые Arduino на базе МК 168pa поставляются без загрузчика.  Необходимо прошить сначала загрузчик через USBasp, потом уже использовать обычное подключение по USB (встроенный USB-UART).
TODO
 
  
== См. также ==
+
[[Категория:База знаний]]
* [http://www.engblaze.com/we-interrupt-this-program-to-bring-you-a-tutorial-on-arduino-interrupts/ We interrupt this program to bring you an Arduino interrupt tutorial] (англ.)
 
* [http://www.engblaze.com/microcontroller-tutorial-avr-and-arduino-timer-interrupts/ Microcontroller tutorial series: AVR and Arduino timer interrupts] (англ.)
 

Версия 10:52, 20 марта 2019

Общая информация

Прерывания

Работа с программатором

Подключение оборудования

Arduino Nano 168p

Специфика работы с Arduino Nano на базе микроконтроллера MEGA 168PA.

Судя по отзывам на AliExpress, некоторые Arduino на базе МК 168pa поставляются без загрузчика. Необходимо прошить сначала загрузчик через USBasp, потом уже использовать обычное подключение по USB (встроенный USB-UART).