Справочник от Автор24
Поделись лекцией за скидку на Автор24

Работа аналоговых контактов платы Arduino Uno. Обмен данными через COM-порт. Воспроизведение звука.

  • 👀 203 просмотра
  • 📌 170 загрузок
Выбери формат для чтения
Статья: Работа аналоговых контактов платы Arduino Uno. Обмен данными через COM-порт. Воспроизведение звука.
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате ppt
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Работа аналоговых контактов платы Arduino Uno. Обмен данными через COM-порт. Воспроизведение звука.» ppt
Лекция № 4 Работа аналоговых контактов платы Arduino Uno. Обмен данными через COM-порт. Воспроизведение звука. Аналоговые входы (Параметры АЦП) Arduino содержит 6 каналов аналого-цифрового преобразователя, разрядностью 10 бит ов каждый. Это означает, что входное напряжения от 0 до 5В преобразовывается в целочисленное значение от 0 до 1023. Разрешающая способность считывания составляет: 5V/ 1024 значений = 0,004883 В/значение (4,883 мВ). Требуется приблизительно 100 нсек (0.0001 сек), чтобы считать значение аналогового ввода, так что максимальная скорость считывания — приблизительно 10000 раз в секунду. Потенциометр Самый простой аналоговый датчик, с которого можно получить аналоговый сигнал — эт о пот енциомет р. Их используют в стереосистемах, звуковых колонках, термостатах и других изделиях. Потенциометры действуют как регулируемые делители напряжения и снабжены ручкой-регулятором. Они бывают разных размеров и форм, но всегда имеют три вывода. Подключение потенциометра • Один крайний конт акт к земле. • Вт орой крайний – к шине пит ания +5В. Потенциометры симметричны, поэтому не имеет значение какой из крайних контактов куда подключать. Средний конт акт подключит е к аналоговому входу плат ы . При повороте ручки потенциометра аналоговый входной сигнал будет меняться от 0 до 5В. Подключение к плате Обмен данными через СОМ-порт /*Напишем простую программу, с помощью которой будем записывать в порт фразу с заданной периодичностью*/ void setup () { Serial.begin(9600);//инициализируем порт, устанавливаем //скорость обмена 9600 битов в секунду } void loop (){ Serial.println("Arduino"); //печатаем данные в порт delay(1000); } Управление светодиодом через СОМ-порт int outputPin=12;//СХЕМУ ПОДКЛЮЧЕНИЯ СМОТРИ РАНЬШЕ (ЛЕКЦИЯ 3, ЛАБ.РАБ.2) int val;//объявляем переменную для хранения принятого символа void setup() { Serial.begin(9600); pinMode(outputPin,OUTPUT);} void loop (){ if (Serial.available())//если есть принятый символ, то читаем его {val=Serial.read(); if (val=='H')//включаем светодиод {digitalWrite(outputPin,HIGH);} if(val=='L') {digitalWrite(outputPin,LOW);}//выключаем светодиод } } Считывание данных потенциометра в СОМ-порт const int POT=0; //Аналоговый вход 0 для подключения потенциометра int val = 0; //Переменная для хранения данных потенциометра void setup() { Serial.begin(9600);//настройка скорости COM-порта } void loop() { val = analogRead(POT); Serial.println(val); delay(1000); } Управление яркост ью свет одиода с помощью пот енциомет ра #define led 12 #define val A1 void setup () { pinMode(led,OUTPUT); pinMode(val,INPUT); } void loop () { int x;//объявляем переменную для присвоения ей значений x=analogRead(val)/2; analogWrite(led,x); } Работа со звуком. Пьзоизлучатель. Самым простым вариантом генерации звука является использование пьезоизлучателя. Пьезокерамические излучатели (пьезоизлучатели) – электроакустические устройства воспроизведения звука, использующие обратный пьезоэлектрический эффект – возникновение механических деформаций под действием электрического поля. Пьезоизлучатели бывают двух типов – со встроенным генератором и без. Пьезоизлучатели со встроенным генератором излучают фиксированный тональный сигнал сразу после подачи на них номинального напряжения. Они не могут воспроизводить произвольного сигнала. Их обычно используют для простого звукового оповещения Если требуется проиграть мелодию, то используют пьезоизлучатели без встроенного генератора и генерируют сигнал отдельно. Подключение пьзоизлучателя int SoundPin=12; int DelaySound=1000;//pause void setup () {} void loop () { tone(SoundPin,1915); delay(DelaySound); tone(SoundPin,1700); delay(DelaySound); tone(SoundPin,1519); delay(DelaySound); tone(SoundPin,1432); delay(DelaySound); tone(SoundPin,1275); delay(DelaySound); tone(SoundPin,1136); delay(DelaySound); tone(SoundPin,1014); delay(DelaySound); noTone(7); } Для воспроизведения мелодии необходимо подавать последовательно звуки определенной частоты и длительности. Для генерации звуков определенной частоты и длительности будем использовать Arduino-функцию tone(): one(pin,frequency,duration); Функция tone() генерирует на выводе прямоугольный сигнал заданной частоты (с коэффициентом заполнения 50%). Функция также позволяет задавать длительность сигнала. Если длительность сигнала не указана, он будет генерироваться до тех пор, пока не будет вызвана функция noTone(). Значения частот для нот первой и второй октав Вариант 2 // МЕЛОДИЯ – массив нот и массив длительностей char melody[]={'G','G','G','E','H', 'G','E','H','G','*', 'd','d','d','e','H', 'T','E','H','F', 'g','G','G','g','t','e', 's','s','s','*','U','r','c','B', 'H','A','H','*','E','T','E','F', 'H','G','H','d', 'g','G','G','g','t','f', 's','s','s','*','U','r','c','B', 'H','A','H','*','E','T','E','H', 'G','E','H','G', '%','%'}; int bb[]={8,8,8,6,2, 8,6,2,8,8, 8,8,8,6,2, 8,6,2,16, 8,6,2,8,6,2, 2,2,4,4,2,8,6,2, 2,2,4,4,2,8,6,2, 8,6,2,16, 8,6,2,8,6,2, 2,2,4,4,2,8,6,2, 2,2,4,4,2,8,6,2, 8,6,2,16, 64,64}; // подключить динамик к pin 8 int speakerPin = 8; // темп воспроизведения, ноты, длительности int tempo,notes,beats; // процедура проигрыша ноты void playNote(char note, int duration) { // массив для наименований нот в пределах двух октав char names[]={'c','r','d','s','e','f','t','g','u','a','b', 'h','C','R','D','S','E','F','T','G','U','A','B', 'H','F'}; // массив частот нот int tones[]={261,277,293,311,329,349,370,392,415,440,466, 494, 523,554,587,622,659,698,740,784,830,880,932,988}; // проиграть тон, соответствующий ноте for (int i = 0; i < sizeof(tones); i++) { if (names[i] == note) { tone(speakerPin,tones[i],duration); } } } void setup() { pinMode(speakerPin, OUTPUT); tempo=50; // скорость воспроизведения мелодии } void loop() { for(int i=0;i
«Работа аналоговых контактов платы Arduino Uno. Обмен данными через COM-порт. Воспроизведение звука.» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot