Inhoudsopgave:

8x8 matrixweergave met BT - Ajarnpa
8x8 matrixweergave met BT - Ajarnpa

Video: 8x8 matrixweergave met BT - Ajarnpa

Video: 8x8 matrixweergave met BT - Ajarnpa
Video: Breakout ontwerpen voor 8x8 pixels op GameZip met Processing 2024, November
Anonim

Ik heb een paar maanden geleden een 8x8-matrix met 4 panelen gekocht van Ebay (China).

Ik was een beetje teleurgesteld toen ik me realiseerde dat het van links naar rechts hard bedraad was, niet van boven naar beneden, waarvoor de meeste voorbeelden op het net zijn geschreven! Zie stap 2.

Ik denk dat ik de code had kunnen wijzigen (niet zeker hoe), maar mijn gebruikelijke luiheid zei me dat ik moest zoeken naar iets dat al geschreven was. Ik kwam een voorbeeld tegen en bleef erbij!

Ik speelde met vaste berichten, maar besloot toen om het bericht via Bluetooth te programmeren.

Toen wilde ik berichten opslaan en ophalen!

Er was veel vallen en opstaan, maar na een paar uur coderen kreeg ik het werkend.

Ik probeer er nog steeds een praktisch gebruik voor te vinden !!:-)

Stap 1: Het scherm

Het scherm
Het scherm
Het scherm
Het scherm

Zoals eerder vermeld, is het scherm van links naar rechts bedraad in plaats van van boven naar beneden.

Ik weet zeker dat andere code had kunnen worden aangepast om dit te compenseren!

Ik weet niet meer waar ik de werkcode heb gedownload, maar een zoekopdracht naar "cosmicvoid matrix of LedControlMS.h" kan helpen. De LedControlMS.h lib is vereist voor dit project.

Het enige deel van deze code dat ik heb gewijzigd, was het aantal schermen, omdat het lijkt alsof het op 5 is ingesteld, ik heb het zojuist gewijzigd in 4.

Ik heb nog een x4-display besteld, zodat ik kan zien hoe het werkt met 8 matrices in plaats van 4!

Stap 2: De Bluetooth-bit

De Bluetooth-bit
De Bluetooth-bit

Elke keer dat ik met een Bluetooth-apparaat speel, verwijs ik altijd naar deze uitstekende instructable!

www.instructables.com/id/Modify-The-HC-05-B…

Deze Instructable vertelt je alles wat je moet weten over het instellen en koppelen van de HC-05 aan een mobiele telefoon of tablet.

Ik heb probleemloos een Samsung Galaxy 6 Edge en een Tab A gekoppeld.

Ik heb de communicatiesnelheid gewijzigd naar 57600.

Stap 3: BT-communicatie en het programma

BT Communicatie en het programma
BT Communicatie en het programma

Om met de HC-05 te communiceren heb ik een gratis app gedownload van de Play Store, er zijn er verschillende beschikbaar, - degene die ik heb gekozen heet Bluetooth Terminal HC-05 - het is een uitstekende app!

Nadat u de HC-05 aan een telefoon of tablet hebt gekoppeld, gebeurt het volgende.

Wanneer de arduino wordt gereset, leest het programma alle berichten die zijn opgeslagen in de EEPROM en geeft deze weer op de telefoon / tablet - zie afbeelding.

De weergegeven informatie is de geheugenlocatie (0-9), de lengte van het bericht en het bericht zelf op elke locatie.

Ik regelde de code om een bericht van maximaal 90 tekens op te slaan op adres 5 voor Msg 0, 105 voor Msg 1 …….905 voor Msg 9.

Adres 0, 100 …. 900 bevatten de berichtlengte.

Het laatst opgeslagen / opgehaalde bericht wordt weergegeven.

Het verzenden van iets naar de Arduino via BT vervangt het huidige bericht.

Om het weergegeven bericht op te slaan (gebruik "~" tilde), stuur ~0 om op te slaan op locatie 0, ~5 om op te slaan op locatie 5 enz.

Om een opgeslagen bericht op te halen en weer te geven, gebruikt u "^" (karaat), bijv. ^3 zal het bericht laden en weergeven op geheugenlocatie 3.

Wanneer een bericht wordt opgeslagen of opgehaald, wordt de huidige geheugenlocatie opgeslagen op EEPROM-adres 1023 - dit wordt gebruikt bij het opstarten om het laatst weergegeven bericht weer te geven.

Stap 4: De code en kracht

Zoals gewoonlijk is mijn code netjes als een tienerkamer, maar ik heb daar veel opmerkingen!

Er kan wat overbodige code zijn, want er was een beetje vallen en opstaan.

De weergaveroutine zal weergeven wat er in de array msg staat. Het lettertype is niet compleet, dus het weergeven van enkele tekens zal onvoorspelbare resultaten opleveren!

Als iemand me zou kunnen vertellen hoe ik het $-teken voor het £-teken kan wijzigen of beter nog kan toevoegen, dan zou ik u zeer dankbaar zijn

Het kan nodig zijn om een bericht hard te coderen naar locatie 0 om een startpunt te geven, dit kan worden overschreven wanneer het programma actief is!

bijv

EEPROM.schrijven (0, '5'); // lengte van het bericht opgeslagen op locatie 0

EEPROM.schrijven (5, 'L'); //msg opgeslagen op locatie 05EEPROM.write (6, 'o');

EEPROM.write(7, 'c');

EEPROM.schrijven (8, ' ');

EEPROM.write(9, '0');

Als er geen berichten zijn opgeslagen, is het display bij het opstarten onvoorspelbaar en geeft de telefoon / tablet vreemde maar consistente informatie weer, omdat, zoals bij de meeste EEPROM's, de standaardgegevens op elke locatie FF Hex (225 decimaal) zijn.

Dit prototype is gebouwd met behulp van een Arduino Uno, maar ik zal een pro mini gebruiken voor het voltooide project.

Ik ben van plan om 3 x 1.5v batterijen te gebruiken, dus om stroom te besparen zal ik de HC-05 uitschakelen na het selecteren van een bericht. Alleen het loskoppelen/opnieuw aansluiten van de stroom is niet goed genoeg, omdat het vervormde informatie naar het scherm zal sturen.

Het lijkt nodig om de TR & RX-pinnen te isoleren voordat u de stroom aansluit / loskoppelt!

Stap 5: Update 2020 - 2 X 4 (8x8) Matrix-displays

Na een beter begrip van de MAX7219 is het me gelukt om 2 displays aan elkaar te koppelen!

er waren slechts een paar regels code die veranderd moesten worden - zie bijgevoegde ino.

Aanbevolen: