реклама
Можете да правите всякакви неща с мигащи светодиоди и в този прост проект ще направим малко устройство, което осветява съобщения във въздуха, когато го махате напред и назад. По-лесно е, отколкото си мислите, а общата цена на частите е под 5 долара.
Този проект използва оптична илюзия, наречена постоянство на зрението, за да се появи текст във въздуха. Вероятно сте се натъкнали на това явление, когато някой движи запалена светеща нощ през нощта. Ще използваме Arduino и някои светодиоди, за да имитираме този ефект. Този проект е лесен за изграждане, с малко компоненти и малко запояване (въпреки че, ако искате някои съвети как да започнете с поялника си, проверете това ръководство Научете как да спойкате с тези прости съвети и проектиМалко ви е сплашена мисълта за горещо желязо и разтопен метал? Ако искате да започнете да работите с електроника, ще трябва да се научите да спойкате. Нека помогнем. Прочетете още ).
Ще имаш нужда
- Arduino (използвах Nano $ 2, защото е компактен и евтин, но всеки модел трябва да е добре).
- 5х Червени светодиоди.
- 5х 220 ома резистори.
- 1x 9v държач за батерия.
- 1x Rocker превключвател.
- 1x парче протоборд.
- Корпус за готовия продукт (използвах малка картонена кутия, боядисана в черно).
Ще ви трябват и поялник и малко спойка, за да го съберете.
Макар и по избор, някой фитил за спойка може да ви бъде много удобен в случай, че направите грешки при запояване. Една полезна платка и някои проводници за изземване също са полезни за тестване на веригата.
Електрически инсталации
Окабеляването не може да бъде по-просто. Първо закачете Arduino, светодиоди и резистори, както е показано на тази диаграма.
Игли D2 до D6 отиват съответно към всеки резистор, които са прикрепени към положителния анод (дълъг крак) на всеки LED. Катодът е свързан със земята, която се свързва обратно към Arduino. Когато свърши, трябва да изглежда така:
Това е всичко: нашата схема е свършена! По-късно ще добавяме корпус на батерията и превключвател към нея, но това е всичко, което трябва да проверим дали работи.
код
Сега свържете Arduino към компютъра и отворете ID на Arduino. Ако сте нови за използването на Arduino и искате добро ръководство за това, тази връзка Първи стъпки с Arduino: Ръководство за начинаещиArduino е платформа за създаване на прототипи за електроника с отворен код, базирана на гъвкав, лесен за използване хардуер и софтуер. Той е предназначен за художници, дизайнери, любители и всички, които се интересуват от създаването на интерактивни обекти или среди. Прочетете още ще бъде полезно.
Отворете нова скица и копирайте този код в. Кодът бе променен от този проект и можете да го изтеглите изцяло в тази същност.
// колко дълго остава всеки светодиод. int delayTime = 1; // колко време между всеки int charBreak = 3; // колко време да чакаме след приключване на съобщението, преди да се повтори. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; настройка за невалидност () { pinMode (LED1, OUTPUT); pinMode (LED2, изход); pinMode (LED3, изход); pinMode (LED4, изход); pinMode (LED5, изход); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; int o [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int excl [] = {0, 29, 0, 0, 0}; int pitanje [] = {8, 19, 20, 8, 0}; int пространство [] = {0, 0, 0, 0, 0}; невалиден displayLine (int ред) { int myline; myline = линия; ако (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} ако (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} ако (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} if (myline> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} if (myline> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } void displayChar (char c) { ако (c == 'a') {for (int i = 0; i <5; i ++) {displayLine (a [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'b') {for (int i = 0; i <5; i ++) {displayLine (b [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'c2') {for (int i = 0; i <5; i ++) {displayLine (c2 [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'd') {for (int i = 0; i <5; i ++) {displayLine (d [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'e') {for (int i = 0; i <5; i ++) {displayLine (e [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'f') {for (int i = 0; i <5; i ++) {displayLine (f [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'g') {for (int i = 0; i <5; i ++) {displayLine (g [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'h') {for (int i = 0; i <5; i ++) {displayLine (h [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'i') {for (int it = 0; то <5; it ++) {displayLine (i [it]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'j') {for (int i = 0; i <5; i ++) {displayLine (j [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'k') {for (int i = 0; i <5; i ++) {displayLine (k [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'l') {for (int i = 0; i <5; i ++) {displayLine (l [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'm') {for (int i = 0; i <5; i ++) {displayLine (m [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'n') {for (int i = 0; i <5; i ++) {displayLine (n [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'o') {for (int i = 0; i <5; i ++) {displayLine (o [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'p') {for (int i = 0; i <5; i ++) {displayLine (p [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'q') {for (int i = 0; i <5; i ++) {displayLine (q [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'r') {for (int i = 0; i <5; i ++) {displayLine (r [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 's') {for (int i = 0; i <5; i ++) {displayLine (s [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 't') {for (int i = 0; i <5; i ++) {displayLine (t [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'u') {for (int i = 0; i <5; i ++) {displayLine (u [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'v') {for (int i = 0; i <5; i ++) {displayLine (v [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'w') {for (int i = 0; i <5; i ++) {displayLine (w [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'x') {for (int i = 0; i <5; i ++) {displayLine (x [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'y') {for (int i = 0; i <5; i ++) {displayLine (y [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == 'z') {for (int i = 0; i <5; i ++) {displayLine (z [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == '!') {for (int i = 0; i <5; i ++) {displayLine (без [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == '?') {for (int i = 0; i <5; i ++) {displayLine (въпрос [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == '.') {for (int i = 0; i <5; i ++) {displayLine (eos [i]); забавяне (забавянеTime);} displayLine (0);} ако (c == '') {for (int i = 0; i <5; i ++) {displayLine (интервал [i]); забавяне (забавянеTime);} displayLine (0);} забавяне (charBreak); } void displayString (char * s) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Промяна на текста тук, за да промените показания текст. // Уверете се, че пазите скобите и кавичките. displayString ( ".. здравей ..."); забавяне (40); }
Запазете скицата и я качете на вашия съвет. Ако получите някакви грешки, уверете се, че сте избрали правилния борд и COM порт. Вашите светодиоди трябва да започнат да мигат. Ако не, проверете всичките си връзки на дъската. Целите числа, обявени в началото на кода, определят колко бързо се показва текстът. Колкото по-голям е броят, толкова по-бързо ще ви е необходимо да размахате устройството. Открих, че използваните тук номера работят добре.
Сега да направя бърз тест. Изключете Arduino от USB кабела и прикрепете държача на батерията си към VIN и GND щифтовете на вашия arduino
Сега, след като можете да го преместите, внимателно опитайте да замахнете светодиодите пред себе си. Трябва да видите някакви букви, образуващи се във въздуха, при условие че е достатъчно тъмно около вас. Открих, че помогна да настроя телефона си, за да заснема това.
Работи! Сега, за да стане малко по-постоянен.
Ютии в готовност!
Поставете вашата платка, резистори и светодиоди на Arduino на вашия таблото така:
Разбира се, можете да направите оформлението толкова компактно, колкото желаете, стига схемата да остане същата. Уверете се, че оставяте поне един ред протоколни контакти от всяка страна на вашия Arduino за компонентите и захранването. Ако сте начинаещ в електрониката, ето някои от тях страхотни съвети за вас Електроника за начинаещи: 10 умения, които трябва да знаетеМного от нас дори никога не са докосвали поялник, но правенето на нещата може да бъде изключително полезно. Ето десет от най-основните умения за самостоятелна електроника, които да ви помогнат да започнете. Прочетете още .
Ние ще запояваме LED катодите заедно в линия, за да направим обща основа, подобно на това, което направихме, когато направихме LED матрица Надстройте коледния си венец с LED матрица, активирана с движениеТози коледен венец "Направи си сам" използва Arduino и LED матрица, за да произведе невероятен светлинен дисплей, който ще впечатли приятелите и семейството ти. Прочетете още .
Сгънете всеки катод, така че да припокрива следващия, и ги спойкате, за да създадете една непрекъсната линия. Сега трябва да спойкам анодите си към краката на резисторите до тях. Открих, че най-лесният начин да направя това е да спойка всеки крак към съответната подложка и след това да поставите желязо между тях за загряване на двете стави, преди накрая да се добави още спойка за преодоляване на пропастта между тях.
Проверете всяка връзка, за да видите, че тя е здраво закрепена и след това използвайте резачки за тел, за да отрежете излишните крака от резисторите и светодиодите.
Сега да повторим същата задача, но този път свързването на другия край на нашите резистори с краката на Arduino. Това е най-причудливата част от запояването. Всеки резистор много се прикрепя към своя Arduino щифт сам или веригата няма да работи по начина, по който е предназначен. Тук направих няколко грешки и се наложи да използвам фитил за спойка, за да премахна нежеланата спойка няколко пъти.
След като сте направили всички правилни връзки, проверете два пъти, че никоя от тях не се припокрива със съседите си. Ако имате достъп до мултицет тук, можете да използвате режим на непрекъснатост, за да проверите, че всеки пин има само непрекъсната линия към резистора. Ако току-що сте получили мултицет, има страхотно ръководство за започване в тази статия. 7 Направи сам технически умения, за да научиш децата си, защото училищата няма Прочетете още
След като проверите всяка връзка, отрежете излишната дължина от краката на резисторите
Добавяне на мощност
Сега пуснете парче тел от GND щифта на вашия Arduino до дупка до мястото, където свършва линията на споени катоди, и поставете черната жица на вашия държач за батерия до него.
Сега спойка жицата към щифта GND, по същия начин, както направихме с резисторите, и спойка двете проводници до края на линията катоди, за да създадете обща основа за веригата.
И накрая, прикрепете проводник към VIN щифта на вашия arduino и поставете превключвателя си между този проводник и батерията. Извинения за превключвателя с горещо лепило на тази снимка, трябваше да разглобя готовата машина, за да снимам този етап!
След като всичко е запоено, поставете батерия и натиснете превключвателя. Честито! Схемата е направена. Ако не виждате нищо светващо, проверете внимателно всяка спояваща става, за да видите къде може да има скъсване или късо съединение.
ограждане
Сега, когато работим, нека го поставим в кутия. Тук беше използвана боядисана картонена кутия, въпреки че бихте могли да направите нещо по-постоянно, използвайки кутия, купена в магазин за хоби, или дори стара кутия за тупър софтуер. За допълнително отчитане на Geek, дори можете да отпечатате 3D един от тези евтини 3D принтери. 5 евтини 3D принтера, които всъщност можете да закупите днесПреди няколко години дори най-евтините 3D принтери бяха неудобно близо до маркировката 1000 долара - сега можете да получите качествен 3D принтер за едва 400 долара. Прочетете още
Нарежете протокола си по размер, като го отбележите и внимателно щракнете части, които не са ви необходими.
Поставете веригата вътре в заграждението си и маркирайте къде трябва да минат светодиодите и превключвателя. По желание можете също да маркирате къде USB конекторът на дъската Arduino отговаря на ръба, така че можете да го включите, за да промените текста, без да отваряте кутията. Пробийте или изрежете дупките, от които се нуждаете, в заграждението.
Сега добавете малко горещо лепило към краищата на светодиодите и ги залепете на място. Залепих парче гъба под схемата, така че да седне плътно в кутията. Прикрепете вашия превключвател към калъфа. Използвах горещо лепило, въпреки че винтовете или болтовете ще направят много по-здрава връзка. Можете също така да залепите държача на батерията на гърба на платката, за да спрете движението й вътре, когато елементът се използва, но бъдете сигурни, че всички метални контакти на кутията не докосват някоя от вашите запояващи фуги!
Работа е свършена!
Затворете заграждението си и сте готови! За да промените текста, прикрепете USB кабела си към дъската Arduino и след това променете текста вътре в скобите displayString в контур метод. Намерете тъмно място и се забавлявайте!
Били ли сте изградили POV машина преди и знаете начини за подобряване на дизайна? Планирате ли сами да изградите такъв? Разкажете ни за вашия проект в коментарите по-долу, ще се радваме да го чуем!
Иън Бъкли е журналист на свободна практика, музикант, изпълнител и продуцент на видео, живеещ в Берлин, Германия. Когато не пише или е на сцената, той се занимава с „Направи си сам“ електроника или код с надеждата да стане луд учен.