Мазмұны:

Arduino Fireflies: 11 қадам (суреттермен)
Arduino Fireflies: 11 қадам (суреттермен)

Бейне: Arduino Fireflies: 11 қадам (суреттермен)

Бейне: Arduino Fireflies: 11 қадам (суреттермен)
Бейне: Arduino - Fireflies in a jar 2024, Шілде
Anonim
Image
Image
Сізге не қажет болады
Сізге не қажет болады

Пенсильваниядағы жазды асыға күтетін нәрселердің бірі - менің ауламдағы отты шыбындар. Мен жақында осы қарапайым жобаны жасау үшін Adruino бағдарламалауды өзіме үйреттім. Бұл бастау үшін керемет бағдарлама және кез келген бағдарламашыға қарапайым, бірнеше минут ішінде құрастыруға, өзгертуге және көңіл көтеруге оңай. Бастайық.

1 -қадам: Сізге не қажет

Сізге не қажет болады
Сізге не қажет болады

Қателерді жыпылықтау үшін сізге келесі компоненттер қажет:

  • Ардуино. Мен нанодан бастадым, бірақ кез келген Arduino үйлесімді микроконтроллер.
  • Сары жарық диодтары 5 мм. Сіз олардың 6 -ға дейін қолдана аласыз.
  • Резисторлар. Токты шектеу үшін сізге бір жарық диодты резистор қажет. Мен 470-Ом қолдандым, бірақ микро-контроллерді қорғау үшін 150 Ом-нан жоғары нәрсе жақсы болуы керек.
  • Нан тақтасы.
  • Өткізгіш сым.

Артқы ауланың жобасын аяқтау үшін сізге қажет:

  • Ауа райына төзімді жоба қорапшасы.
  • Қосқышы бар 9 вольтты батарея. (Осы бөлімнің төменгі жағындағы ескертулерді қараңыз.)
  • Ауыстыру. (Мен бұл су өткізбейтін қосқыштарды таңдадым. Егер сіз оны сыртта пайдаланбасаңыз, кез келген қосқыш жасайды.)
  • Светодиодты бақтың айналасына орналастыру үшін бірнеше ярд сым. Мен бір жарық диодына Cat5 Ethernet сымының шамамен 10 футын қолдандым.
  • Кішкене нан тақтасы немесе кішкене тақта.
  • Жарық диодты сымдар өтетін ауа райына төзімді кабельдік шкаф. (Егер сіз мұны сыртта қолданбасаңыз, оны жіберіп алуға болады.)
  • Жарықдиодты қате түйіндерін қорғау үшін жылу қысқыш түтік.
  • Жасыл ілгектер (мысалы, велкро) жарықдиодты отты сіздің бақшаңыздағы өсімдіктер мен тіректерге бекітуге арналған жолақтар.
  • Кішкене тақтаға компоненттерді қосуға арналған ерлер тақырыптары.

Құралдар:

  • Жобаның қорабына арналған бұрғылау биттері. (Бұл мүмкіндікті пайдаланып, өзіңізге жақсы қадам жасаңыз. Сіз мұны істегеніңізге риза боласыз).
  • Ыстық желім қаруы.
  • Пісіру темірі.
  • Егер сізге қажет болса, жоба қорабында кеңістік жасауға арналған айналмалы құрал (яғни Dremel).

Мұнда бірнеше ескертулер:

1. Батареяны таңдау тез және оңай іске қосу үшін болды. 9 вольтты аккумуляторды үнемі пайдалану аздап шығындалады. Ұзақ өмір сүру үшін 4х АА-аккумулятор ұстағышын қолданған жөн (бірақ сізге сәйкес келетін үлкен жобалық қорап қажет).

2. Егер сіз сымдарға арналған Cat 5 Ethernet кабелін бөлшектеуді шешсеңіз, олардың мыс өзек екеніне көз жеткізіңіз және жұмыс кезінде оларды жүйелі түрде ұстау үшін оларды ПВХ -ға ұқыпты ораңыз. Тағы да, мен бір жарық диодына шамамен 10 фут сымды қолдандым. Егер сіз шамдарды алыс жерге таратқыңыз келсе, ұзағырақ сымдарды қолданыңыз!

3. Ақырында, мен берген барлық сілтемелер - бұл тек ұсыныстар. Бірдеңе жасамас бұрын немесе сатып алмас бұрын осы Нұсқаулықты оқып шығыңыз, өйткені сіз өзіңіз қалай жалғастырғыңыз келетінін жақсы түсінесіз.

2 -қадам: Схеманы құрыңыз

Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз
Циклды құрыңыз

Бұл жоба сіздің Arduino құрылғысындағы импульстік ені модуляциялық түйреуіштерді қолданады. Микроконтроллерде 6 түйреуіш бар, оларды қалағаныңызша пайдалануға болады. Схема өте тура. D3, D5, D6, D9, D10 және D11 импульстік ені модуляциясының (PWM) түйреуіштерінен светодиодтардың оң ұштарына дейін барлық қуатты қосыңыз. Теріс ұштарды резисторларға, содан кейін ортақ жерге жалғаңыз. (Резисторлар светодиодтың алдында да, артында да жүре алады. Егер сіз жоғары токтың қысқа тұйықталуынан сақтанғыңыз келмесе, айырмашылығы жоқ.) Мен сымдарды қосуға көмектесетін бірнеше схеманы қостым. (Fritzing дизайнерлік бағдарламалық жасақтамасының көмегімен жасалған диаграммалар.)

3 -қадам: Кодекс

Image
Image

Егер сіз тәжірибелі бағдарламашы болсаңыз, онда сіз бұл кодты оңай таба аласыз. Бұл айнымалыларды, пинмодтарды, функцияларды және тіпті кездейсоқ генераторды қолдануды таныстыратындықтан, үйренуді бастаудың тамаша коды. Код соншалықты ықшам емес, мен сенімдімін, бұл әсерге массивтермен және т.

Код түсініктемелері әр бөлімнің логикасын анықтайды. Барлық код осында салынған және сіз төмендегі эскизді жүктей аласыз.

/*

Бұл сценарий кездейсоқ ретпен PWM көмегімен 6 жарықдиодты (әрине сары) жыпылықтайды. Әрбір жарықдиодты өзінің функциялары басқарады. */ int led1 = 3; // Жарық диодты PWM түйреуіші 3 -ке жалғанған. Мен барлық 6 PWM түйреуішін қолдандым. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; ұзақ ранднум; // randnum жыпылықтау мен ұзақ жарылыстың арасындағы уақыт аралығын басқарады; // randbug қандай қате жанатынын басқарады. void setup () {pinMode (led1, OUTPUT); // Барлық PWM түйреуіштерін шығыс ретінде орнату. pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); } void loop () {randbug = random (3, 12); // randbug кездейсоқ түрде орындалатын функцияны таңдайды, // осылайша жану үшін кездейсоқ қатені таңдайды. if (randbug == 3) {bug1 (); } if (randbug == 5) {bug2 (); } if (randbug == 6) {bug3 (); } if (randbug == 9) {bug4 (); } if (randbug == 10) {bug5 (); } if (randbug == 11) {bug6 (); }} / * * Бұл функциялардың әрқайсысы бірдей жұмыс істейді. 'ілмектер үшін' ұлғайту, содан кейін азайту * жарықдиодты жарықтылықты басқару үшін осы істіктің шығысы. * 'randnum' - бұл кездейсоқ уақыт аралығы 10 мен 3000 мс * аралығында және қателердің жыпылықтауы арасындағы уақыт аралығын таңдайды. * '10 кешігу' - бұл тек өшу әсері үшін. */ void bug1 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led1, fadeValue); кешіктіру (10); } кешіктіру (randnum); } void bug2 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led2, fadeValue); кешіктіру (10); } кешіктіру (randnum); } void bug3 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led3, fadeValue); кешіктіру (10); } кешіктіру (randnum); } void bug4 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led4, fadeValue); кешіктіру (10); } кешіктіру (randnum); } void bug5 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led5, fadeValue); кешіктіру (10); } кешіктіру (randnum); } void bug6 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led6, fadeValue); кешіктіру (10); } кешіктіру (randnum); }

4 -қадам: қорапты жасаңыз

Қате түймелерін жасау!
Қате түймелерін жасау!

Сіз Arduino -ға кодты енгізіп, отшашуларыңызды өзіңіз қалағандай жұмыс жасағаннан кейін, оларды бақшаға қоюды қалауыңыз мүмкін; бұл Arduino мен светодиодтарды құрғақ ұстау үшін жоба қорапшасы мен жылудың кішіреюін білдіреді. Жасайық!

5 -қадам: Қателерді жою

Қате түймелерін жасау!
Қате түймелерін жасау!
Қате түймелерін жасау!
Қате түймелерін жасау!
Қате түймелерін жасау!
Қате түймелерін жасау!
  • Жарық диодты сымдарды шамамен 5 мм дейін кесіңіз.
  • Қолданылатын сымдардың ұштарын шешіп, қаңылтырмен бекітіңіз, сонымен қатар шамамен 5 мм.
  • Әр сымның ұшына 1 мм жылытатын құбырды сырғытыңыз.
  • Жарық диодты сымға дәнекерлеңіз. (Осы кезде сіз жұптың қай сымы сіздің оң және қайсысының теріс болатынын таңдауыңыз керек. Мен қатты сымды оң, ал ақ сымды теріс деп таңдадым. Кейінірек бас ауруын болдырмау үшін осы стратегияны жобада сақтаңыз!)
  • Жылуды сым мен жарықдиодты сымдар арқылы жылжытыңыз. Сымдарды азайту үшін олардың үстінен жылдам от жағыңыз.
  • Жарық диодты және сымды жарық диодты линзаның үстіне шығарып, оны жылытатын басқа бөлікті сырғытыңыз және оны орнына ерітіңіз.
  • Бірнеше жылу бөлігін сымға бүкіл ұзындығы бойынша сырғытыңыз және сымның ұқыпты болуын қамтамасыз ету үшін оны бірнеше фут сайын ерітіңіз.

6 -қадам: Жоба қорабын дайындаңыз

Жоба қорабын дайындаңыз
Жоба қорабын дайындаңыз
Жоба қорабын дайындаңыз
Жоба қорабын дайындаңыз
  • Жобаның қорабындағы қажет емес пластиктен тазарту үшін тегістеу барабаны бар айналмалы құралды қолданыңыз. (Қорапты қайта жинау үшін қажет болатын бұрандалы бекітпелерді кесіп алмаңыз.)
  • Коммутатордың қай жерде болуын және жарықдиодты сымдардың шығуын шешіңіз. Мен тараптарды ұсынамын, бірақ сіздің қажеттіліктеріңізге сәйкес келетін нәрсені қолданыңыз.
  • Сәйкес өлшемді бұрғылау ұшын пайдаланып, кабельдік қосқыш пен қосқышқа тесік жасаңыз.

Ескерту: Жоғарыдағы суретте сіз менің «муляждық кабель» жасағанымды көресіз. Бұл мен светодиодтарда жылуды қысқарту үшін қолданған 6 жұп сымның жиынтығы. Мен мұны кабельдік ілгектің нақты кабельге жақсы сәйкес келетініне көз жеткізу үшін, сондай -ақ қосқыш, кабельдік корпус пен қақпақ қосылғаннан кейін қораптың суға төзімділігін тексеру үшін қолдандым. (6 дюймдік суға 24 сағат бойы батқаннан кейін, оның ішінде ылғал өте аз болды. Мен бұл қорапты «ауа райына төзімді» деп атауға қуанышты болар едім).

7 -қадам: Күш әкеліңіз

Күш әкел!
Күш әкел!
Күш әкел!
Күш әкел!
  • Барлық үш компонентті жоба қорабына орналастыру арқылы Arduino -ға қанша батарея мен қосқыш сым қажет болатынын анықтаңыз. Коммутатор мен 9В батарея қосқышының сымдарын кесіңіз. Шеттерін байлап, тартыңыз. Келесі қадам үшін жылуды қысқартатын жерді сырғытыңыз.
  • Жолақтан екі аталық түйреуішті кесіңіз (бірақ оларды бір -біріне жабысып қалмаңыз).
  • 9В батарея қосқышының қызыл сымын қосқыштың бір шетіне дәнекерлеңіз. Коммутатордың екінші ұшын еркек бастық штырына дәнекерлеңіз. Қара аккумулятордың ұшын басқа еркек бастық штырьге жалғаңыз.
  • Жоғарыдағы диаграммада көрсетілгендей, тақырып түйреуіштері наноға VIN (оң) және GND (теріс) қуат беру үшін тақтаға түседі. VIN түйреуіші 7 -ден 12 вольтты басқара алады. Егер сіз Arduino -ны 9В батареясынан басқа жолмен қуаттауды жоспарласаңыз, басқа қоректендіру түйреуішін қолданыңыз.

8 -қадам: Қажет болса, наноды өзгертіңіз

Қажет болса, наноды өзгертіңіз
Қажет болса, наноды өзгертіңіз

Менің жоба қорапшам өте таяз болғандықтан, ICSP тақырыбының түйреуіштерін сәйкестендіру үшін алып тастау керек болды. Бұл түйреуіштер сіздің Arduino -мен екінші интерфейс. Оларды алып тастау Nano -ға зиян келтірмейді, өйткені сіз әрқашан USB порты арқылы сценарийлерді жүктей аласыз.

Ескерту: Егер сіздің наноға дәнекерлеу үшін түйреуіш түйреуіштер қажет болса, Arduino құрастыру кезінде бұл түйреуіштерді алып тастаңыз.

9 -қадам: Ішкі сым

Image
Image
Ішкі сым
Ішкі сым
Ішкі сым
Ішкі сым
  • Кабельдік гильзаның портын жобаланған қорапқа ол үшін бұрғыланған тесікке бекітіңіз. Егер сіз кабельдік шнурды қалай қолдану керектігін білмесеңіз, мен YouTube -тен тапқан бұл бейнеде оның жиналғанын көруге болады. (0:57 дейін жылдам алға.) Сізде резеңке шайба болуы мүмкін. Бұл жоба қорапшасы мен кабельдік корпустың сыртқы гайкасының арасында жүреді.
  • Жарық диодты сымдардың бос ұштарын жинаңыз. Уақыт бөліп, оларды бірдей ұзындыққа кесіңіз, ұштарын алып тастаңыз және қаңылтырмен бекітіңіз. Ұштарды кабельдік қапшықтың қақпағынан өткізіп, қораптың ішкі жағындағы нан тақтасына жету үшін жеткілікті ұзындық қалдырып, ұштарын біріктіру үшін жылуды қысқарту құралын қолданыңыз.
  • Сымның түйіспелі кабелі арқылы портқа жобалық қорапқа беріңіз және сымдарды орнына бекіту үшін тығыздағыштың қақпағын бұраңыз.
  • Жер сымдарын оң сымдардан ажыратыңыз (қайсысын бұрын таңдағаныңызды еске түсіріңіз). Барлық жерге қосылған сымдарды бір жерге қосу. Осы шоқтан қысқа сымды жалғап, оны 1 еркек басымен аяқтаңыз. Жалаң дәнекерленген қосылыстарды қорғау үшін термиялық қысқыш пайдаланыңыз.
  • Әр оң сымның ұшындағы ерлердің дәнекерлеуіштері. Тағы да, жылуды азайтуды қолданыңыз.
  • Ардуинодағы PWM түйреуіштеріне қосылу үшін оң жақ ерлер тақырыптарын тақтаға салыңыз.
  • Жалпы алаңды ток шектеу резисторы арқылы өтетін етіп салыңыз, содан кейін Arduino -дағы GND -ге.
  • Батареяға салыңыз және қосқышты бұрын бұрғыланған қораптың тесігінен салыңыз. Резеңке шайбаны жобалық қорап пен бұрандалы қақпақ арасына салыңыз. Қуат сымдарын тақтаға қосыңыз.
  • Қақпақты қорапқа бекітіңіз немесе бұраңыз. Бітті!

Ескерту: Схемада және даму кезеңінде мен бір жарықдиодты токқа шектеу резисторын қолдандым. Әдетте әр жарықдиодты өзінің резисторына ие болуы керек, әдетте, бірден бірнеше жарық диодты жарықтандырылады. Код бір уақытта бірнеше жарықдиодты жарықтандыруға мүмкіндік бермейді, сондықтан Arduino -ны қорғау үшін тек бір резисторды қолдану жақсы. Бұл сонымен қатар кішкене нан тақтасындағы орынды үнемдейді немесе әрбір светодиодты резистормен дәнекерлеу уақытын үнемдейді. Бұл… ЕСКЕРТУ !!! Егер сіз кодты бір уақытта бірнеше жарықдиодты жарықтандыратындай етіп өзгерткіңіз келсе, сізге әр жарық диодты бөлек резистор қажет болады.

10 -қадам: оны қолданыңыз

Оны қолданыңыз
Оны қолданыңыз

Светодиодтарды өсімдіктерге, қоршауларға, қызғылт фламингоға немесе аулаңыздағы басқа нәрселерге бекіту үшін желім таспаларын немесе ыстық желімді жабыстырғыштарды қолданыңыз. Шарап сөрелеріне, перделердің артына тығып немесе қараңғыда 3D өзгермелі әсер ету үшін сымдарды төбеге іліп қойыңыз. Бұл кештер, үйлену тойлары, кино мен фотосуреттер үшін керемет әсер болар еді.

11 -қадам: Әрі қарай …

Жоғарыда айтылғандай, бұл жобаның алғашқы нұсқасы, бірақ ол үлкен әлеуетке толы! Жылжыту регистрін қосу арқылы көбірек жарық диодтарын қосыңыз (қалай үйрену үшін JColvin91 нұсқаулығын қараңыз.) «Орнатыңыз және ұмытыңыз» функциясына жарық датчигін, күн зарядтағышын және таймерді қосыңыз! Қателерге өзіңіздің жарқылыңызды қосу үшін кодты жіберіңіз. Жасағандарыңызбен бөлісіңіз және ләззат алыңыз !!

ЖАҢАРТУ: Нұсқаулық жарияланғаннан кейінгі соңғы екі аптада көптеген қатысушылар осы жобаның кодын, аппараттық құралдарын және орындалуын жақсартуды ұсынды. Егер сіз оны құруды жоспарласаңыз, мен сізге кеңес беремін, сіз мен ойламаған жолмен осы найзағайларды қалай жасауға болатыны туралы түсініктемелер мен жауаптарды оқисыз. Мен бұл жобаны мен ойлағаннан гөрі дамытуға көмектесетін барлық идеяларды құпия көзбен қабылдау рухында қабылдаймын … және мұны жүзеге асырған барлық адамдарға алғыс айтамын.

Бару. Жасаңыз !!!

Ұсынылған: