Данный документ описывает создание библиотеки для Arduino. Объяснение начнется с написания скетча передачи кода Морзе посредством светодиода. Затем будет показано как конвертировать скетч в библиотеку. Это позволит другим пользователям легко использовать созданный код, обновлять и дополнять его.
Скетч, воспроизводящий код Морзе:
int pin = 13;
void setup()
{
pinMode(pin, OUTPUT);
}
void dot()
{
digitalWrite(pin, HIGH);
delay(250);
digitalWrite(pin, LOW);
delay(250);
}
void dash()
{
digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
delay(250);
}
7.3.3 Билиотека SPI Stepper.docx
«Робототехника». Уровень 5. Занятие 3.
Тема занятия: Библиотеки SPI и Stepper.
Продолжительность занятия: 2 часа.
Библиотека SPI
Библиотека SPI позволяет контроллеру Arduino взаимодействовать с
устройствами поддерживающими SPI протокол. Arduino в данном случае
выступает в качестве ведущего устройтва.
Коротко о Serial Peripheral Interface (SPI).
Последовательный периферийный интерфейс (SPI) — это последовательный
синхронный протокол передачи данных используемый микроконтроллерами
для обмена данными с одним или несколькими периферийными устройствами
на небольших расстояниях.
Для организации соединения SPI необходимо одно ведущее устройство,
обычно это микроконтроллер, которое управляет соединением с ведомыми
устройствами. Обычно подключение осуществляется тремя общими линиями
и линией выбора периферийного (ведомого) устройства:
Master In Slave Out (MISO), переводится как "вход ведущего выход
ведомого", используется для передачи данных от ведомого к ведущему.
Master Out Slave In (MOSI) — выход ведущего вход ведомого, для
передачи данных от ведущего к периферийным устройствам.
Serial Clock (SCK) — синхронизирующая линия, синхросигнал
генерируется ведущим устройством.
Slave Select pin — вход на ведомых устройствах с помощью которого
ведущий может инициировать обмен данными с периферийным устройством.
Если на этом входе LOW, то ведомый взаимодействует с ведущим,
если HIGH, то ведомый игнорирует сигналы от ведущего.
При работе с SPI устройствами надо учитывать следующие моменты:
Какой порядок вывода данных используется: Most Significant Bit (MSB
старший бит (разряд)) or Least Significant Bit (LSB младший бит) первый.
Порядок может быть изменен функцией SPI.setBitOrder().
Уровень сигнала синхронизации — по какому синхронизирующему
сигналу (HIGH или LOW) передаются данные.
Фаза синхронизации — влияет на последовательность установки и
выборки данных. Фаза синхронизации SPI и уровень сигнала задается
функцией SPI.setDataMode().
Скорость на которой работает SPI устанавливается
функцией SPI.setClockDivider().
Производители SPI устройств несколько по разному реализуют протокол,
поэтому необходимо внимательно ознакомиться с техническим описанием к
устройству. Комбинация фазы синхронизации (CPHA) и уровня сигнала
синхронизации (CPOL) задают режим логики работы интерфейса SPI. Режим
устанавливается функцией SPI.setDataMode().
Режим Уровень сигнала (CPOL) Фаза (CPHA)
0
1
2
3
0
0
1
1
0
1
0
1
Подключение
На контроллерах Arduino Duemilanove и других на базе ATmega168 /328,
шина SPI использует выходы 10 (SS), 11 (MOSI), 12 (MISO), и 13 (SCK). На
Arduino Mega — 50 (MISO), 51 (MOSI), 52 (SCK), и 53 (SS). Обратите
внимание, что даже если вы не используете выход SS, он должен быть
установлен как выход, в противном случае интерфейс может оказаться в
режиме ведомого и библиотека не будет работать как надо.
В качестве SS выхода может быть использован выход отличный от 10го.
Например, при работе с Arduino Ethernet shield контроллер использует выход
4 для взаимодействия с SD картой по SPI и выход 10 для работы с Ethernet
контроллером. Функции
begin()
end()
setBitOrder()
setClockDivider()
setDataMode()
transfer()
Библиотека Stepper
Библиотека Stepper предоставляет удобный интерфейс управления
биполярными и униполярными шаговыми двигателями. Для управления
шаговым двигателем, в зависимости от его типа (биполярный или
униполярный) и выбранного способа подключения, понадобятся некоторые
дополнительные электронные компоненты.
Подключение
1) Униполярный шаговый двигатель, управление через 2 выхода. В
данном и следующем подключение используется микросхема драйвера
нагрузки ULN2003 или ULN2004 (Darlington array). 2) Униполярный шаговый двигатель, управление через 4 выхода.
3) Биполярный шаговый двигатель, управление через 2 выхода.
Подключение на примере микросхемы L293D. 4) Биполярный шаговый двигатель, управление через 4 выхода.
Подключение с помощью микросхемы SN754410NE.
Функции
Stepper(steps, pin1, pin2)
Stepper(steps, pin1, pin2, pin3, pin4)
setSpeed(rpm)
step(steps)
Написание библиотеки для Arduino.
Написание библиотеки для Arduino.
Написание библиотеки для Arduino.
Написание библиотеки для Arduino.
Написание библиотеки для Arduino.
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.