Мазмұны:

Arduino көмегімен түс араластырғыш: 9 қадам (суреттермен)
Arduino көмегімен түс араластырғыш: 9 қадам (суреттермен)

Бейне: Arduino көмегімен түс араластырғыш: 9 қадам (суреттермен)

Бейне: Arduino көмегімен түс араластырғыш: 9 қадам (суреттермен)
Бейне: Ардуино Уно жиынтығының көмегімен "Бағдаршам Жасау " 2024, Қараша
Anonim
Image
Image

Tliguori330 авторы Толығырақ:

Arduino көмегімен түс сферасы
Arduino көмегімен түс сферасы
Дизайн процесі бар Doodle Bot
Дизайн процесі бар Doodle Bot
Дизайн процесі бар Doodle Bot
Дизайн процесі бар Doodle Bot
Arduino сенсорлы фортепиано
Arduino сенсорлы фортепиано
Arduino сенсорлы фортепиано
Arduino сенсорлы фортепиано

Туралы: Әрқашан үйрену….. tliguori330 туралы толығырақ »

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

1 -қадам: Бөлшектер мен компонеттер

Бөлшектер мен компонеттер
Бөлшектер мен компонеттер
Бөлшектер мен компонеттер
Бөлшектер мен компонеттер
Бөлшектер мен компонеттер
Бөлшектер мен компонеттер
Бөлшектер мен компонеттер
Бөлшектер мен компонеттер

Ардуино Уно

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

RGB жарық диоды

220 Ом резисторы (x3)

Өткізгіш сымдар (x12)

Нан тақтасы

2 -қадам: прогресті жоспарлаңыз

Сіздің прогрессіңізді жоспарлаңыз
Сіздің прогрессіңізді жоспарлаңыз

Жобаны қалай аяқтау керектігін жоспарлау өте пайдалы болуы мүмкін. Кодтау - бұл бір қадамнан екіншісіне логикалық прогресс туралы. Мен эскизімнің қалай жұмыс істеуін қалайтын схеманы жасадым. Жалпы мақсат - RGB жарықдиодты үш түстің әрқайсысын басқаратын 3 тұтқаны (потенциометр) алу. Мұны істеу үшін бізге схемаға сәйкес эскиз жасау керек. Біз қалаймыз ….

1) 3 түрлі потенциометрді оқып, олардың мәндерін айнымалыларда сақтаңыз.

2) Біз бұл мәндерді RGB жарық диодты диапазонына сәйкес түрлендіреміз.

3) Соңында біз сол түрлендірілген мәндерді RGB түстерінің әрқайсысына жазамыз.

3 -қадам: Потенциометрді қолдану әдісі

Потенциометрді қолдану әдісі
Потенциометрді қолдану әдісі
Потенциометрді қолдану әдісі
Потенциометрді қолдану әдісі

Электроника жиынтығының негізгі компоненттерінің бірі, потенциометрді әр түрлі жобаларда қолдануға болады. потенциометрлер қолданушыға тізбектің кедергісін физикалық түрде өзгертуге мүмкіндік береді. Потенциометрдің ең қарапайым мысалы - жарық диммері. тұтқаны жылжыту немесе бұру тізбектің ұзындығын өзгертеді. ұзақ жол үлкен қарсылыққа әкеледі. Қарсылықтың жоғарылауы керісінше токты төмендетеді және жарық өшеді. Олар әр түрлі формада және мөлшерде болуы мүмкін, бірақ олардың көпшілігінде бірдей негізгі қондырғы бар. Студент гитараны жөндеуге көмек сұрады, біз оның тұтқалары потенциометрлермен бірдей екенін білдік. Жалпы алғанда, сіз 5 вольт пен жерге қосылған сыртқы аяқтар болдыңыз, ал ортаңғы аяғы A0 сияқты аналогтық түйреуішке түседі

4 -қадам: (3x) потенциометрге арналған сымдардың схемасы

(3x) потенциометрге арналған сымдардың схемасы
(3x) потенциометрге арналған сымдардың схемасы
(3x) потенциометрге арналған сымдардың схемасы
(3x) потенциометрге арналған сымдардың схемасы
(3x) потенциометрге арналған сымдардың схемасы
(3x) потенциометрге арналған сымдардың схемасы

Ең сол жақ аяғы 5в -ке, ал оң жақ көп бөлігі GND -ге қосылады. Сіз бұл екі қадамды кері қайтара аласыз және бұл жобаға көп зиян тигізбейді. Тұтқаны солға қарай бұру ғана өзгереді - барлық жолдың орнына толық жарықтық болады. Ортаңғы аяғы Arduino аналогтық түйреуіштердің біріне қосылады. Бізде үш тұтқасы болатындықтан, біз жаңа жасаған жұмысымызды үш есе арттырғымыз келеді. Әр тұтқаға 5в және GND қажет, сондықтан оларды нан тақтасы арқылы бөлісуге болады. Нан тақтасындағы қызыл жолақ 5 вольтке, ал көк жолақ жерге қосылған. Әр тұтқаға өзінің аналогтық түйреуі қажет, сондықтан олар A0, A1, A2 қосылады.

5 -қадам: AnalogRead () және айнымалыларды қолдану

Егер сіз потенциометрді дұрыс орнатсаңыз, біз бұл мәндерді оқуға дайынбыз. Біз мұны істегіміз келсе, біз analogRead () функциясын қолданамыз. Дұрыс синтаксис - analogRead (pin#); біздің орта потенциометрді оқу үшін біз analogRead (A1); Тұтқадан Arduino -ға жіберілетін сандармен жұмыс істеу үшін біз бұл сандарды айнымалыға сақтағымыз келеді. Потенциометрді оқып, оның ағымдағы нөмірін «val» бүтін айнымалысында сақтаған кезде код жолы бұл тапсырманы орындайды.

int val = analogRead (A0);

6 -қадам: Сериялық мониторды 1 тұтқамен пайдалану

Image
Image

Қазіргі уақытта біз тұтқалардан мәндерді ала аламыз және оларды айнымалыға сақтай аламыз, бірақ егер біз бұл мәндерді көре алсақ пайдалы болар еді. Ол үшін бізге кіріктірілген сериялық мониторды пайдалану қажет. Төмендегі код - бұл біздің сайтта жүктеуге болатын Arduino IDE -де іске қосылатын алғашқы эскиз. Void setup () біз әрбір ортаңғы аяққа қосылған аналогтық түйреуіштерді 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 светодиодын пайдалану

RGB светодиодты қолдану
RGB светодиодты қолдану
RGB светодиодты қолдану
RGB светодиодты қолдану
RGB светодиодты қолдану
RGB светодиодты қолдану

4 аяқты RGB светодиоды мен Arduino үшін сүйікті компоненттердің бірі. Мен 3 негізгі түстің қоспасынан шексіз түстерді жасаудың керемет жолын табамын. Орнату кез келген қарапайым жарықдиодты ұқсас, бірақ мұнда бізде қызыл, көк және жасыл жарық диодтары біріктірілген. Қысқа аяқтарды ардуинодағы PWM түйреуіштерінің біреуі басқарады. Ең ұзын аяқ 5 вольтке немесе жерге қосылады, бұл сіздің анодты немесе жалпы катодты жарықдиодты болуға байланысты. Сіз бұл мәселені шешудің екі жолын да сынап көруіңіз керек. Бізде 5v және GND болады, оны өзгерту оңай болуы керек. Жоғарыдағы диаграммада 3 резистордың қолданылуы көрсетілген. Мен бұл қадамды жиі өткізіп жіберемін, өйткені менде жарық диодты шамдар болмады.

Түстерді жасау үшін біз analogWrite () функциясын қолданып, қызыл, көк немесе жасыл түстерді қосамыз. Бұл функцияны пайдалану үшін сіз# қандай сөйлесетінін және 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 жарықдиодты басқару үшін потенциометрлерді қолдану (бір қатемен)

RGB жарықдиодты басқару үшін потенциометрлерді қолдану (бір қатемен)
RGB жарықдиодты басқару үшін потенциометрлерді қолдану (бір қатемен)
RGB жарықдиодты басқару үшін потенциометрлерді қолдану (бір қатемен)
RGB жарықдиодты басқару үшін потенциометрлерді қолдану (бір қатемен)
RGB жарықдиодты басқару үшін потенциометрлерді қолдану (бір қатемен)
RGB жарықдиодты басқару үшін потенциометрлерді қолдану (бір қатемен)

Біздің екі кодты біріктіруді бастау уақыты келді. Сізде стандартты тақтада барлық 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 -қадам: BONUS: Map () функциясы және тазартқыш коды

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

// потенциометрлік түйреуіштердің айнымалы атаулары

int redPot = A0; int greenPot = A1; int bluePot = A2 // RGB түйреуіштері үшін айнымалы атаулар int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {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.print сериялық мониторындағы мәндерді көрсету («қызыл:»); Serial.print (redVal); Serial.print («жасыл:»); Serial.print (greenVal); Serial.print («көк:»); Serial.println (blueVal); }

Ұсынылған: