Hur du använder Nokia 5110 LCD med Arduino? (2 / 3 steg)
Steg 2: Koderna
Det finns några filer nedan.
text.txt filen har fått hela koder för Arduino IDE
nokia_5110.fzz fil är för Fritzing projekt Nokia 5110 LCD bibliotek
Graphics.c filen fungerar med test.ino fil
test.ino filen är inklusive koderna. Glöm inte att hålla nära Graphics.c fil tillsammans på samma mapp.
test.rar har fått både test.ino och Graphics.c filer tillsammans i en fil.
Även är här koderna:
LCD5110_Graph_Demo
Copyright (C) 2015 Rinky-Dink elektronik, Henning Karlsen. Alla rättigheter reserverade
Web: http://www.RinkyDinkElectronics.com/
//
Detta program är en demo av de flesta funktioner
i biblioteket.
//
Detta program kräver en Nokia 5110 LCD modul.
//
Det antas att LCD-modulen är ansluten till
följande stiften med en levelshifter för att få den
rätt spänning till modulen.
SCK - stift 8
MOSI - Pin 9
DC - stift 10
RST - stift 11
CS - Pin 12
//
#include
LCD5110 myGLCD(8,9,10,11,12);
extern uint8_t SmallFont [];
extern uint8_t arduino_logo [];
extern unsigned char TinyFont [];
extern uint8_t The_End [];
extern uint8_t pacman1 [];
extern uint8_t pacman2 [];
extern uint8_t pacman3 [];
extern uint8_t piller [];
float y;
uint8_t * bm;
int pacy;
void setup()
{
myGLCD.InitLCD();
myGLCD.setFont(SmallFont);
randomSeed(analogRead(7));
}
void loop()
{
myGLCD.clrScr();
myGLCD.drawBitmap (0, 0, arduino_logo, 84, 48);
myGLCD.update();
Delay(2000);
myGLCD.clrScr();
myGLCD.print ("LCD5110_Graph", CENTER, 0);
myGLCD.print ("DEMO", CENTER, 20);
myGLCD.drawRect (28 18, 56, 28);
för (int jag = 0; jag < 6; i ++)
{
myGLCD.drawLine (57, 18+(i*2), 83-(i*3), 18+(i*2));
myGLCD.drawLine((i*3), 28-(i*2), 28, 28-(i*2));
}
myGLCD.setFont(TinyFont);
myGLCD.print ("(C) 2015 av", CENTER, 36);
myGLCD.print ("Henning Karlsen", CENTER, 42);
myGLCD.update();
Delay(5000);
myGLCD.clrScr();
för (int jag = 0; jag < 48; i += 2).
{
myGLCD.drawLine (0, i, 83, 47-i);
myGLCD.update();
}
för (int jag = 83; jag > = 0; i-= 2).
{
myGLCD.drawLine (i, 0, 83-i, 47);
myGLCD.update();
}
Delay(2000);
myGLCD.clrScr();
myGLCD.drawRect (0, 0, 83, 47);
för (int jag = 0; jag < 48; i += 4)
{
myGLCD.drawLine (0, jag, jag * 1,75, 47);
myGLCD.update();
}
för (int jag = 0; jag < 48; i += 4)
{
myGLCD.drawLine (83, 47-i, 83-(i*1.75), 0);
myGLCD.update();
}
Delay(2000);
myGLCD.clrScr();
för (int jag = 0; jag < 8; i ++)
{
myGLCD.drawRoundRect (i * 3, i * 3, 83-(i*3), 47-(i*3));
myGLCD.update();
}
Delay(2000);
myGLCD.clrScr();
för (int jag = 0; jag < 17; i ++)
{
myGLCD.drawCircle (41, 23, i * 3);
myGLCD.update();
}
Delay(2000);
myGLCD.clrScr();
myGLCD.drawRect (0, 0, 83, 47);
myGLCD.drawLine (0, 23, 84, 23);
myGLCD.drawLine (41, 0, 41, 47);
för (int c = 0; c < 4; c ++)
{
för (int jag = 0; jag < 84; i ++)
{
y = jag * 0.017453292519943295769236907684886;
myGLCD.invPixel (i, (sin(y*6)*20)+23);
myGLCD.update();
Delay(20);
}
}
Delay(2000);
för (int pc = 0; pc < 3; pc ++)
{
Pacy = random (0, 28);
för (int jag =-20; i < 84; i ++)
{
myGLCD.clrScr();
för (int p = 4; p > ((i+20)/20); p--)
myGLCD.drawBitmap (p * 20-8, pacy + 7, piller, 5, 5);
Switch(((i+20)/3) % 4)
{
fall 0: bm = pacman1;
bryta;
fall 1: bm = pacman2;
bryta;
fall 2: bm = pacman3;
bryta;
fall 3: bm = pacman2;
bryta;
}
myGLCD.drawBitmap (i, pacy, bm, 20, 20);
myGLCD.update();
Delay(25);
}
}
för (int jag = 0; jag < 25; i ++)
{
myGLCD.clrScr();
myGLCD.drawBitmap (0, i-24, The_End, 84, 24);
myGLCD.update();
Delay(100);
}
myGLCD.setFont(SmallFont);
myGLCD.print ("Runtime (ms):", CENTER, 32);
myGLCD.printNumI(millis(), CENTER, 40);
myGLCD.update();
för (int jag = 0; jag < 5; i ++)
{
myGLCD.invert(true);
Delay(1000);
myGLCD.invert(false);
Delay(1000);
}
}