Оглавление
Генерация звука #
tone #
void tone(uint8_t pin, uint16_t frequency)
void tone(uint8_t pin, uint16_t frequency, uint32_t duration)
Запустить генерацию меандра (квадратный сигнал) на пине
pin
с частотой frequency
Герц. При указании продолжительности duration
в миллисекундах сигнал будет генерироваться асинхронно и сам отключится через заданное время:
- Запуск на том же пине изменит частоту сигнала
- Запуск на другом пине ни к чему не приведёт, сначала нужно отключить генерацию при помощи
noTone()
- На AVR Arduino минимальная частота 31 Гц
- На Arduino UNO/Nano/Mini вызов tone отключает ШИМ на пинах 3 и 11
noTone #
void noTone(uint8_t pin)
Отключить генерацию звука на пине
pin
, запущенную через tone()
Измерение импульса #
pulseIn #
unsigned long pulseIn(uint8_t pin, uint8_t state)
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout)
Измерить на пине
pin
длительность импульса цифрового сигнала величиной state
(HIGH
или LOW
) в миллисекундах. Логика работы: в течение таймаута timeout
(по умолчанию 1000 мс) ожидает переключение пина из противоположного состояния в состояние state
, начинает отсчёт времени и ждёт переключения пина обратно в противоположное состояние, возвращает результат в мс:
- Вернёт
0
, если импульса не было - На AVR Arduino работает с импульсами от 10 мкс до 3 минут
- Хорошо измеряет короткие импульсы, длинные - менее точно, используйте
pulseInLong()
- На AVR Arduino может работать при отключенных прерываниях
pulseInLong #
unsigned long pulseInLong(uint8_t pin, uint8_t state)
unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout)
Альтернатива
pulseIn()
, более точно измеряет длинные импульсы. Нельзя запрещать прерывания на время работы функции!Программный SPI #
shiftIn #
uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder)
Читает и возвращает 1 байт (8 бит) с дата-пина
dataPin
и такт-пина clockPin
в порядке bitOrder
:
MSBFIRST
- сначала старший битLSBFIRST
- сначала младший бит
shiftOut #
void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
Отправляет 1 байт (8 бит) значение
val
с дата-пина dataPin
и такт-пина clockPin
в порядке bitOrder
:
MSBFIRST
- сначала старший битLSBFIRST
- сначала младший бит