- Erforderliche Materialien:
- Schaltplan:
- Erstellen der Android-Anwendung mithilfe der Verarbeitung:
- Verstehen des Verarbeitungscodes:
- Programmieren Ihres Arduino:
- Schaltungs- und Leiterplattendesign mit EasyEDA:
- Muster online berechnen und bestellen:
- Funktionsweise der Bluetooth-Anzeige:
Sei es auf den langen Autobahnen oder vor der Haustür Ihres Arztes, überall sind Schilder angebracht, die uns Informationen liefern. Aber diese Schilder sind oft langweilig und können nicht von Zeit zu Zeit gemäß unserem Interesse konfiguriert werden. In diesem Projekt werden wir ein Bluetooth-gesteuertes Schild mit einem 8 * 8-Matrix-Display bauen. Ein einzigartiges Merkmal dieses Projekts ist seine Android-Anwendung, mit der der Benutzer alle 64 LEDs einzeln vom Mobiltelefon aus steuern kann. Dies ermöglicht es dem Benutzer, mühelos benutzerdefinierte Designs zu erstellen und diese auf dem LED-Display anzuzeigen. Klingt interessant, oder? !! Also lasst uns anfangen…
Erforderliche Materialien:
- Arduino Pro mini
- MAX7219
- HC-05 Bluetooth-Modul
- 8 * 8 LED Matrix Anzeige
- 20k Widerstand
- DC Barrel Jack
Schaltplan:
Das Schaltbild dieser Bluetooth-gesteuerten LED- Karte, die mit der EasyEDA-Anwendung erstellt wurde. Wir werden die gleichen Schaltpläne verwenden, um eine Leiterplatte daraus zu entwickeln und sie mit EasyEDA herzustellen.
Die Strecke ist ziemlich einfach. Das gesamte Projekt wird von einem 12-V-Adapter gespeist, der direkt an den Raw-Pin des Arduino-Boards angeschlossen wird. Diese Rohspannung wird dann auf +5 V geregelt, die dem Bluetooth-Modul und dem MAX7219-IC zugeführt werden. Die Tx- und Rx-Pins des Bluetooth-Moduls sind mit D11 und D10 des Arduino verbunden, um die serielle Verbindung zu ermöglichen.
Die digitalen Pins D5 bis D7 sind mit dem MAX7219-IC verbunden, um Daten über die SPI-Kommunikation zu senden und zu empfangen. Der ISET-Pin des MAX7219 wird durch einen 20k-Widerstand hochgezogen.
Für dieses Projekt habe ich eine Leiterplatte hergestellt. Sie können die Konstruktionsdatei der Leiterplatte abrufen und diese verwenden oder die Schaltung auf einem Steckbrett aufbauen. Aufgrund seiner Komplexität wird jedoch empfohlen, entweder ein 8x8-Anzeigemodul zu kaufen oder die Leiterplatte zu verwenden
Die 8x8-Matrix ist ein sehr nützliches Anzeigemodul und kann in vielen coolen Projekten verwendet werden:
- Steuerung der 8x8 LED Matrix mit Raspberry Pi
- Scrollen von Textanzeige auf 8x8 LED Matrix mit Arduino
- 8x8 LED Matrix mit Arduino
- 8x8 LED Matrix Schnittstelle mit AVR Mikrocontroller
Erstellen der Android-Anwendung mithilfe der Verarbeitung:
Bevor wir mit der Programmierung unseres Arduino beginnen können, sollten wir wissen, welche Art von Daten wir vom Mobiltelefon erhalten, um darauf zu antworten. Schauen wir uns also an, wie die Android-Anwendung erstellt wird und wie Sie sie auf Ihrem Smartphone zur Steuerung der 8x8-LED-Matrix verwenden können.
Die Android-Anwendung für dieses Projekt wurde mit der Verarbeitungssoftware erstellt. Es ist eine Open-Source-Entwicklungsanwendung und kann einfach heruntergeladen und für die Entwicklung interessanter Projekte mit Arduino oder anderen Mikrocontrollern verwendet werden, da es Android-Anwendungen und Systemanwendungen entwickeln kann. Wir haben bereits einige Projekte mit Processing durchgeführt und Sie können sie überprüfen, indem Sie auf die unten stehenden Links klicken.
- DIY FM Radio mit Verarbeitung
- Virtual Reality / Gestensteuerung mit Arduino
- Privater Chatraum mit Arduino.
- Arduino-Radarsystem mit Verarbeitungs-APP und Ultraschallsensor
- Gesichtserkennung und -verfolgung in Echtzeit mit Arduino
- DIY Tachometer mit Arduino und Verarbeitung
- Ping-Pong-Spiel mit Arduino-Beschleunigungsmesser
- Biped Robot mit Arduino
- DIY Arduino Wärmebildkamera
Zurück zum Thema: Es ist mir unmöglich, den vollständigen Code der Android-Anwendung zu erklären. Sie müssten also die Verarbeitung selbst lernen und sich dann den Code ansehen, um zu verstehen, wie er funktioniert. Daher können Personen, die bereit sind, den Lernprozess zu überspringen, die Android-Anwendung über den folgenden Link herunterladen
- Laden Sie die Android-Anwendung herunter
Unten finden Sie die Benutzeroberfläche unserer Android-Anwendung:
Die APK-Datei kann direkt auf jeder Android-Anwendung installiert und wie jede andere Anwendung gestartet werden. Stellen Sie jedoch sicher, dass Ihr HC-05 Bluetooth-Gerät als „HC-05“ bezeichnet ist, da es nur dann funktioniert.
Verstehen des Verarbeitungscodes:
Personen, die wissen möchten, was hinter dem Bildschirm passiert, können weiterlesen, andere können zur nächsten Überschrift springen. Grundsätzlich stellt die Android-Anwendung beim Start eine Verbindung zu einem Bluetooth-Gerät namens „HC-05“ her und zeigt einen Satz von 64 LEDs in Form von Kreisen an. Wenn der Benutzer dann auf den Kreis drückt, wird der Kreis rot und die Kreisnummer wird über Bluetooth an Arduino gesendet. Beim Empfang der Kreisnummer schaltet der Arduino die LED ein. Schauen wir uns die wichtigen Zeilen des Verarbeitungsprogramms an, um sie besser zu verstehen. Der vollständige Code der Android-Anwendung kann über den folgenden Link heruntergeladen werden.
- Verarbeitungscode für Android-Anwendung
Wir verwenden Klassen und Objekte, um 64 LEDs anzuzeigen, damit wir jede einzelne leicht ansprechen können. Wie Sie im folgenden Code sehen können, verwenden wir eine for- Schleife, um mithilfe eines Arrays von 1 auf 64 zu iterieren. Dies war, dass jede LED ihren eigenen Wert für X-Position, Y-Position und Farbe hat und wir sie leicht ändern können.
// dipslay alle LEDs für (int i = 1; i <= 64; i ++) led_array.display (); // Alle LEDs angezeigt Klasse Led { float X_Pos; float Y_Pos; Farbe; // CONSTRUTOR Led (float tempx, float tempy, Farbtempc) { X_Pos = tempx; Y_Pos = tempy; Farbe = Tempc; } void display () { fill (color); Ellipse (X_Pos, Y_Pos, led_dia, led_dia); } }
Die LEDs werden in der gleichen Reihenfolge wie die Anzeige auf den Bildschirm geladen. Jede LED ist durch einen Abstand getrennt, der dem Durchmesser der LED entspricht. Auf diese Weise können wir leicht unterscheiden, welche LED derzeit vom Benutzer ausgewählt wird. Wie im folgenden Programm gezeigt, erstellen wir ein Array, in dem jedes Element die Informationen über die X-, Y-Position und die Farbe der LED enthält.
void load_leds () { led_array = new Led; int a = 1; für (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1,5); für (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1,5); // fill (255); // Ellipse (x, y, led_dia, led_dia); led_array = new Led (x, y, Farbe (255,255,255)); a ++; } } }
Der Hauptschritt im Programm besteht darin, zu überprüfen, ob der Benutzer eine LED gedrückt hat. Wenn ja, müssen wir die Farbe der LED ändern und die LED-Nummer über Bluetooth senden. Da wir jetzt leicht auf die Position und Farbe jeder LED eingehen können, können wir dies tun, indem wir nur die X, Y-Werte, auf die der Benutzer gedrückt hat, mit den X, Y-Werten der LEDs vergleichen. Wenn die Werte miteinander verschmelzen, ändern wir den Status der LED und senden die Nummer auch über Bluetooth, wie unten gezeigt.
// prüfe ob Maus über LED // Wenn ja sende die LED Nummer für (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 = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); Byte-Daten = {Byte (i)}; bt.broadcast (Daten); } }
Abgesehen davon kann das Programm auch die gesamte LED zurücksetzen, indem Sie alle ausschalten. Sie können auch eine LED rot (EIN) oder weiß (AUS) schalten lassen, sodass wir auch eine Umschalttaste dafür haben. Die Umschalttaste wird angezeigt und wartet auf die Eingabe. Wenn gedrückt, wird die entsprechende Aktion ausgeführt. Der Code, um dasselbe zu tun, wird unten als Funktion gezeigt, die innerhalb der Zeichenschleife aufgerufen wird.
void load_buttons () { rectMode (CENTER); textAlign (CENTER, CENTER); noStroke (); füllen (# 1BF2D4); rect (Breite / 2-Breite / 4, Höhe / 1,3, Breite / 4, Höhe / 12); füllen (0); Text ("Zurücksetzen", Breite / 2-Breite / 4, Höhe / 1,3); // Schaltfläche 1 if (red == true) {fill (# 080F89); rect (Breite / 2 + Breite / 4, Höhe / 1,3, Breite / 4, Höhe / 12); Füllung (255,0,0); Text ("ROT", Breite / 2 + Breite / 4, Höhe / 1,3);} // Schaltfläche 2 if (rot == falsch) {fill (# 080F89); rect (Breite / 2 + Breite / 4, Höhe / 1,3, Breite / 4, Höhe / 12); Füllung (255); Text ("WEISS", Breite / 2 + Breite / 4, Höhe / 1,3);} // Schaltfläche 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { Byte-Daten = {0}; bt.broadcast (Daten); println ("RESET"); load_leds (); // alle LED in Position und Farbe laden } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (Daten); if (rot == wahr) rot = falsch; sonst wenn (rot == falsch) rot = wahr; println ("TOGGLE"); } color_val = 0; } }
Programmieren Ihres Arduino:
Das vollständige Arduino-Programm für dieses Bluetooth-gesteuerte Wireless Board-Projekt finden Sie am unteren Rand dieses Bildschirms. Sie können es direkt verwenden und auf Ihr Board hochladen. Die wichtigen Zeilen im Programm werden unten erläutert.
Das Bluetooth-Modul ist mit Pin 10 und 11 verbunden, daher müssen wir die serielle Software verwenden, um die serielle Kommunikation auf diesen Pins zu ermöglichen, und dann können wir auf Daten von diesen Pins warten. Wir erhalten die vom Bluetooth-Modul empfangenen Daten und speichern sie in einer Variablen namens Incoming . Wenn der eingehende Wert "0" ist, schalten wir alle LEDs mit dem folgenden Code aus
if (BT.available ()) { eingehend = BT.read (); Serial.println (eingehend); if (eingehend == 0) m.clear (); // Löscht die Anzeige
Anhand der eingehenden Werte müssen wir bestimmen, welche LED der Benutzer auf dem Mobiltelefon gedrückt hat, und das Wetter, um diese LED ein- oder auszuschalten. Wir prüfen also, ob der Wert gleich 100 ist. Wenn der Wert 10 ist, bedeutet dies, dass der Benutzer aufgefordert hat, die Farbe der LED umzuschalten. Also schalten wir die Variable rot um, um zu wissen, ob die LED ein- oder ausgeschaltet werden soll.
sonst wenn (eingehend == 100) // Überprüfen Sie, ob die LED ein- oder ausgeschaltet werden soll { if (rot == wahr) rot = falsch; sonst wenn (rot == falsch) rot = wahr; Serial.print ("RED:"); Serial.println (rot); }}
Schließlich, wenn der Wert über 65 ist, bedeutet dies, dass der Benutzer auf einer LED gedrückt hat. Anhand der Zahl von 1 bis 64 müssen wir bestimmen, welche LED der Benutzer gedrückt hat. Um diese LED umzuschalten, benötigen wir den Wert von Zeile und Spalte dieser LED, der berechnet und in der Variablen X bzw. Y gespeichert und im folgenden Code angezeigt wird. Basierend auf dem Wert der Variablen Rot schalten wir die LED gemäß der Benutzeranforderung entweder ein oder aus
else if (ankommend <= 64) {// berechne wo auf ON ro die LED AUS Toggle = true; Y = eingehend / 8; X = eingehend - (Y * 8); if (eingehende% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (rot == wahr) m.setDot ((X - 1), (Y), wahr); // LED EIN sonst wenn (rot == falsch) m.setDot ((X - 1), (Y), falsch); // LED AUS }
Schaltungs- und Leiterplattendesign mit EasyEDA:
Für die Gestaltung dieses Bluetooth Controlled Matrix-Displays haben wir das Online-EDA-Tool EasyEDA ausgewählt. Ich habe EasyEDA bereits viele Male verwendet und fand es sehr bequem zu verwenden, da es eine gute Sammlung von Fußabdrücken hat und Open Source ist. Nach dem Entwurf der Leiterplatte können wir die Leiterplattenmuster über ihre kostengünstigen Leiterplattenherstellungsdienste bestellen. Sie bieten auch einen Komponentenbeschaffungsservice an, bei dem sie über einen großen Bestand an elektronischen Komponenten verfügen und Benutzer ihre erforderlichen Komponenten zusammen mit der Leiterplattenbestellung bestellen können.
Während Sie Ihre Schaltungen und Leiterplatten entwerfen, können Sie auch Ihre Schaltungs- und Leiterplattenentwürfe veröffentlichen, damit andere Benutzer sie kopieren oder bearbeiten und von Ihrer Arbeit profitieren können. Wir haben auch unsere gesamten Schaltungs- und Leiterplattenlayouts für diese Schaltung veröffentlicht der folgende Link:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Sie können jede Ebene (oben, unten, Oberseide, untere Seide usw.) der Leiterplatte anzeigen, indem Sie die Ebene aus dem Fenster "Ebenen" auswählen.
Sie können auch die PCB sehen, wie es nach der Herstellung aussehen wird, die unter Verwendung von Fotoansicht Schaltfläche in EasyEDA:
Muster online berechnen und bestellen:
Nachdem Sie das Design dieser Bluetooth-gesteuerten Matrix-Platine abgeschlossen haben, können Sie die Platine über JLCPCB.com bestellen. Um die Platine bei JLCPCB zu bestellen, benötigen Sie Gerber File. Um Gerber-Dateien von Ihrer Leiterplatte herunterzuladen, klicken Sie einfach auf der EasyEDA-Editor-Seite auf die Schaltfläche Fabrication Output und dann von der Bestellseite für EasyEDA-Leiterplatten.
Gehen Sie nun zu JLCPCB.com und klicken Sie auf Jetzt zitieren oder auf die Schaltfläche. Anschließend können Sie die Anzahl der zu bestellenden Leiterplatten, die Anzahl der benötigten Kupferschichten, die Leiterplattendicke, das Kupfergewicht und sogar die Leiterplattenfarbe wie den Schnappschuss auswählen unten gezeigt:
Nachdem Sie alle Optionen ausgewählt haben, klicken Sie auf "In den Warenkorb speichern" und Sie werden zu der Seite weitergeleitet, auf der Sie Ihre Gerber-Datei hochladen können, die wir von EasyEDA heruntergeladen haben. Laden Sie Ihre Gerber-Datei hoch und klicken Sie auf "In Warenkorb speichern". Klicken Sie abschließend sicher auf Kasse, um Ihre Bestellung abzuschließen. Einige Tage später erhalten Sie Ihre Leiterplatten. Sie stellen die Leiterplatte mit einer sehr niedrigen Rate her, die 2 US-Dollar beträgt. Ihre Bauzeit ist auch sehr viel kürzer, was 48 Stunden bei einer DHL-Lieferung von 3-5 Tagen beträgt. Grundsätzlich erhalten Sie Ihre Leiterplatten innerhalb einer Woche nach der Bestellung.
Nachdem ich einige Tage lang Leiterplatten bestellt hatte, erhielt ich die Leiterplattenmuster in einer schönen Verpackung, wie in den folgenden Abbildungen gezeigt.
Und nachdem ich diese Teile erhalten habe, habe ich alle erforderlichen Komponenten über die Leiterplatte gelötet.
Auf meiner Platine habe ich einen stumpfen Fehler gemacht, indem ich den falschen Platzbedarf für das 8 * 8-Anzeigemodul ausgewählt habe. Daher musste ich eine Perf-Karte verwenden, um das Display wie in der Abbildung gezeigt zu montieren. Jetzt ist der Footprint jedoch ein Update auf der Platine, und Sie können die korrigierte Platine bestellen und das Anzeigemodul problemlos montieren.
Funktionsweise der Bluetooth-Anzeige:
Wenn Sie mit der Hardware fertig sind, indem Sie entweder die Platine erhalten oder die Verbindung auf dem Steckbrett herstellen, verwenden Sie das am Ende der Seite angegebene Arduino-Programm und laden Sie es auf Ihr Arduino-Board hoch. Die APK-Datei für die Android-Anwendung finden Sie ebenfalls oben. Verwenden Sie sie und installieren Sie die Anwendung auf Ihrem bevorzugten Android-Gerät.
Schalten Sie die Hardware ein und suchen Sie auf Ihrem Telefon nach dem HC-05-Gerätenamen, um ihn zu koppeln. Der Pass-Schlüssel ist standardmäßig 1234. Öffnen Sie danach die gerade installierte Anwendung. Die Anwendung sollte oben auf dem Bildschirm " Verbunden mit HC-05 " anzeigen. Dann können Sie die LED auf dem Bildschirm berühren und feststellen, dass dieselbe LED auch auf der Platine eingeschaltet ist.
Sie können auch alle LEDs durch Drücken der Reset- Taste ausschalten und eine bestimmte LED durch Drücken der Toggle-Taste ein- oder ausschalten. Standardmäßig ist jede LED, die Sie drücken, eingeschaltet. Die vollständige Arbeitsweise des Projekts finden Sie im folgenden Video. Wenn Sie Probleme haben, es zum Laufen zu bringen, verwenden Sie das Kommentarfeld unten oder schreiben Sie in unsere Foren, um weitere technische Hilfe zu erhalten. Ich hoffe, Sie haben das Tutorial verstanden und es genossen, es zu erstellen.