top of page
westchedepong1977

Arduino and Serial Graphic LCD 128x64: A Powerful Combination for Stepper Motor Control



Hi, This is my first question on here but not my first arduino project, but definitely my most ambitious!I am making an Avengers themed bed for my son with a sliding door driven my a stepper motor. A keypad to enter a password on and an oled screen to display some images and also text.


Oliver, I have a completed Menu in Arduino LCD code for a stepper motor controller of a Woodshop Jig. I recently decided that the menu screen needs to be bigger than two rows! I purchased a 4 row LCD. What I received was a ST7920; which I have successfully connected and am rewriting the LCD code using the u8g.lib for the serial connected controller on the module.(LCD12864)....The selection is shown and the wiring I'm using for UNO r3. are all in the code. My problem with the current rendition is I have several debugging activities to complete or I can use the M2tk.lib and rewrite the code once more, after learning the new library, or I can continue debugging and fix the existing. I'd like your opinion on what I should do?




serial graphic lcd 128x64 arduino code for stepper



So, as a conclusion:Unless you have some specific questions to u8glib graphics procedures, i probably can not help you with your existing code.If you consider to use M2tklib, here are some arguments for using m2tklib:


Oliver, I thank you for the use of the ug8.lib I have completed the code for the menu I needed, and I am testing the stepper motor input. There are still a couple of minor button glitches.One, is there a reason the pins are held high for a low button input vs the opposite?Two, I get a blank at the end of the draw string loop on every menu???? Here's the code....


Before the module can be used, the default setting has to be changed. You can connect to and modify the BT JY-MCU module settings via the Arduino mega 2560 using the pin 10 and pin 9 as Rx and Tx terminals, respectively. Make sure you connect Rx on the BT module to the Tx on the arduino and vice versa, in other words Rx goes to Tx and vice versa. Upload the simple code to arduino located on an instructable entitled "Success-Using-the-JY-MCU-linvor-Bluetooth-Module". Use the serial monitor within arduino IDE or another terminal program, with baudrate set to 9600 and 'No Line Ending' selected, enter the following commands:


In the picture you can see the back side of our graphic display. You can see that there are 20 pins used for power supplying the display, communication, adjusting contrast, and background LED lighting. But, there is another very important thing on it, which is not visible at first, and that is the selection between the parallel and serial communication. Namely, this display (more precisely, the chip, i.e. display controller) supports serial SPI communication and parallel communication. About the controller a bit later in the tutorial.


Some displays have the choice of parallel and serial communication on the connector itself (PSB Pin). In that case, it is not necessary to switch the previously mentioned pads. In case of serial communication, RS pin is actually CS (Chip select), RW is DIN (Data in or MOSI with the SPI communication), and E as SCK (Serial Clock), pins DB0 and DB7 are not used. If you want simplicity and each used pin is important, and you can risk a bit slower display, we recommend using serial communication (SPI), but if you want to connect something else besides the display to the SPI, we advise you to use display in the parallel mode (it is not that the display will not work, but some modules do not like to share SPI with another module, so you should bear that in mind). There are three more pins left to explain, and those are RST, VOUT and V0. RST pin is the pin that restarts the whole display to its initial state. Some libraries use this pin to initialize (i.e. restart) the display itself during the initialization of the library. If a library (or even some Arduino code) does not require that pin, it is necessary to connect it to the voltage power supply (+5VDC) in order for the display to be in a normal mode ready to receive commands and data. V0 pin determines the desired contrast, but the adjusting itself is a bit different than the one of 16x2 display. With it, we have connected the variable resistor between V0 and mass (GND). In this case, the variable resistor is connected between V0 and VOUT because for adjusting the contrast on this display we need a negative voltage, which can be generated by that same display. Some displays already have a built-in SMD trimmer for that purposes, so in that case, we do not need to connect any resistor between V0 and VOUT, only adjust the small SMD trimmer that will adjust the LCD's contrast.


As we have already said, we will use two operation modes, parallel and serial communication. In order to make writing of the code easier, we will use libraries (one is ST7920 GFX Library which is based on the well-known Adafruit GFX Library (check the instructions for Adafruit GFX library here), only for now it does not support parallel communication, and the other is U8G library which supports both serial and parallel communication, but is somewhat more complicated to handle). If you do not know how to install libraries, we advise you to check our tutorial about it.


First we will deal with the ST7920 GFX Library, so open Arduino IDE, then FIle->Examples->ST7920_GFX_Library->ST7920_graphic_test and upload the code to Croduino. If everything is fine, the display will show the test program for display. If that does not happen, check the connections.


If you have a Full Graphic Display Controller (DOT Matrix 128x64) connected to your RAMPS you must remove the both '//' in front of the DEFINE around line 1910. So this part in the source code should look like the following lines show. But you must keep in mind, that you have to add the u8glib to your Arduino environment (see Preconditions!).


The display Driver uses the popular SSD1306 chipset which is well catered for with example code on the internet for many microcontrollers. A fully featured Arduino library is available for download below (based on the Sparkfun Microview code) with graphics drawing functions and several font sizes. The example code for the similar Adafruit displays also works.


This is a framed graphical LCD 128x64 with LED backlight. This unit is a very clear STN type LCD with a simple command interface. This new module includes the negative voltage circuitry on board!Utilizes the extremely common KS0108B parallel interface chipset (datasheet). Interface code is freely available. Includes LED Backlight.


An interrupt-based GPS library for no-parsing-required use This is the Adafruit GPS library - the ultimate GPS library for the ultimate GPS module! Tested and works great with the Adafruit Ultimate GPS module using MTK33x9 chipset ------> These modules use TTL serial to communicate, 2 pins are required to interface Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! Written by Limor Fried/Ladyada for Adafruit Industries. BSD license, check license.txt for more information All text above must be included in any redistribution


aJson is an Arduino library to enable JSON processing with Arduino. It easily enables you to decode, create, manipulate and encode JSON directly from and to data structures. -matter.org/2010/08/ajson-handle-json-with-arduino/


Arduino Buffered Serial -buffered-serial/ -- This project includes Arduino libraries to perform buffered, interrupt driven, serial communication with a host application (Processing example included). This provides significant benefit over the good-old Serial.println("some ascii") method both as it has more efficient storage of numerical data as integers, longs, bytes or floats rather than ascii coded strings, as well as being interrupt driven so that it doesn't block the operation of the device.


This is a library for sending and receiving DMX codes using the Arduino plattform or a ATmega (ATmega168, ATmega328 or similar) processor with a clock speed of 16 MHz. The library avoids timming issues on the low level protocol that typically exist when using software implementations by using the internal serial communication hardware of the chips. Therefore it is very uncritical to add you specific DMX effects on top of this communication library. DMX sending and DMX receiving are both supported by this library. You can find a brief description of using the details of the serial hardware registers in this article.


This LCD module uses a 128x64 liquid crystal display that support Chinese character , English characters and even graphics. It can exhibit 4 lines and 12 English characters/6 Chinese characters per line. It is suitable for interactive work with Arduino. 2ff7e9595c


1 view0 comments

Recent Posts

See All

Comments


bottom of page