- Необходими материали:
- Електрическа схема:
- Създаване на приложение за Android чрез обработка:
- Разбиране на кода за обработка:
- Програмиране на вашия Arduino:
- Дизайн на вериги и печатни платки с помощта на EasyEDA:
- Изчисляване и поръчване на проби онлайн:
- Работа на дисплея на таблото за Bluetooth:
Независимо дали става въпрос за дългите опънати магистрали или входната врата на Вашите лекари, ние имаме табели, поставени навсякъде, за да ни предоставят информация. Но тези табели често са скучни и не могат да бъдат конфигурирани от наш интерес от време на време. Така че в този проект ще изградим табло за управление на Bluetooth, използващо 8 * 8 матричен дисплей. Уникална характеристика на този проект е неговото приложение за Android, което позволява на потребителя да контролира всички 64 светодиода поотделно от мобилния телефон. Това позволява на потребителя да създава потребителски дизайн с лекота и да го показва на LED дисплея, звучи интересно нали? !! Така че нека да започнем…
Необходими материали:
- Arduino Pro mini
- MAX7219
- Bluetooth модул HC-05
- 8 * 8 LED матричен дисплей
- 20k резистор
- DC барел жак
Електрическа схема:
Схемата на схемата на тази LED контролирана платка с Bluetooth, изградена с помощта на приложението EasyEDA. Ще използваме същите схеми, за да разработим печатни платки от нея и да ги изработим с помощта на EasyEDA.
Веригата е доста права. Целият проект се захранва от 12V адаптер, който се подава директно към Raw щифта на Arduino Board. След това това необработено напрежение се регулира до + 5V, което се подава към Bluetooth модула и MAX7219 IC. Щифтовете Tx и Rx на Bluetooth модула са свързани към D11 и D10 на Arduino, за да се даде възможност за серийна връзка.
Цифровите щифтове D5 до D7 са свързани към MAX7219 IC за изпращане и получаване на данни чрез SPI комуникация. ПИН-кодът ISET на MAX7219 е изтеглен високо през 20k резистор.
За този проект съм изработил печатни платки, можете да получите дизайнерския файл на печатната платка и да използвате същите или да изградите веригата на макет Поради сложността му обаче се препоръчва да закупите 8x8 дисплеен модул или да използвате печатната платка
Матрицата 8x8 е много полезен дисплеен модул и може да се използва в много готини проекти:
- Управление на 8x8 LED матрица с Raspberry Pi
- Превъртане на текстов дисплей на 8x8 LED матрица с помощта на Arduino
- 8x8 LED матрица, използваща Arduino
- 8x8 LED матрична връзка с AVR микроконтролер
Създаване на приложение за Android чрез обработка:
Преди да започнем да програмираме нашия Arduino, трябва да знаем какъв тип данни ще получим от мобилния телефон, за да отговорим обратно на него. Така че нека да разгледаме как е създадено приложението за Android и как можете да го използвате на вашия смартфон, за да управлявате 8x8 LED матрицата.
Приложението за Android за този проект е създадено с помощта на софтуера за обработка. Това е приложение за разработка с отворен код и може лесно да бъде изтеглено и използвано за разработване на интересни проекти с помощта на Arduino или други микроконтролери, тъй като може да разработва приложения за Android и системни приложения. Вече сме направили няколко проекта с помощта на Обработка и можете да ги проверите, като кликнете върху връзките по-долу.
- Направи си сам FM радио, използвайки обработка
- Контрол на виртуалната реалност / жестовете с помощта на Arduino
- Частна чат стая с помощта на Arduino.
- Радарна система Arduino, използваща APP за обработка и ултразвуков сензор
- Откриване и проследяване на лица в реално време с помощта на Arduino
- Направи си сам скоростомер, използвайки Arduino и обработка
- Игра на пинг понг с помощта на акселерометър Arduino
- Двуног робот, използващ Arduino
- Направи си сам Arduino термокамера
Връщайки се към темата, за мен е невъзможно да обясня пълния код на приложението за Android, така че ще трябва да се научите сами да обработвате и след това да разгледате кода, за да разберете как работи. Следователно за хората, които са готови да пропуснат процеса на обучение Обработка могат да изтеглят приложението за Android от връзката по-долу
- Изтеглете приложението за Android
По-долу е интерфейсът на нашето приложение за Android:
APK файлът може да бъде директно инсталиран на всяко приложение за Android и стартиран като всяко друго приложение. Но се уверете, че вашето HC-05 Bluetooth устройство е наречено „HC-05“, защото само тогава ще работи.
Разбиране на кода за обработка:
Хората, които се интересуват да знаят какво се случва зад екрана, могат да четат по-нататък, други могат да пропуснат до следващото заглавие. По принцип приложението за Android се свързва с Bluetooth устройство, наречено „HC-05“ по време на стартиране и показва набор от 64 светодиода под формата на кръгове. След това, когато потребителят натисне кръга, кръгът става червен и номерът на кръга се изпраща до Arduino чрез Bluetooth, при получаване на номера на кръга Arduino включва светодиода. Нека разгледаме важните редове на програмата за обработка, за да разберем по-добре. Пълният код на приложението за Android може да бъде изтеглен от връзката по-долу.
- Код за обработка за приложение за Android
Използваме класове и обекти, за да покажем 64 светодиода, за да можем лесно да адресираме всеки от тях. Както можете да видите в кода по-долу, ние използваме цикъл for за итерация от 1 до 64 с помощта на масив. Това беше, че всеки светодиод ще има собствена стойност на X позиция, Y позиция и цвят и ние можем лесно да ги променяме.
// извежда всички светодиоди за (int i = 1; i <= 64; i ++) led_array.display (); // Всички светодиоди показват клас Led { float X_Pos; плаващ Y_Pos; цветен цвят; // КОНСТРУТОР Светодиод (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; цвят = tempc; } void display () { fill (color); елипса (X_Pos, Y_Pos, led_dia, led_dia); } }
Светодиодите се зареждат на екрана в същия ред на този на дисплея. Всеки светодиод е разделен на разстояние, равно на диаметъра на светодиода, по този начин можем лесно да различим кой светодиод е избран в момента от потребителя. Както е показано в програмата по-долу, ние създаваме масив, в който всеки елемент съдържа информацията за позицията X, Y и цвета на светодиода.
void load_leds () { led_array = нов Led; int a = 1; за (int j = 0; j <= 7; j ++) { плаващ y = височина / 6 + j * (led_dia * 1.5); за (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // попълване (255); // елипса (x, y, led_dia, led_dia); led_array = нов Led (x, y, цвят (255,255,255)); a ++; } } }
Основната стъпка в програмата е да проверите дали потребителят е натиснал някакъв светодиод и ако да, трябва да променим цвета на светодиода и да изпратим номера на светодиода чрез Bluetooth. Тъй като сега можем лесно да се обърнем към местоположението и цвета на всеки светодиод, можем да направим това, като просто сравним стойностите X, Y на мястото, където потребителят е натиснал, със стойността X, Y на светодиодите. Ако стойностите се сливат една в друга, тогава ние променяме състоянието на светодиода и също изпращаме номера чрез Bluetooth, както е показано по-долу.
// проверяваме дали мишката над led // Ако отговорът е да, изпратете номера на led за (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = нов Led (led_array.X_Pos, led_array. Y_Pos, led_color); байтови данни = {байт (i)}; bt. Broadcast (данни); } }
Освен това програмата може също така да нулира пълния светодиод, като ги изключи всички, а също така можете да направите светодиода да стане червен (ВКЛ.) Или бял (ИЗКЛ.), Така че имаме и бутон за превключване за това. Бутонът за превключване се показва и изчаква въвеждането. При натискане ще се предприеме съответното действие. Кодът, който прави същото, е показан по-долу като функция, която се извиква вътре в цикъла за теглене.
void load_buttons () { rectMode (CENTER); textAlign (ЦЕНТЪР, ЦЕНТЪР); noStroke (); запълване (# 1BF2D4); правоъгълник (ширина / 2-ширина / 4, височина / 1,3, ширина / 4, височина / 12); запълване (0); текст ("Нулиране", ширина / 2-ширина / 4, височина / 1,3); // бутон 1 ако (червен == вярно) {запълване (# 080F89); прави (ширина / 2 + ширина / 4, височина / 1,3, ширина / 4, височина / 12); запълване (255,0,0); текст ("ЧЕРВЕНО", ширина / 2 + ширина / 4, височина / 1.3);} // бутон 2 if (червен == невярно) {запълване (# 080F89); правоъгълник (ширина / 2 + ширина / 4, височина / 1,3, ширина / 4, височина / 12); запълване (255); text ("WHITE", width / 2 + width / 4, height / 1.3);} // бутон 2 } void read_buttons () { if (mousePress && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; ако (цвят_вал == - 14945580) { байтови данни = {0}; bt. Broadcast (данни); println ("RESET"); load_leds (); // зареждаме всички олово в позиция и цвят } if (color_val == - 16248951) { byte data = {100}; bt. Broadcast (данни); ако (червено == вярно) червено = невярно; иначе ако (червен == невярно) червен = вярно; println ("TOGGLE"); } цвят_вал = 0; } }
Програмиране на вашия Arduino:
Най- пълен Arduino програмата за тази Bluetooth безжична контролиран проект Board е дадено в долната част на екрана; можете да го използвате директно и да го качите на вашата дъска. Важните редове в програмата са обяснени по-долу.
Модулът Bluetooth е свързан към щифтове 10 и 11, поради което трябва да използваме серийния софтуер, за да активираме серийната комуникация на тези щифтове и след това можем да слушаме данни от тези щифтове. Получаваме данните, получени от Bluetooth модула, и ги запазваме в променлива, наречена входяща . Ако стойността на входящия е "0", ние ще изключим всички светодиоди, използвайки кода по-долу
ако (BT.available ()) { входящ = BT.read (); Serial.println (входящ); if (входящ == 0) m.clear (); // Изчиства дисплея
Използвайки стойностите на входящите , трябва да определим кой светодиод потребителят е натиснал на мобилния телефон и времето, за да включи или изключи този светодиод. Така че проверяваме дали стойността е равна на 100. Ако стойността е 10, това означава, че потребителят е поискал да превключва цвета на светодиода. Затова превключваме променливата в червено, за да разберем дали светодиодът трябва да бъде включен или изключен.
else if (входящ == 100) // Проверете дали трябва да включим или изключим светодиода { if (red == true) red = false; иначе ако (червен == невярно) червен = вярно; Serial.print ("ЧЕРВЕН:"); Serial.println (червен); }
И накрая, ако стойността е по-голяма от 65, това означава, че потребителят е натиснал светодиод. Въз основа на числото от 1 до 64 трябва да определим кой светодиод е натиснал потребителят. За да превключим този светодиод, ще ни е необходима стойността на ред и колона на този светодиод, която се изчислява и съхранява съответно на променливи X и Y и се показва на кода по-долу. Накрая въз основа на стойността на променливата червена или включваме, или изключваме светодиода според заявката на потребителя
иначе ако (входящ <= 64) {// Изчислете къде да ВКЛЕТЕ ro ИЗКЛЮЧЕТЕ превключвателя на LED = true; Y = входящ / 8; X = входящи - (Y * 8); ако (входящи% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); ако (червено == вярно) m.setDot ((X - 1), (Y), вярно); // LED ВКЛЮЧЕН иначе ако (червен == false) m.setDot ((X - 1), (Y), false); // LED ИЗКЛЮЧЕН }
Дизайн на вериги и печатни платки с помощта на EasyEDA:
За да проектираме този Bluetooth контролиран матричен дисплей, ние избрахме онлайн инструмента за EDA, наречен EasyEDA. Преди това използвах EasyEDA много пъти и го намерих за много удобен за използване, тъй като има добра колекция от отпечатъци и е с отворен код. След проектирането на печатни платки, ние можем да поръчаме пробите на печатни платки чрез техните евтини услуги за производство на печатни платки. Те също така предлагат услуга за снабдяване с компоненти, когато имат голям запас от електронни компоненти и потребителите могат да поръчат необходимите им компоненти заедно с поръчката на печатни платки.
Докато проектирате вашите схеми и печатни платки, можете също така да направите вашите схеми и печатни платки публични, така че другите потребители да могат да ги копират или редактират и да се възползват от вашата работа, ние също направихме цялата ни схема на платки и печатни платки публична за тази схема, проверете връзката по-долу:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Можете да видите всеки слой (Top, Bottom, Topsilk, bottomomsilk и т.н.) на печатната платка, като изберете слоя от прозореца „Layers“.
Можете също да видите печатната платка, как ще изглежда след изработката, като използвате бутона Photo View в EasyEDA:
Изчисляване и поръчване на проби онлайн:
След като завършите дизайна на тази PCB с контролирана Bluetooth, можете да поръчате PCB чрез JLCPCB.com. За да поръчате печатната платка от JLCPCB, ви е необходим Gerber File. За да изтеглите Gerber файлове на вашата PCB, просто щракнете върху бутона Fabrication Output в страницата на редактора EasyEDA, след което изтеглете от страницата за поръчки на EasyEDA PCB.
Сега отидете на JLCPCB.com и щракнете върху Quote Now или бутон, след което можете да изберете броя на печатни платки, които искате да поръчате, колко медни слоя имате нужда, дебелината на печатната платка, теглото на медта и дори цвета на печатната платка, като моментната снимка показано по-долу:
След като сте избрали всички опции, щракнете върху „Запазване в кошницата“ и след това ще бъдете отведени до страницата, където можете да качите вашия Gerber файл, който сме изтеглили от EasyEDA. Качете вашия Gerber файл и кликнете върху „Запазване в кошницата“. И накрая кликнете върху Checkout Secure, за да завършите поръчката си, след което ще получите вашите PCB няколко дни по-късно. Те произвеждат печатната платка на много ниска цена, която е 2 долара. Времето им за изграждане също е много по-малко, което е 48 часа с DHL доставка от 3-5 дни, като основно ще получите вашите печатни платки в рамките на една седмица след поръчката.
След няколко дни поръчка на печатни платки взех пробите на печатни платки в хубава опаковка, както е показано на снимките по-долу.
И след получаването на тези парчета съм запоил всички необходими компоненти върху печатната платка.
В моята печатна платка направих груба грешка, като избрах грешен отпечатък за модула 8 * 8 Display, поради което трябваше да използвам Perf платка, за да монтирам дисплея, както е показано на снимката. Но сега отпечатъкът е актуализиран в печатната платка и можете да поръчате коригираната печатна платка и да монтирате дисплейния модул с лекота.
Работа на дисплея на таблото за Bluetooth:
След като сте готови с хардуера или чрез получаване на печатната платка, или чрез свързване на макет, използвайте програмата Arduino, дадена в края на страницата, и я качете на вашата дъска Arduino. В Приложение за Android APK файла също е предвиден по-горе, да го използвате и инсталирате приложението на предпочитания от вас Android устройство.
Включете хардуера и потърсете името на устройството HC-05 на телефона си, за да го сдвоите. По подразбиране ключът за преминаване ще бъде 1234. След това отворете приложението, което току-що инсталирахме. Приложението трябва да покаже „ свързано с HC-05 “ в горната част на екрана, след което ще можете да докоснете светодиода на екрана и да забележите, че същият светодиод се включва и на дъската.
Можете също така да изключите всички светодиоди, като натиснете бутона за нулиране и да решите да включите или изключите определен LED, като натиснете бутона за превключване. По подразбиране който и да е светодиод, който натиснете, ще бъде включен. Цялостната работа на проекта може да бъде намерена във видеото по-долу. Ако имате някакъв проблем да го накарате да работи, използвайте полето за коментари по-долу или пишете на нашите форуми за повече техническа помощ. Надявам се, че сте разбрали урока и ви е било приятно да го изградите.