Ariduino Uno med matris

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Ariduino Uno med matris

Inlägg av Chaf »

Hej :D
Har en Ariduino UNU har kopplat med en matris 8*8 med max 7219 kit.
Byter bokstav ok men flaggan på 1an blir fel vänd. sen undrar jag om
det går att ha Å.Ö.Ä hittade koden nätet undrar vad som är fel på 1an.
M.v.h
Chaf


unsigned char i;
unsigned char j;
/*Port Definitions*/
int Max7219_pinCLK = 10;
int Max7219_pinCS = 9;
int Max7219_pinDIN = 8;

unsigned char disp1[38]∞={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
};



void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
digitalWrite(Max7219_pinCS,LOW);
for(i=8;i>=1;i--)
{
digitalWrite(Max7219_pinCLK,LOW);
digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
DATA = DATA<<1;
digitalWrite(Max7219_pinCLK,HIGH);
}
}


void Write_Max7219(unsigned char address,unsigned char dat)
{
digitalWrite(Max7219_pinCS,LOW);
Write_Max7219_byte(address); //address,code of LED
Write_Max7219_byte(dat); //data,figure on LED
digitalWrite(Max7219_pinCS,HIGH);
}

void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00); //decoding :BCD
Write_Max7219(0x0a, 0x03); //brightness
Write_Max7219(0x0b, 0x07); //scanlimitï¼›8 LEDs
Write_Max7219(0x0c, 0x01); //power-down mode:0,normal mode:1
Write_Max7219(0x0f, 0x00); //test display:1;EOT,display:0
}



void setup()
{

pinMode(Max7219_pinCLK,OUTPUT);
pinMode(Max7219_pinCS,OUTPUT);
pinMode(Max7219_pinDIN,OUTPUT);
delay(50);
Init_MAX7219();
}


void loop()
{
for(j=0;j<38;j++)
{
for(i=1;i<9;i++)
Write_Max7219(i,disp1[j][i-1]);
delay(500);
}
}
Zeela
Inlägg: 176
Blev medlem: 28 augusti 2008, 11:23:49
Ort: Åtvidaberg
Kontakt:

Re: Sv: Ariduino Uno med matris

Inlägg av Zeela »

Byt ut definitionen av "1" med:
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x10},//1
så borde du få en mer anstomiskt korrekt etta.
Chaf
Inlägg: 718
Blev medlem: 9 februari 2008, 11:05:31
Ort: Stockholm

Re: Ariduino Uno med matris

Inlägg av Chaf »

Hej :D
Tack fungerade vet du var man kan hitta koder för bokstäver & siffror.
Försökt med Google men inte hittat något ännu.
M.v.h
Chaf
Användarvisningsbild
Icecap
Inlägg: 26623
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Ariduino Uno med matris

Inlägg av Icecap »

"Normala" tecken på t.ex. LCD är i storleken 5x7 punkter med ett punkt i spacing. Tecken på ett jämt antal punkter i höjd blir fult.

Jag vill inte ens tänka på hur fult ett 8x8 tecken ser ut...
Sikmeister
Inlägg: 63
Blev medlem: 1 augusti 2010, 12:45:23

Re: Ariduino Uno med matris

Inlägg av Sikmeister »

8x8-tecken användes flitigt på C64-tiden. I praktiken är de flesta 7x7 för att de inte ska flyta ihop med tecknen brevid.

Sök på C64 character set. Jag hittade till exempel en enorm samling här: Character Sets

Filerna på den sidan är i binärformat med tecknen i ungefär det format du vill (dvs 8 bytes per tecken), men i en annan ordning. Dessutom börjar filerna med två bytes för startadress, som är ointressant i detta fall. Var beredd på att behöva skriva något enkelt program för att konvertera dem.
Användarvisningsbild
Icecap
Inlägg: 26623
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Ariduino Uno med matris

Inlägg av Icecap »

OK. Nu trodde jag att det rörde sig om LED-display med lika proportioner i X och Y, inte ett CRT-display med "klämda" tecken, alltså där X-riktningen är kortare än Y-riktningen per pixel.

Och då jag jobbar med just LED-display är standard för mig 5x7.
2013-08-08 12.20.45.jpg
Där har jag en tabell som är 5x7 (eg. 6x8 inkl. spacing) och proportionell också om jag vill (alltså att t.ex. '1' är smalare än '0' i antal bildpunkter) och den är "kraftigt inspirerat" av LCD displaytabeller.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Sikmeister
Inlägg: 63
Blev medlem: 1 augusti 2010, 12:45:23

Re: Ariduino Uno med matris

Inlägg av Sikmeister »

Nu förstår jag din kommentar. Du har nog rätt i att 8x8-tecken kommer att uppfattas som lite "knubbiga" jämfört med 5x7.

En ytterligare egenhet hos de C64-tecken jag länkade till ovan är att de är anpassade för TV-skärm, där enstaka pixlar i x-led lätt blir otydliga. Därför brukade man rita de flesta horisontella staplar två pixlar breda.
Användarvisningsbild
Icecap
Inlägg: 26623
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Ariduino Uno med matris

Inlägg av Icecap »

Det hela beror ju helt på avståndet mellan pixlarna. Om avståndet i Y är 1,00 och i x är 0,71 blir en 8x8 helt rätt ändå så den rätta tabell beror helt på vad TS har att jobba med, placering osv.
Skriv svar