Работа с цифровыми входами/выходами Arduino
Пьезоизлучатель
Устройство пьезодинамика пищалки
Задача 2
Схема
Функция tone() 
Функция noTone() 
Scatch
Плавное изменение частоты зуммера
Задание для самостоятельного решения
Подключение тактовой кнопки к Arduino
Тактовая кнопка — простой механизм, замыкающий цепь пока есть давление на толкатель.
Варианты различных кнопок
Кнопка – это очень простой компонент.
Задача для самостоятельного решения. Нажатие одной кнопки включит светодиод, нажатие другой кнопки выключит светодиод.
Эффект дребезга
Схема подключения
Схема со стягивающим резистором
Схема с подтягивающим резистором
Кнопка со стягивающим резистором
Мигание светодиода после нажатия на кнопку
Мерзкое пианино
Задания для самостоятельного решения
1.56M
Category: electronicselectronics

Работа с цифровыми входами/выходами Arduino

1. Работа с цифровыми входами/выходами Arduino

2. Пьезоизлучатель

Пьезоизлучатель – это электроакустическое
устройство воспроизведения звука, использующий
обратный пьезоэлектрический эффект.
Пьезоизлучатель может называться по разному - пищалка, зумер, piezo
buzzer или speaker. Суть одна - издать звук.

3. Устройство пьезодинамика пищалки

4.

5. Задача 2

Обеспечить воспроизведение звука частотой
от 260 Гц до 490 Гц
Для эксперимента нам понадобятся:
1. платформа Arduino
2. USB-кабель
3. пьезоизлучатель
4. соединительные провода
5. макетная плата

6. Схема

7. Функция tone() 

Функция tone()
Синтаксис
tone(pin, frequency);
tone(pin, frequency, duration);
Параметры
Pin – номер пина по нумерации Arduino, на котором будет
воспроизводиться сигнал.
Frequency – частота выводимого меандра, Гц.
Duration – время длительности воспроизведения сигнала в
миллисекундах. Опциональный параметр.
Максимальная частота
Генерируемая частота звука зависит от размера таймера в плате
Arduino. Для микроконтроллера Arduino Uno или Nano минимальная
частота воспроизводимого звука составляет 31 Гц, а максимальная
частота tone – 65535 Гц. Диапазон воспринимаемых частот ухом
обычного человека значительно меньше.

8. Функция noTone() 

Функция noTone()
Прекращает генерирование прямоугольного
сигнала после использования функции tone().
Если сигнал не генерируется, функция ни к
чему не приводит.

9. Scatch

void setup()
{
pinMode(3, OUTPUT);
}
void loop()
{
for(int i=260;i<=490;i+=50)
{
tone(3,i,10);
delay(50);
}
}

10. Плавное изменение частоты зуммера

void setup() {
pinMode(10, OUTPUT);
}
void loop() { // увеличиваем частоту звука
for (int x = 0; x < 500 ; x++) {
tone (10, x);
delay(1);
} // уменьшаем частоту звука
for (int x = 500; x > 0 ; x--) {
tone (10, x);
delay(1);
}
}

11. Задание для самостоятельного решения

Добавьте в схему светодиод. Звук должен
воспроизводиться при включении светодиода и
пропадать при выключении.

12. Подключение тактовой кнопки к Arduino

13. Тактовая кнопка — простой механизм, замыкающий цепь пока есть давление на толкатель.

Кнопки с 4 контактами стоит рассматривать, как 2 пары рельс, которые
соединяются при нажатии.

14. Варианты различных кнопок

15. Кнопка – это очень простой компонент.

При нажатии рычага кнопки, она соединяют два контакта вместе, так что
электричество может течь через него. Используемые нами кнопки имеют
четыре контакта.
На самом деле, здесь есть только два электрических соединения. Внутри
кнопки контакты B и C соединены друг с другом так же, как A и D.

16.

Включаем и выключаем светодиод нажатием кнопки

17.

Включаем и выключаем светодиод нажатием кнопки
const int buttonPin = 2; // номер входа, подключенный к кнопке
const int ledPin = 13; // номер выхода светодиода
// переменные
int buttonState = 0; // переменная для хранения состояния кнопки
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop(){
buttonState = digitalRead(buttonPin); // считываем значения с входа кнопки
// проверяем нажата ли кнопка
// если нажата, то buttonState будет HIGH:
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); // включаем светодиод
}
else {
digitalWrite(ledPin, LOW); // выключаем светодиод
}
}

18. Задача для самостоятельного решения. Нажатие одной кнопки включит светодиод, нажатие другой кнопки выключит светодиод.

19. Эффект дребезга

При замыкании и размыкании между пластинами кнопки возникают
микроискры, провоцирующие до десятка переключений за несколько
миллисекунд. Явление называется дребезгом (англ. bounce). Это нужно
учитывать, если необходимо фиксировать «клики».

20. Схема подключения

Напрашивается подключение напрямую. Но это
неверный способ!!!

21. Схема со стягивающим резистором

•Есть нажатие: Vout = Vcc
•Нет нажатия: Vout = 0

22. Схема с подтягивающим резистором

•Есть нажатие: Vout = 0
•Нет нажатия: Vout = Vcc

23. Кнопка со стягивающим резистором

24.

Получим состояние кнопки и выведем в
монитор порта
const int buttonPin = 2;
const int ledPin = 13;
int buttonState = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop(){
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}

25. Мигание светодиода после нажатия на кнопку

26.

const int PIN_BUTTON = 2;
const int PIN_LED = 13;
void setup(){
Serial.begin(9600);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
// Получаем состояние кнопки
int buttonState = digitalRead(PIN_BUTTON);
Serial.println(buttonState);
// Если кнопка не нажата, то ничего не делаем
if (!buttonState) { delay(50); return; }
// Если кнопка нажата, мигаем светодиодом
digitalWrite(PIN_LED, HIGH);
delay(1000);
digitalWrite(PIN_LED, LOW);
delay(1000);
}

27. Мерзкое пианино

28.

#define BUZZER_PIN 13
#define FIRST_KEY_PIN 7
#define KEY_COUNT 3
void setup() {
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
for (int i = 0; i < KEY_COUNT; ++i) {
int keyPin = i + FIRST_KEY_PIN;
boolean keyUp = digitalRead(keyPin);
if (!keyUp) {
int frequency = 3500 + i * 500;
tone(BUZZER_PIN, frequency, 20);
}
}
}

29. Задания для самостоятельного решения

1.Сделайте так, чтобы наше пианино звучало в диапазоне от 2 кГц до 5 кГц.
2.Добавьте еще 2 кнопки и измените программу так, чтобы можно было
извлечь 5 различных нот.
3.Подключите кнопки по схеме со стягивающим резистором и измените
программу так, чтобы она продолжала работать.
4.Схема с светодиодом, зуммером и кнопкой. При удерживании кнопки
яркость светодиода возрастает от 0 до 5В, при это частота звука также
нарастает, при отпускании – светодиод и звук выключается, даже если
максимум в 5В еще не был достигнут.
English     Русский Rules