Üdv Mindenkinek!
Van egy 16x32 RGB LED matrixom , amit már UNO-val sketch-el tökéletesen működött .
Most a több soros porti vétel miatt Megával szeretném megoldani , de csak villog össze-vissza
A matrixpanel.cpp- alapján definiáltam hogy Megarol van szó . A lábakat átírtam a komment szerint , de az R1.....G2 lábakkal nem tudon bit kezdeni , pedig a MEGA ezen lábai nem használhatók itt , a megjegyzés szerint.
Tud valaki segíteni hogy konkrétan mit hova kössek , mert guglin nem találom Megához..
Ímé a kód eleje , ennek önmagában is ki kellene írni hogy ME-MAK:
// For 16x32 RGB LED matrix:
// http://www.adafruit.com/products/420
//********ÁTKÜTNI a LATCHET A3ról D12-re!!!! *********
// Written by Limor Fried/Ladyada & Phil Burgess/PaintYourDragon
// for Adafruit Industries.
// BSD license, all text above must be included in any redistribution.
#include <Adafruit_GFX.h> // Core graphics library
#include <RGBmatrixPanel.h> // Hardware-specific library
#define __AVR_ATmega2560__ //itt definiáltam hogy megáról van szó a matrixpanel.cpp-ben ********
//-----------------------------------------------------------------
// definiálom a kijelző lábakat P10 16*32 1/8 SCAN RATE !!!!
//--------------------------------------------------------------
#define CLK 11 //11 // MUST be on PORTB! (Use pin 11 on Mega)/volt unon is******
#define LAT 24 //12 volt unon****
#define OE 25 //9 volt unon******
#define A A5 //
#define B A1 // ezeket békén hagytam az analogokat*********
#define C A2
RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);
//boolean le=1;
//boolean fel=1;
int kiir0=0;
int kiir10=0;
int kiir20=0;
int kezd=1;
int tol1=0;
int tol2=0;
int tol3=0;
unsigned long time; // a belső millis számlálónak
unsigned long oldtime;
//boolean ugrik;
void setup() {
pinMode (52,OUTPUT);// ez lesz a LATCH A3 helyett !!!!!
pinMode (11,OUTPUT);
pinMode (13,INPUT);
pinMode (50,OUTPUT);
pinMode(A0,INPUT);
pinMode(A4,INPUT);
pinMode(A3,INPUT);
// digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
Serial.begin(115200);
Serial3.begin(115200);
Serial2.begin(115200);
pinMode(8,INPUT); //MODE bemenet
//digitalWrite(11,HIGH);
pinMode(10,OUTPUT); //hang komenet
digitalWrite(8,HIGH); // felhuzo ellenall bekapcs
matrix.begin();
matrix.fillScreen(matrix.Color333(0, 0, 0));
// draw some text!
matrix.setCursor(1, 0); // start at top left, with one pixel of spacing
matrix.setTextSize(1); // size 1 == 8 pixels high Csak 1 vagy 2 lehet !!!!!
// print each letter with a rainbow color
matrix.setTextColor(matrix.Color333(7,0,7));
matrix.print("ME-");
matrix.setTextColor(matrix.Color333(0,0,7));
matrix.setCursor(1, 9);
matrix.print(" -MAK");
delay(2000);
// fill the screen with 'black'
matrix.fillScreen(matrix.Color333(0, 0, 0));
matrix.setTextColor(matrix.Color333(7,0,0));
oldtime = millis();
// whew!
}
void loop() {
Köszi
Ernoe
16x32 RGB LED matrix + Arduini MEGA
Re: 16x32 RGB LED matrix + Arduini MEGA
Közben megtaláltam az Adafruiton a teljes áthuzalozást ...
MŰXIK ))
Bocsi - Kösz
Ernoe
MŰXIK ))
Bocsi - Kösz
Ernoe
Re: 16x32 RGB LED matrix + Arduini MEGA
Adafruiton a teljes cikk - ebből a Mega bekötés:
https://learn.adafruit.com/32x16-32x32- ... mper-wires
Konfigurálás:
https://learn.adafruit.com/32x16-32x32- ... ample-code
Könyvtárak:
https://learn.adafruit.com/32x16-32x32- ... /downloads
Bekötés összefoglaló cikk:
http://www.instructables.com/id/Arduino ... /?ALLSTEPS
https://learn.adafruit.com/32x16-32x32- ... mper-wires
Konfigurálás:
https://learn.adafruit.com/32x16-32x32- ... ample-code
Könyvtárak:
https://learn.adafruit.com/32x16-32x32- ... /downloads
Bekötés összefoglaló cikk:
http://www.instructables.com/id/Arduino ... /?ALLSTEPS
http://www.tavir.hu - a gazda
Re: 16x32 RGB LED matrix + Arduini MEGA
Még egy kérdésem lenne :
Az egyik Arduinoról küldök ki egy double változót tizedes nélkül
Serial.println(dfreq,0);
Ez eddig ok. Az Uno saját serial monitorján nézve maga a szám jelenik meg - azt kuldi ki.
Ezt venném egy MEGA egyik soros portján :
if (Serial2.available()){
kiir0 = Serial2.read();
}
Serial.write(kiir0);
Itt már hülyeségek jelennek meg : leginkább az első szám ASCII kódja , meg az enter ASCII kódja.
Hogy lehetne elérni hogy a kiir0 változó ugyanúgy normál decimális vagy esetleg string tipusu valós érték legyen ??
Köszi
Az egyik Arduinoról küldök ki egy double változót tizedes nélkül
Serial.println(dfreq,0);
Ez eddig ok. Az Uno saját serial monitorján nézve maga a szám jelenik meg - azt kuldi ki.
Ezt venném egy MEGA egyik soros portján :
if (Serial2.available()){
kiir0 = Serial2.read();
}
Serial.write(kiir0);
Itt már hülyeségek jelennek meg : leginkább az első szám ASCII kódja , meg az enter ASCII kódja.
Hogy lehetne elérni hogy a kiir0 változó ugyanúgy normál decimális vagy esetleg string tipusu valós érték legyen ??
Köszi
Re: 16x32 RGB LED matrix + Arduini MEGA
Szia Robi!
Most már valamennyire működik az alábbi kódrészlettel a vétel, rendesen elküldi a kiir rutinnak :
**********************************************************************************************
char buff;
String elsoszam;
void loop() {
while (Serial2.available() > 0) {
buff = Serial2.read(); // Egyszerre egy karaktert olvas
if (buff != 13 || buff != 10){
//A sorvégi karakterek elvetése
elsoszam += buff; //Itt fűzzük össze a karakterláncot a karakterek hozzáadásával
delay(5); // Várunk 5 ms-t, hogy biztos beérjen a következő bájt
}
Serial2.flush();
}
Serial.println(elsoszam);
delay(400);
kiir0=elsoszam.toInt();
Serial.println(kiir0);
kiir();
elsoszam="";
}
*********************************************************************************
Csak nagyon kényes a 400 msec időzítésre , ha leveszem 300ra már hol0-t ír , hol a rendes értéket.
Ha kiíratom vele a soros0 portján monitorra az értékeket akkor egy void loop lefutásakor kiírja többször is a kiir0 -t.
Minél nagyobb a delay annál többször
És még most jön a java : két különböző adatot akarok venni sorban , úgyhogy jöhetnek a szeparátorok , string kaszabolások.
De amig ez nem stabil , neki sem merek kezdeni
Üdv
Most már valamennyire működik az alábbi kódrészlettel a vétel, rendesen elküldi a kiir rutinnak :
**********************************************************************************************
char buff;
String elsoszam;
void loop() {
while (Serial2.available() > 0) {
buff = Serial2.read(); // Egyszerre egy karaktert olvas
if (buff != 13 || buff != 10){
//A sorvégi karakterek elvetése
elsoszam += buff; //Itt fűzzük össze a karakterláncot a karakterek hozzáadásával
delay(5); // Várunk 5 ms-t, hogy biztos beérjen a következő bájt
}
Serial2.flush();
}
Serial.println(elsoszam);
delay(400);
kiir0=elsoszam.toInt();
Serial.println(kiir0);
kiir();
elsoszam="";
}
*********************************************************************************
Csak nagyon kényes a 400 msec időzítésre , ha leveszem 300ra már hol0-t ír , hol a rendes értéket.
Ha kiíratom vele a soros0 portján monitorra az értékeket akkor egy void loop lefutásakor kiírja többször is a kiir0 -t.
Minél nagyobb a delay annál többször
És még most jön a java : két különböző adatot akarok venni sorban , úgyhogy jöhetnek a szeparátorok , string kaszabolások.
De amig ez nem stabil , neki sem merek kezdeni
Üdv
Re: 16x32 RGB LED matrix + Arduini MEGA
Serial.write (ertek); - az ertek ASCII kodjat irja ki
Serial.print(ertek); - az ertek-et írja ki decimálisan.
Ha ertek = 34; - 1.eset: B (B = ASCII 0x34); második eset: 34-et ír ki
Serial.print(ertek); - az ertek-et írja ki decimálisan.
Ha ertek = 34; - 1.eset: B (B = ASCII 0x34); második eset: 34-et ír ki
http://www.tavir.hu - a gazda
Re: 16x32 RGB LED matrix + Arduini MEGA
Köszi , ez ok.
Serial.println - el kuldom a kuldo oldalon , es konvertalas is ok. Csak ezzel a varakozassal nem tudok mit kezdeni (300-400 msec) , hogy ez miert kell.
Ja és a serial.flush csak az output buffert torli ?
Holnap elkezdek a serial.readString-el is jatszani...
Sajnos lázasodok es igy még a szokasosnal is lassubb a gondolatmenetem...
Udv
Ernoe
Serial.println - el kuldom a kuldo oldalon , es konvertalas is ok. Csak ezzel a varakozassal nem tudok mit kezdeni (300-400 msec) , hogy ez miert kell.
Ja és a serial.flush csak az output buffert torli ?
Holnap elkezdek a serial.readString-el is jatszani...
Sajnos lázasodok es igy még a szokasosnal is lassubb a gondolatmenetem...
Udv
Ernoe