-
Notifications
You must be signed in to change notification settings - Fork 316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Solved: Having a problem display SD text file onto LCD using u8glib #498
Comments
Solved! I had text defined as a string in my previous code, all i had to do was change it to be a char and do u8g.print(text) or Didnt even need the buffer after all New code /* U8GLIB_ST7920_128X64_1X u8g(6, 5, 9); // u8 #include <SPI.h> //sd const int chipSelect = 4; //sd File dataFile; Serial.begin(9600); Serial.print("Initializing SD card..."); // see if the card is present and can be initialized: // open the file. note that only one file can be open at a time, // if the file is available, write to it:
} } void loop() {// loop is all u8 char buf[50]; Serial.print(i); } void Draw(){ char buf[50];
*/ |
This is the closest I have come in the last few days to accessing an SD card and my LCD. Outstanding everyone! I am using a UNO and am a little pin challenged at the moment in that I don't have enough spare pins to build a second SPI. I tried this with "U8GLIB_ST7920_128X64_1X u8g(13,11, 9,8);" in an attempt to use the same SPI SCK and MOSI as the SD card rather than make a complete second port. It doesn't work. Does this mean that SPI is a port rather than a bus. Do I have to build a new SPI port for each device? If so I think I will have to chuck my display and go for an i2c device. Anyone seen an SD card reader that uses the i2c bus? I suppose my real question is... Is it possible to use a shared SPI bus with SD devices and a u8g LCD? I have tried using setHardwareBackup but it has no effect. I still get nothing on my LCD. I did note that the example in the user reference does use a second SPI "U8GLIB_DOGM128 u8g(7, 5, 1, 2);" Would it work if I bought a SD card device to use this (7,5,1,2) SPI port? (I am also financially challenged in that I can't go off buying bits of hardware that don't work eg a128x64 LCD display that doesn't play with other devices on the standard SPI interface. Having said that, it looks like I can skip a walk to the cafe and buy an SD device for a dollar or two if I wait two months for the slow boat from China). Noting that pin one is used for serial comms and may be problematic. |
Ahhhhh... tried it with "U8GLIB_ST7920_128X64_1X u8g(9,8);" and it looks like it is working. Pulling head in. |
Please note that I do not support u8glib any more. U8g2 is the more recent version. |
Hello, i seem to be having a problem displaying a sample text file onto my lcd screen. I have the reprap Fullgraphics smart controller.
The lcd is a 128 x 64
It also has an sd card.
It took awhile but eventually I got the lcd working and the sd card working at the same time. As in, I can read the text file and see it on the serial com, and also upload a graphic to the lcd. The problem i face is that i cant display the contents of the text file on the lcd. Its a simple 5 letter text file (You Yo). When i try to display the characters of the text file, I get the acsii numbers. I want to be able to display the characters, You Yo, which are in the text file, onto my lcd. Any help would be greatly appreciated
My code:
#include "U8glib.h" // u8
U8GLIB_ST7920_128X64_1X u8g(6, 5, 9); // u8
#include <SPI.h> //sd
#include <SD.h> //sd
const int chipSelect = 4; //sd
int i = 0;
File dataFile;
String text;
int text1 = 1;
void setup() {// setup is all sd
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.print("Initializing SD card...");
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
while (1);
}
Serial.println("card initialized.");
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("test.txt");
// if the file is available, write to it:
if (dataFile) {
}
// if the file isn't open, pop up an error:
else {
Serial.println("error opening datalog.txt");
}
}
void loop() {// loop is all u8
u8g.firstPage();
do {
Draw();
} while( u8g.nextPage() );
delay(200);
text1++;
}
void Draw(){
u8g.setFont(u8g_font_gdr25r);
//u8g.drawStr(8, 30, "Eeee");
char buf[50];
sprintf(buf, "%d", text);
u8g.setPrintPos(40,60);
u8g.print(buf);
//u8g.drawStr(0, 20, );
//u8g.drawStr(40, 20, buf);
u8g.drawStr(0, 60, "JP");
The text was updated successfully, but these errors were encountered: