Мазмуну:

Ардуино менен түстүү миксер: 9 кадам (сүрөттөр менен)
Ардуино менен түстүү миксер: 9 кадам (сүрөттөр менен)

Video: Ардуино менен түстүү миксер: 9 кадам (сүрөттөр менен)

Video: Ардуино менен түстүү миксер: 9 кадам (сүрөттөр менен)
Video: Робототехника Arduino комплектиси 2024, Ноябрь
Anonim
Image
Image

Tliguori330Forlow More by the Author:

Ардуино менен түс чөйрөсү
Ардуино менен түс чөйрөсү
Дизайн процесси менен Doodle Bot
Дизайн процесси менен Doodle Bot
Дизайн процесси менен Doodle Bot
Дизайн процесси менен Doodle Bot
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Жөнүндө: Ар дайым үйрөнүү….. tliguori330 жөнүндө кененирээк »

Түс аралаштыргычы - Arduino менен иштеп, өсүп келе жаткан ар бир адам үчүн эң сонун долбоор. Бул нускаманын аягында сиз 3 кнопканы буруп, элестеткен дээрлик бардык түстү аралаштырып, дал келтире аласыз. Чеберчилик деңгээли төмөн, ал тургай, толук кандуу аны ийгиликтүү бүтүрө алат, бирок тажрыйбалуу ветеринар үчүн жагымдуу боло тургандай кызыктуу. Бул долбоордун баасы эч нерсеге жакын эмес жана көпчүлүк Arduino комплекттери керектүү материалдар менен келет. Бул коддун өзөгүндө ардуинону колдонгондор түшүнгүсү келген кээ бир негизги arduino функциялары турат. Биз analogRead () жана analogWrite () функциялары жөнүндө тереңирээк маалымат беребиз, биз map () деп аталган дагы бир кадимки функция катары. Бул шилтемелер бул функциялар үчүн arduino маалымдама баракчаларына алып келет.

1 -кадам: Бөлүктөр жана Componets

Бөлүктөр жана Componets
Бөлүктөр жана Componets
Бөлүктөр жана Componets
Бөлүктөр жана Componets
Бөлүктөр жана Componets
Бөлүктөр жана Componets
Бөлүктөр жана Componets
Бөлүктөр жана Componets

Arduino Uno

Потенциометр (x3)

RGB LED

220 Ом каршылыгы (x3)

Өткөргүч зымдар (x12)

Нан тактасы

2 -кадам: Прогрессти пландаңыз

Прогрессти пландаңыз
Прогрессти пландаңыз

Долбоорду кантип аягына чыгарууну пландаштыруу абдан пайдалуу болушу мүмкүн. Коддоо - бул логикалык прогресс бир кадамдан экинчи кадамга өтүү. Мен эскизимдин кантип иштешин каалаган схеманы түздүм. Жалпы максат - RGB светодиодунун үч түсүнүн ар бирин көзөмөлдөөчү 3 баскыч (потенциометр). Муну аткаруу үчүн биз схемага дал келген эскизди түзүшүбүз керек. Биз каалайбыз ….

1) 3 түрдүү потенциометрди окуп, алардын маанилерин өзгөрмөлөрдө сактаңыз.

2) Биз бул баалуулуктарды RGB LED диапазонуна ылайыкташтырабыз.

3) Анан, акыры, биз ошол өзгөртүлгөн баалуулуктарды RGB түстөрүнүн ар бирине жазабыз.

3 -кадам: Потенциометрди кантип колдонуу керек

Потенциометрди кантип колдонуу керек
Потенциометрди кантип колдонуу керек
Потенциометрди кантип колдонуу керек
Потенциометрди кантип колдонуу керек

Электрондук комплектилердин эң негизги компоненттеринин бири болгон потенциометрди ар кандай долбоорлордо колдонсо болот. потенциометрлер колдонуучуга чынжырдын каршылыгын физикалык түрдө өзгөртүүгө мүмкүнчүлүк берүү менен иштейт. Потенциометрдин эң фермердик мисалы - жарык диммери. жылдыруу же топту айлантуу чынжырдын узундугун өзгөртөт. узак жол көбүрөөк каршылыкка алып келет. Күчөтүлгөн каршылык тескерисинче токту төмөндөтөт жана жарык өчөт. Булар ар кандай формада жана өлчөмдө келиши мүмкүн, бирок көпчүлүгүнүн негизги түзүлүшү бирдей. Студент гитарасын оңдоого жардам сурады, биз анын кнопкалары потенциометрге окшош экенин билдик. Жалпысынан сиз сырткы буттарыңыз 5 вольтко жана жерге туташтырылгансыз жана ортоңку бутуңуз A0 сыяктуу аналогдук пинге барат

4 -кадам: (3x) потенциометр үчүн зымдардын схемасы

(3x) потенциометр үчүн зымдардын схемасы
(3x) потенциометр үчүн зымдардын схемасы
(3x) потенциометр үчүн зымдардын схемасы
(3x) потенциометр үчүн зымдардын схемасы
(3x) потенциометр үчүн зымдардын схемасы
(3x) потенциометр үчүн зымдардын схемасы

Эң сол буту 5v, эң оң буту GND менен туташат. Сиз чындыгында бул эки кадамды артка кайтара аласыз жана бул долбоорго анчалык зыян келтирбейт. Баарын өзгөртө турган нерсе - баскычты солго буруу, анын ордуна толугу менен жарыктык болот. Ортоңку бут Arduinoдогу аналогдук пиндердин бирине туташтырылат. Бизде үч баскыч бар болгондуктан, биз жаңы эле жасаган жумушубузду үч эсе көбөйткүбүз келет. Ар бир баскычка 5v жана GND керек, андыктан аларды нан тактасы аркылуу бөлүшүүгө болот. Нандын үстүндөгү кызыл тилке 5 Вольтко, көк тилке жерге туташтырылган. Ар бир баскычка өзүнүн аналогдук пини керек, ошондуктан алар A0, A1, A2 менен туташат.

5 -кадам: AnalogRead () жана Variables колдонуу

Туура орнотулган потенциометр менен биз бул баалуулуктарды окууга даярбыз. Биз муну каалаган сайын analogRead () функциясын колдонобуз. Туура синтаксиси analogRead (pin#); Ошентип, биздин орто потенциометрди окуу үчүн analogRead болмок (A1); Ардуиного кнопкадан жөнөтүлгөн сандар менен иштөө үчүн, биз бул сандарды өзгөрмөлүү түрдө сактагыбыз келет. Биз потенциометрди окуп, анын учурдагы номерин "val" бүтүн сандык өзгөрмөсүндө сактап калганыбызда, бул линия бул тапшырманы аткарат.

int val = analogRead (A0);

6 -кадам: Сериялык мониторду 1 баскыч менен колдонуу

Image
Image

Азыркы учурда биз баскычтардан баалуулуктарды алып, аларды өзгөрмөлүү түрдө сактай алабыз, бирок бул баалуулуктарды көрө алсак пайдалуу болмок. Бул үчүн биз орнотулган сериялык мониторду колдонушубуз керек. Төмөндөгү код - биз чынында Arduino IDEде иштей турган биринчи эскиз, аны алардын сайтынан жүктөп алса болот. Жараксыз орнотууда () биз ар бир ортоңку бутка INPUT катары туташкан аналогдук төөнөгүчтөрдү жандырабыз жана Serial.begin (9600) аркылуу сериялык мониторду иштетебиз; Кийинкиде биз баскычтардын бирөөсүн гана окуйбуз жана мурункудай өзгөрмөдө сактайбыз. Эми өзгөрүү - бул өзгөрмөнүн ичинде кайсы сан сакталганын басып чыгарган линияны кошуу. Эгерде сиз эскизди түзүп, иштетсеңиз, анда сериялык мониторуңузду ачып, экранда сандардын жылганын көрө аласыз. Код илинген сайын биз башка номерди окуп, басып чыгарабыз. Эгерде сиз A0го туташтырылган баскычты бурсаңыз, анда 0-1023 чейинки маанилерди көрүшүңүз керек. Кийинчерээк сактоо үчүн жана басуу үчүн дагы 2 analogReads жана 2 башка өзгөрмөнү талап кылган бардык 3 потнтиометрди окуу болот.

жараксыз орнотуу () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Serial.begin (9600); } void loop () {int val = analogRead (A0); Serial.println (val); }

7 -кадам: RGB LEDди колдонуу

RGB LEDди колдонуу
RGB LEDди колдонуу
RGB LEDди колдонуу
RGB LEDди колдонуу
RGB LEDди колдонуу
RGB LEDди колдонуу

4 Legged RGB LED i Arduino үчүн эң жакшы көргөн компоненттеримдин бири. Мен 3 негизги түстөрдүн аралашмасынан чексиз түстөрдү жаратуу ыкмасын кызыктуу деп эсептейм. Орнотуу кадимки LEDга окшош, бирок бул жерде биз негизинен кызыл, көк жана жашыл диоддорду бириктиребиз. Кыска буттардын ар бири ардуинодогу PWM казыктарынын бири тарабынан башкарылат. Эң узун буту 5 вольтко же жерге туташтырылат, бул сиздики жалпы аноддо же жалпы катоддо болсо. Сиз бул маселени чечүү үчүн эки жолду тең сынап көрүшүңүз керек. Бизде 5v жана GND бар, аны өзгөртүү үчүн жеңил болушу керек. Жогорудагы диаграммада 3 резистордун колдонулушу көрсөтүлгөн. Мен бул кадамды көбүнчө өткөрүп жиберем, анткени менде LED жок.

Түстөрдү жасоо үчүн биз analogWrite () функциясын колдонуп, канчалык кызыл, көк же жашыл кошууну көзөмөлдөйбүз. Бул функцияны колдонуу үчүн сиз кайсы PIN# менен сүйлөшөбүз жана 0-255 ортосундагы санды айтышыңыз керек. 0 толугу менен өчүрүлгөн жана 255 бир түстүн эң чоң суммасы. Келгиле, кызыл бутту 9 -пинке, жашылды 10 -го, көктү 11 -ге туташтыралы. Бул кайсы буттун түсү экенин билүү үчүн бир аз сыноо жана ката кетириши мүмкүн. Эгерде мен кызгылт көк түстү жасагым келсе, анда мен көп кызыл, жашыл жана көк түстүн жарымын жасай алмакмын. Мен сизди бул сандар менен иштөөгө чакырам, бул чынында эле кызыктуу. Кээ бир жалпы мисалдар жогорудагы сүрөттөрдө

жараксыз орнотуу () {

pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

8 -кадам: RGB LEDди башкаруу үчүн потенциометрлерди колдонуу (бир мүчүлүштүк менен)

RGB LEDди башкаруу үчүн потенциометрлерди колдонуу (бир мүчүлүштүк менен)
RGB LEDди башкаруу үчүн потенциометрлерди колдонуу (бир мүчүлүштүк менен)
RGB LEDди башкаруу үчүн потенциометрлерди колдонуу (бир мүчүлүштүк менен)
RGB LEDди башкаруу үчүн потенциометрлерди колдонуу (бир мүчүлүштүк менен)
RGB LEDди башкаруу үчүн потенциометрлерди колдонуу (бир мүчүлүштүк менен)
RGB LEDди башкаруу үчүн потенциометрлерди колдонуу (бир мүчүлүштүк менен)

Биздин эки кодду бириктирип баштоонун мезгили келди. Сизде 3 баскычка жана RGB светодиодуна ылайыктуу стандарттык панелде жетиштүү орун болушу керек. Идея кызыл көк жана жашыл маанилерди терүүнүн ордуна, биз түстөрдү дайыма өзгөртүү үчүн ар бир потениометрден сакталган баалуулуктарды колдонобуз. бул учурда бизге 3 өзгөрмө керек болот. redval, greenval, blueval - баары башка өзгөрмөлөр. Эсиңизде болсун, бул өзгөрмөлөргө каалаган нерсеңизди коё аласыз. эгер сиз "жашыл" баскычты бурсаңыз жана кызыл өлчөм өзгөрсө, сиз аттарды туура дал келтирүүгө алмаштыра аласыз. азыр ар бир баскычты буруп, түстөрдү башкара аласыз !!

жараксыз орнотуу () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

9 -кадам: БОНУС: Карта () Функциясы жана Таза Код

Сиз баскычты бир түскө бура баштаганда, ал чоңоюп, анан күтүлбөгөн жерден ылдый түшүп кетээрин байкасаңыз болот. Өстүрүү жана андан кийин тез өчүрүү үлгүсү баскычты өйдө карай бурганда 4 жолу кайталанат. Эгерде сиз эстесеңиз, биз потенциометрлер 0 менен 1023 ортосундагы маанилерди окуй алат деп айтканбыз. AnalogWrite () функциясы 0 менен 255 ортосундагы маанилерди гана кабыл алат. Потенциометр 255тен ашкандан кийин ал негизинен 0ден башталат. map () деп аталган ката. бир кадамда сандардын бир диапазонун башка сандар диапазонуна айландыра аласыз. биз 0-1023 сандарды 0-255ке чейинки сандарга айландырабыз. Мисалы, баскыч жарым жолго коюлган болсо, анда ал болжол менен 512. окулушу керек, бул сан 126га өзгөрөт, бул LEDдын жарымы. Бул акыркы эскизде мен ыңгайлуулук үчүн казыктарды өзгөрмөлүү аталыштар менен атадым. Сизде азыр эксперимент үчүн бүткөн түстүү миксер бар !!!

// потенциометр казыктары үчүн өзгөрмө аттар

int redPot = A0; int greenPot = A1; int bluePot = A2 // RGB казыктары үчүн өзгөрмө аттар int redLED = 9; int greenLED = 10; int blueLED = 11; жараксыз орнотуу () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Сериялык, баштоо (9600); } void loop () {// потенциометрлерден маанилерди окуу жана сактоо int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // RGB LED redVal = карта үчүн 0-1023төн 0-255ке чейинки баалуулуктарды өзгөртүү (redVal, 0, 1023, 0, 255); greenVal = карта (greenVal, 0, 1023, 0, 255); blueVal = карта (blueVal, 0, 1023, 0, 255); // бул өзгөртүлгөн баалуулуктарды RGB LED analogWrite (redLED, redVal) ар бир түсүнө жазуу; anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // Serial монитордогу маанилерди көрсөтүү Serial.print ("кызыл:"); Serial.print (redVal); Serial.print ("жашыл:"); Serial.print (greenVal); Serial.print ("көк:"); Serial.println (blueVal); }

Сунушталууда: