Агуулгын хүснэгт:

Arduino дуу чимээний машин: 4 алхам
Arduino дуу чимээний машин: 4 алхам

Видео: Arduino дуу чимээний машин: 4 алхам

Видео: Arduino дуу чимээний машин: 4 алхам
Видео: Камера-ЛАМПА со слежением и определением человека. 2024, Арваннэгдүгээр
Anonim
Arduino дуу чимээний машин
Arduino дуу чимээний машин
Arduino дуу чимээний машин
Arduino дуу чимээний машин
Arduino дуу чимээний машин
Arduino дуу чимээний машин

Би хуучин P. C -ийг нурааж байхдаа жижигхэн чанга яригч олсон. дахин боловсруулахад зориулж Arduino Tone () функцийг ашиглахад энэ нь ямар сонсогдож байгааг харах болно гэж бодсон. Би талбайг хянах 10Ω потенциометрээр эхэлж, чимээ шуугиан тарьж эхлэв. Tone () функц нь импульсийн энгийн загварыг ашигладаг. Энэ нь квадрат долгионы хэлбэрээр өөр өөр давтамжтайгаар дууг асааж, унтраана. Надад өөр хоёр потенциометр хэвтэж байсан тул тэдгээрийг нэмж дууны үргэлжлэх хугацааг хянахад ашигласан. Нэг нь аяны уртыг хянах, нөгөө нь аялгуу хоорондын чимээгүй орон зайг хянах. Энэ нь үндсэндээ өөр дөрвөлжин долгионы загварыг ашигладаг боловч хамаагүй бага давтамжтай байдаг. Энэ хэлхээний тусламжтайгаар та янз бүрийн дуу чимээг олж авах боломжтой. Энэ нь пьезо дуугаруулагчтай сайн ажилладаг боловч чанга яригчийн басс хариулт байдаггүй.

Алхам 1: Танд хэрэгтэй эд ангиуд

Ардуино Уно

Талх, холбогч утас

1 Жижиг чанга яригч эсвэл Piezo дуугаруулагч

1 товчлуурын унтраалга

3 10Ω Потенциометр

1 22Ω эсэргүүцэл

10 кВ эсэргүүцэл

Алхам 2: Хэлхээг бий болгох

Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох

Талхны самбарыг Arduino 5V зүү болон GND руу холбоно уу. Pushbutton унтраалгыг талхны баруун эсвэл зүүн талд байрлуулж, 5V -т холбож, 10 кОм эсэргүүцэл ашиглан газардуул. Шилжүүлэгчийн хэлхээнээс утсыг Arduino дээрх 2 -р зүү рүү холбоно уу.

Талхны тавцангийн нөгөө талд чанга яригч/пьезо хэлхээг 5v болгож, 220Ω эсэргүүцэл ашиглан газардуулна. Энэхүү эсэргүүцэл нь гүйдлийг хянадаг тул эзлэхүүнийг хянадаг; Та өөр өөр резисторыг эндээс илүү өндөр эсвэл бага хэмжээгээр туршиж үзэх боломжтой.

Потенциометрээ талхны тавцангийн төв хэсэгт байрлуулснаар товчлуур дээр хуурдах хангалттай зай бий болно. Сав бүрийг 5V -т холбож, газардуулгатай, төвийн тээглүүрийг аналог A0, A1, A2 зүү болгон холбох шаардлагатай болно.

Алхам 3: Код

Потенциометр эсвэл тогоонд Arduino -д холбогдоход 0 -ээс 1023 хүртэлх утгыг буцаах хувьсах эсэргүүцэл байдаг. Бид map () функцийг ашиглан эдгээр утгыг өөрийн хэрэгцээнд нийцүүлэн өөрчлөх болно. Map () функц нь таван аргумент шаарддаг бөгөөд бидний хувьд боломжийн сонсогдох дуу гаргахын тулд 220-200 хооронд хэлбэлзэж байх ёстой.

Функц иймэрхүү харагдаж байна:

газрын зураг (тогоо, 0, 1023, 220, 2200);

Та сүүлийн хоёр утгыг ашиглан дээд ба доод давтамжийн аялгуугаар тоглож болно, нохойгоо бухимдуулахаас болгоомжлох хэрэгтэй.

Noise_Machine.ino

/* Аналог оролтонд холбогдсон гурван потенциометр ашиглан дуу чимээ гаргах машин
пьезо эсвэл жижиг чанга яригч. Товчлуур нь дуу чимээ, потенциометрийг асаадаг
Arduino tone () функцийг ашиглан давтамжийг хянах, хоёр хоцролт
ая бүрийн урт ба хоорондох уртыг хянадаг утгууд
ая бүр. Потенциометрүүд нь аналог утгыг өөрчилдөг
map () функцийг ашиглан өөртөө тохируулан том эсвэл жижиг муж болгон ашиглана уу
хөгжмийн амт.
Энэ код нь нийтийн домэйнд байна.
Мэтт Томас 2019-04-05
*/
constint buttonPin = 2; // 2 товчлуур
constint чанга яригч = 9; // 9 -р зүү дээрх чанга яригч эсвэл пьезо
int buttonState = 0; // Товчлуурын хувьсагчид
int potZero; // ба потенциометр
int potOne;
int potTwo;
voidsetup () {
pinMode (9, OUTPUT); // Илтгэгч/пьезо гаралтын зүү
}
voidloop () {
buttonState = digitalRead (buttonPin); // Товчлуурын төлөвийг уншина уу
potZero = analogRead (A0); // Аналог утгыг унших хувьсагчид
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = газрын зураг (potZero, 0, 1023, 0, 8800); // Аналог уншилтыг газрын зураг руу оруулна уу
int high = газрын зураг (potOne, 0, 1023, 0, 100); // шинэ тооны мужууд болон үүсгэх
int low = газрын зураг (potTwo, 0, 1023, 0, 100); // шинэ хувьсагчид
if (buttonState == HIGH) {// Хэрэв товчлуур дарагдсан бол …
ая (чанга яригч, htz); // Дуу асаалттай байна
саатал (өндөр); // Аяны урт
noTone (чанга яригч); // Дуугүй байна
саатал (бага); // Дараагийн ая дуустал цаг
} өөр {
noTone (чанга яригч); // Хэрэв товчлуурыг суллавал дуу гарахгүй
}
}

rawNoise_Machine.ino -г GitHub -аас ❤ -аар зохион байгуулсныг үзэх

Алхам 4: Төгсгөл

Тэгэхээр үүнд л байгаа юм. Код дээрх утгуудыг тоглуулж, илүү олон тогоо /товчлуур нэмж, өөр юуг хянах боломжтой болохыг хараарай. Алдаа гаргасан бол надад мэдэгдээрэй, хөгжим танд таалагдана гэж найдаж байна.

Зөвлөмж болгож буй: