Работа аналоговых контактов платы Arduino Uno. Обмен данными через COM-порт. Воспроизведение звука.
Выбери формат для чтения
Загружаем конспект в формате ppt
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Лекция № 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
Тебе могут подойти лекции
А давай сэкономим
твое время?
твое время?
Дарим 500 рублей на первый заказ,
а ты выбери эксперта и расслабься
Включи камеру на своем телефоне и наведи на Qr-код.
Кампус Хаб бот откроется на устройстве
Не ищи – спроси
у ChatGPT!
у ChatGPT!
Боты в Telegram ответят на учебные вопросы, решат задачу или найдут литературу
Попробовать в Telegram
Оставляя свои контактные данные и нажимая «Попробовать в Telegram», я соглашаюсь пройти процедуру
регистрации на Платформе, принимаю условия
Пользовательского соглашения
и
Политики конфиденциальности
в целях заключения соглашения.
Пишешь реферат?
Попробуй нейросеть, напиши уникальный реферат
с реальными источниками за 5 минут
с реальными источниками за 5 минут
Работа аналоговых контактов платы Arduino Uno. Обмен данными через COM-порт. Воспроизведение звука.
Хочу потратить еще 2 дня на работу и мне нужен только скопированный текст,
пришлите в ТГ