Loop/stop van de MAX7219 Dot Matrix -proberen te doorgronden
4 berichten
• Pagina 1 van 1
Loop/stop van de MAX7219 Dot Matrix -proberen te doorgronden
Hoi allemaal,
Ik maak even een sub draadje van dit onderwerp (http://www.arduinoforum.nl/viewtopic.php?f=33&t=3413) omdat op zich daar alles draait maar ik specifiek 1 deel niet in orde krijg en vooral probeer te begrijpen (in mensentaal) hoe ik het moet doorgronden.
Het gaat specifiek over de functie
De hele specificatie van deze library vond ik hier : https://github.com/nickgammon/MAX7219_Dot_Matrix/blob/master/src/MAX7219_Dot_Matrix.cpp
Eerlijkheid gebiedt me te zeggen dat de code om de tekst te laten bewegen een copy is van projectjes gevonden op internet.
Concreet zijn er twee stukken code die van belang zijn :
Deze code roept de updateDisplay functie aan.
Helaas weet ik niet goed hoe de functie er rond te interpreteren.
Het volgende stuk is de aanroep van de sendSmooth :
Concreet werkt mijn programma : Ik kies een waarde, deze wordt als decodedMsg naar de updateDisplay gestuurd en blijft daar continue over de LEDmatrix scrollen.
Volgens mij heb ik al loops en floats gezet op zowat alle plaatsen maar lukt het me niet mijn twee problemen op te lossen :
1. Ik wil dat de boodschap die ik stuur MAX 3 keer (volledig) over het scherm scrollt.
2. Als ik de boodschap stuur, moet het scherm eerst leeg gemaakt worden en dan pas de volgende boodschap schrijven.
Voor item 1: het lukt me nergens met een loop om dit max 3 keer te laten gebeuren. Ik had nu gedacht te werken met een float variabele die dit kan oplossen maar die zorgt er nu voor dat de boodschap niet meer scrollt.
Voor item 2: als nu een tekst loopt en ik klik op de knop, dan verandert de tekst op de plaats waar hij op dat moment is. Ik zou echter willen dat de bestaande tekst tenminste tot het einde scrollt, dan even het scherm leeg blijft en dan pas de nieuwe boodschap wordt getoond.
Is er iemand die me wat meer kan helpen om een oplossing te vinden ?
Alvast vriendelijk bedankt,
Davy
Ik maak even een sub draadje van dit onderwerp (http://www.arduinoforum.nl/viewtopic.php?f=33&t=3413) omdat op zich daar alles draait maar ik specifiek 1 deel niet in orde krijg en vooral probeer te begrijpen (in mensentaal) hoe ik het moet doorgronden.
Het gaat specifiek over de functie
- Code: Alles selecteren
void MAX7219_Dot_Matrix::sendSmooth (const char * s, const int pixel)
De hele specificatie van deze library vond ik hier : https://github.com/nickgammon/MAX7219_Dot_Matrix/blob/master/src/MAX7219_Dot_Matrix.cpp
Eerlijkheid gebiedt me te zeggen dat de code om de tekst te laten bewegen een copy is van projectjes gevonden op internet.
Concreet zijn er twee stukken code die van belang zijn :
- Code: Alles selecteren
void loop() {
server.handleClient();
if (millis () - lastMoved >= MOVE_INTERVAL) {
updateDisplay (decodedMsg);
lastMoved = millis ();
}
delay(1);
}
Deze code roept de updateDisplay functie aan.
Helaas weet ik niet goed hoe de functie er rond te interpreteren.
Het volgende stuk is de aanroep van de sendSmooth :
- Code: Alles selecteren
void updateDisplay (String m) {
String str = "This is my string";
int str_len = m.length() + 1;
char char_array[str_len];
m.toCharArray(char_array, str_len);
display.sendSmooth (char_array, messageOffset); //Display commands for the Matrix
if (messageOffset++ >= (int) (strlen (char_array) * 8))
messageOffset = - chips * 8;
}
Concreet werkt mijn programma : Ik kies een waarde, deze wordt als decodedMsg naar de updateDisplay gestuurd en blijft daar continue over de LEDmatrix scrollen.
Volgens mij heb ik al loops en floats gezet op zowat alle plaatsen maar lukt het me niet mijn twee problemen op te lossen :
1. Ik wil dat de boodschap die ik stuur MAX 3 keer (volledig) over het scherm scrollt.
2. Als ik de boodschap stuur, moet het scherm eerst leeg gemaakt worden en dan pas de volgende boodschap schrijven.
Voor item 1: het lukt me nergens met een loop om dit max 3 keer te laten gebeuren. Ik had nu gedacht te werken met een float variabele die dit kan oplossen maar die zorgt er nu voor dat de boodschap niet meer scrollt.
Voor item 2: als nu een tekst loopt en ik klik op de knop, dan verandert de tekst op de plaats waar hij op dat moment is. Ik zou echter willen dat de bestaande tekst tenminste tot het einde scrollt, dan even het scherm leeg blijft en dan pas de nieuwe boodschap wordt getoond.
Is er iemand die me wat meer kan helpen om een oplossing te vinden ?
Alvast vriendelijk bedankt,
Davy
Advertisement
Re: Loop/stop van de MAX7219 Dot Matrix -proberen te doorgro
item 1 kun je in deloop dus zien dat als de message is veranderd er een teller naar 1 moet springen
als die teller nog geen 4 is dan na een tijdje dus weer updaten.
voor item2 maak je een busy flag aan dus je doet een update en gelijk zet je de busy flag aan.
aan het einde van je array kun je die busy flag uitzetten.
als die teller nog geen 4 is dan na een tijdje dus weer updaten.
voor item2 maak je een busy flag aan dus je doet een update en gelijk zet je de busy flag aan.
aan het einde van je array kun je die busy flag uitzetten.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Loop/stop van de MAX7219 Dot Matrix -proberen te doorgro
Paul,
heel erg bedankt voor de tijd die je stak in een antwoordje.
Hetgeen je beschrijft is helemaal correct, maar het lukt me niet om dit aan het werken te krijgen. Ik heb echt vanalles geprobeerd, dus eventueel een stukje code meegeven ter hulp zou me enorm veel verder helpen.
Hoe kan ik zien in de loop dat de message veranderd is? En waar moet ik dan juist de teller plaatsen? Ik had reeds tellers geplaatst, maar deze gaven telkens een heel bizar resultaat.
Ook die "busy flag" had ik al eens geprobeerd, maar ook die krijg ik niet op de juiste plaats.
Dus een stukje code zou handig zijn...
Mvg,
Davy
heel erg bedankt voor de tijd die je stak in een antwoordje.
Hetgeen je beschrijft is helemaal correct, maar het lukt me niet om dit aan het werken te krijgen. Ik heb echt vanalles geprobeerd, dus eventueel een stukje code meegeven ter hulp zou me enorm veel verder helpen.
Hoe kan ik zien in de loop dat de message veranderd is? En waar moet ik dan juist de teller plaatsen? Ik had reeds tellers geplaatst, maar deze gaven telkens een heel bizar resultaat.
Ook die "busy flag" had ik al eens geprobeerd, maar ook die krijg ik niet op de juiste plaats.
Dus een stukje code zou handig zijn...
Mvg,
Davy
Re: Loop/stop van de MAX7219 Dot Matrix -proberen te doorgro
Hoi iedereen,
in het draadje waaruit dit groeide heb ik ondertussen de werkende code gezet.
Bedankt voor iedereen die met me mee dacht.
Mvg,
Davy
in het draadje waaruit dit groeide heb ik ondertussen de werkende code gezet.
Bedankt voor iedereen die met me mee dacht.
Mvg,
Davy
4 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten