how to build a lcd screen free sample
- In this video, we will build a simple display screen. Since I was listening to myself carefully in the prior videos, I will start by using the strategy of making a curve, looking for command line options that will help out, and then leveraging existing work whenever possible. Before we build the display screen let"s take a look at a bad example, which is always fun. So I"m going to turn on this layer down here at the bottom. Now here we"ve got a LCD display screen. You might notice it looks a little bit odd. Typically they"re not flush in consoles like this. Also we"ve got some very sharp edges so no fielding whatsoever. So again, just keep this in mind as an example of what not to do. Turn that back off. We"re going to go over here. So let"s build our first curve. I think it might be easier to do this in another viewport here because this is going to appear on the front face. So I"m going to switch from perspective to front view, double-clicking on the label to zoom in. I"d like to…
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
Looking to take your project to the next level in terms of functionality and appearance? A custom LCD display might be the thing that gets you there, at least compared to the dot-matrix or seven-segment displays that anyone and their uncle can buy from the usual sources for pennies. But how does one create such a thing, and what are the costs involved? As is so often the case these days, it’s simpler and cheaper than you think, and [Dave Jones] has a great primer on designing and specifying custom LCDs.
The video below is part of an ongoing series; a previous video covered the design process, turning the design into a spec, and choosing a manufacturer; another discussed the manufacturer’s design document approval and developing a test plan for the module. This one shows the testing plan in action on the insanely cheap modules – [Dave] was able to have a small run of five modules made up for only $138, which included $33 shipping. The display is for a custom power supply and has over 200 segments, including four numeric sections, a clock display, a bar graph, and custom icons for volts, amps, millijoules, and watt-hours. It’s a big piece of glass and the quality is remarkable for the price. It’s not perfect – [Dave] noted a group of segments on the same common lines that were a bit dimmer than the rest, but was able to work around it by tweaking the supply voltage a bit.
We’re amazed at how low the barrier to entry into custom electronics has become, and even if you don’t need a custom LCD, at these prices it’s tempting to order one just because you can. Of course, you can also build your own LCD display completely from scratch too.
In this tutorial, I’ll explain how to set up an LCD on an Arduino and show you all the different ways you can program it. I’ll show you how to print text, scroll text, make custom characters, blink text, and position text. They’re great for any project that outputs data, and they can make your project a lot more interesting and interactive.
The display I’m using is a 16×2 LCD display that I bought for about $5. You may be wondering why it’s called a 16×2 LCD. The part 16×2 means that the LCD has 2 lines, and can display 16 characters per line. Therefore, a 16×2 LCD screen can display up to 32 characters at once. It is possible to display more than 32 characters with scrolling though.
The code in this article is written for LCD’s that use the standard Hitachi HD44780 driver. If your LCD has 16 pins, then it probably has the Hitachi HD44780 driver. These displays can be wired in either 4 bit mode or 8 bit mode. Wiring the LCD in 4 bit mode is usually preferred since it uses four less wires than 8 bit mode. In practice, there isn’t a noticeable difference in performance between the two modes. In this tutorial, I’ll connect the LCD in 4 bit mode.
BONUS: I made a quick start guide for this tutorial that you can download and go back to later if you can’t set this up right now. It covers all of the steps, diagrams, and code you need to get started.
The 3-in-1 Smart Car and IOT Learning Kit from SunFounder has everything you need to learn how to master the Arduino. It includes all of the parts, wiring diagrams, code, and step-by-step instructions for 58 different robotics and internet of things projects that are super fun to build!
Here’s a diagram of the pins on the LCD I’m using. The connections from each pin to the Arduino will be the same, but your pins might be arranged differently on the LCD. Be sure to check the datasheet or look for labels on your particular LCD:
Also, you might need to solder a 16 pin header to your LCD before connecting it to a breadboard. Follow the diagram below to wire the LCD to your Arduino:
The resistor in the diagram above sets the backlight brightness. A typical value is 220 Ohms, but other values will work too. Smaller resistors will make the backlight brighter.
All of the code below uses the LiquidCrystal library that comes pre-installed with the Arduino IDE. A library is a set of functions that can be easily added to a program in an abbreviated format.
In order to use a library, it needs be included in the program. Line 1 in the code below does this with the command #include
Now we’re ready to get into the programming! I’ll go over more interesting things you can do in a moment, but for now lets just run a simple test program. This program will print “hello, world!” to the screen. Enter this code into the Arduino IDE and upload it to the board:
There are 19 different functions in the LiquidCrystal library available for us to use. These functions do things like change the position of the text, move text across the screen, or make the display turn on or off. What follows is a short description of each function, and how to use it in a program.
TheLiquidCrystal() function sets the pins the Arduino uses to connect to the LCD. You can use any of the Arduino’s digital pins to control the LCD. Just put the Arduino pin numbers inside the parentheses in this order:
This function sets the dimensions of the LCD. It needs to be placed before any other LiquidCrystal function in the void setup() section of the program. The number of rows and columns are specified as lcd.begin(columns, rows). For a 16×2 LCD, you would use lcd.begin(16, 2), and for a 20×4 LCD you would use lcd.begin(20, 4).
This function clears any text or data already displayed on the LCD. If you use lcd.clear() with lcd.print() and the delay() function in the void loop() section, you can make a simple blinking text program:
This function places the cursor in the upper left hand corner of the screen, and prints any subsequent text from that position. For example, this code replaces the first three letters of “hello world!” with X’s:
Similar, but more useful than lcd.home() is lcd.setCursor(). This function places the cursor (and any printed text) at any position on the screen. It can be used in the void setup() or void loop() section of your program.
The cursor position is defined with lcd.setCursor(column, row). The column and row coordinates start from zero (0-15 and 0-1 respectively). For example, using lcd.setCursor(2, 1) in the void setup() section of the “hello, world!” program above prints “hello, world!” to the lower line and shifts it to the right two spaces:
You can use this function to write different types of data to the LCD, for example the reading from a temperature sensor, or the coordinates from a GPS module. You can also use it to print custom characters that you create yourself (more on this below). Use lcd.write() in the void setup() or void loop() section of your program.
The function lcd.noCursor() turns the cursor off. lcd.cursor() and lcd.noCursor() can be used together in the void loop() section to make a blinking cursor similar to what you see in many text input fields:
Cursors can be placed anywhere on the screen with the lcd.setCursor() function. This code places a blinking cursor directly below the exclamation point in “hello, world!”:
This function creates a block style cursor that blinks on and off at approximately 500 milliseconds per cycle. Use it in the void loop() section. The function lcd.noBlink() disables the blinking block cursor.
This function turns on any text or cursors that have been printed to the LCD screen. The function lcd.noDisplay() turns off any text or cursors printed to the LCD, without clearing it from the LCD’s memory.
These two functions can be used together in the void loop() section to create a blinking text effect. This code will make the “hello, world!” text blink on and off:
This function takes anything printed to the LCD and moves it to the left. It should be used in the void loop() section with a delay command following it. The function will move the text 40 spaces to the left before it loops back to the first character. This code moves the “hello, world!” text to the left, at a rate of one second per character:
This function takes a string of text and scrolls it from right to left in increments of the character count of the string. For example, if you have a string of text that is 3 characters long, it will shift the text 3 spaces to the left with each step:
Like the lcd.scrollDisplay() functions, the text can be up to 40 characters in length before repeating. At first glance, this function seems less useful than the lcd.scrollDisplay() functions, but it can be very useful for creating animations with custom characters.
lcd.noAutoscroll() turns the lcd.autoscroll() function off. Use this function before or after lcd.autoscroll() in the void loop() section to create sequences of scrolling text or animations.
This function sets the direction that text is printed to the screen. The default mode is from left to right using the command lcd.leftToRight(), but you may find some cases where it’s useful to output text in the reverse direction:
This code prints the “hello, world!” text as “!dlrow ,olleh”. Unless you specify the placement of the cursor with lcd.setCursor(), the text will print from the (0, 1) position and only the first character of the string will be visible.
This command allows you to create your own custom characters. Each character of a 16×2 LCD has a 5 pixel width and an 8 pixel height. Up to 8 different custom characters can be defined in a single program. To design your own characters, you’ll need to make a binary matrix of your custom character from an LCD character generator or map it yourself. This code creates a degree symbol (°):
If you found this article useful, subscribe via email to get notified when we publish of new posts! And as always, if you are having trouble with anything, just leave a comment and I’ll try to help you out.
In this Arduino tutorial we will learn how to connect and use an LCD (Liquid Crystal Display)with Arduino. LCD displays like these are very popular and broadly used in many electronics projects because they are great for displaying simple information, like sensors data, while being very affordable.
You can watch the following video or read the written tutorial below. It includes everything you need to know about using an LCD character display with Arduino, such as, LCD pinout, wiring diagram and several example codes.
An LCD character display is a unique type of display that can only output individual ASCII characters with fixed size. Using these individual characters then we can form a text.
If we take a closer look at the display we can notice that there are small rectangular areas composed of 5×8 pixels grid. Each pixel can light up individually, and so we can generate characters within each grid.
The number of the rectangular areas define the size of the LCD. The most popular LCD is the 16×2 LCD, which has two rows with 16 rectangular areas or characters. Of course, there are other sizes like 16×1, 16×4, 20×4 and so on, but they all work on the same principle. Also, these LCDs can have different background and text color.
It has 16 pins and the first one from left to right is the Groundpin. The second pin is the VCCwhich we connect the 5 volts pin on the Arduino Board. Next is the Vo pin on which we can attach a potentiometer for controlling the contrast of the display.
Next, The RSpin or register select pin is used for selecting whether we will send commands or data to the LCD. For example if the RS pin is set on low state or zero volts, then we are sending commands to the LCD like: set the cursor to a specific location, clear the display, turn off the display and so on. And when RS pin is set on High state or 5 volts we are sending data or characters to the LCD.
Next comes the R/W pin which selects the mode whether we will read or write to the LCD. Here the write mode is obvious and it is used for writing or sending commands and data to the LCD. The read mode is used by the LCD itself when executing the program which we don’t have a need to discuss about it in this tutorial.
Next is the E pin which enables the writing to the registers, or the next 8 data pins from D0 to D7. So through this pins we are sending the 8 bits data when we are writing to the registers or for example if we want to see the latter uppercase A on the display we will send 0100 0001 to the registers according to the ASCII table. The last two pins A and K, or anode and cathode are for the LED back light.
After all we don’t have to worry much about how the LCD works, as the Liquid Crystal Library takes care for almost everything. From the Arduino’s official website you can find and see the functions of the library which enable easy use of the LCD. We can use the Library in 4 or 8 bit mode. In this tutorial we will use it in 4 bit mode, or we will just use 4 of the 8 data pins.
We will use just 6 digital input pins from the Arduino Board. The LCD’s registers from D4 to D7 will be connected to Arduino’s digital pins from 4 to 7. The Enable pin will be connected to pin number 2 and the RS pin will be connected to pin number 1. The R/W pin will be connected to Ground and theVo pin will be connected to the potentiometer middle pin.
We can adjust the contrast of the LCD by adjusting the voltage input at the Vo pin. We are using a potentiometer because in that way we can easily fine tune the contrast, by adjusting input voltage from 0 to 5V.
Yes, in case we don’t have a potentiometer, we can still adjust the LCD contrast by using a voltage divider made out of two resistors. Using the voltage divider we need to set the voltage value between 0 and 5V in order to get a good contrast on the display. I found that voltage of around 1V worked worked great for my LCD. I used 1K and 220 ohm resistor to get a good contrast.
There’s also another way of adjusting the LCD contrast, and that’s by supplying a PWM signal from the Arduino to the Vo pin of the LCD. We can connect the Vo pin to any Arduino PWM capable pin, and in the setup section, we can use the following line of code:
It will generate PWM signal at pin D11, with value of 100 out of 255, which translated into voltage from 0 to 5V, it will be around 2V input at the Vo LCD pin.
Here’s a simple code through which we can explain the working principle of the Liquid Crystal library. This is the code of the first example from the video:
First thing we need to do is it insert the Liquid Crystal Library. We can do that like this: Sketch > Include Library > Liquid Crystal. Then we have to create an LC object. The parameters of this object should be the numbers of the Digital Input pins of the Arduino Board respectively to the LCD’s pins as follow: (RS, Enable, D4, D5, D6, D7). In the setup we have to initialize the interface to the LCD and specify the dimensions of the display using the begin()function.
The cursor() function is used for displaying underscore cursor and the noCursor() function for turning off. Using the clear() function we can clear the LCD screen.
In case we have a text with length greater than 16 characters, we can scroll the text using the scrollDisplayLeft() orscrollDisplayRight() function from the LiquidCrystal library.
We can choose whether the text will scroll left or right, using the scrollDisplayLeft() orscrollDisplayRight() functions. With the delay() function we can set the scrolling speed.
The first parameter in this function is a number between 0 and 7, or we have to reserve one of the 8 supported custom characters. The second parameter is the name of the array of bytes.
So, we have covered pretty much everything we need to know about using an LCD with Arduino. These LCD Character displays are really handy for displaying information for many electronics project. In the examples above I used 16×2 LCD, but the same working principle applies for any other size of these character displays.
I hope you enjoyed this tutorial and learned something new. Feel free to ask any question in the comments section below and don’t forget to check out my full collection of 30+ Arduino Projects.
We come across Liquid Crystal Display (LCD) displays everywhere around us. Computers, calculators, television sets, mobile phones, and digital watches use some kind of display to display the time.
An LCD screen is an electronic display module that uses liquid crystal to produce a visible image. The 16×2 LCD display is a very basic module commonly used in DIYs and circuits. The 16×2 translates a display of 16 characters per line in 2 such lines. In this LCD, each character is displayed in a 5×7 pixel matrix.
Contrast adjustment; the best way is to use a variable resistor such as a potentiometer. The output of the potentiometer is connected to this pin. Rotate the potentiometer knob forward and backward to adjust the LCD contrast.
Sends data to data pins when a high to low pulse is given; Extra voltage push is required to execute the instruction and EN(enable) signal is used for this purpose. Usually, we set en=0, when we want to execute the instruction we make it high en=1 for some milliseconds. After this we again make it ground that is, en=0.
A 16X2 LCD has two registers, namely, command and data. The register select is used to switch from one register to other. RS=0 for the command register, whereas RS=1 for the data register.
Command Register: The command register stores the command instructions given to the LCD. A command is an instruction given to an LCD to do a predefined task. Examples like:
Data Register: The data register stores the data to be displayed on the LCD. The data is the ASCII value of the character to be displayed on the LCD. When we send data to LCD, it goes to the data register and is processed there. When RS=1, the data register is selected.
Generating custom characters on LCD is not very hard. It requires knowledge about the custom-generated random access memory (CG-RAM) of the LCD and the LCD chip controller. Most LCDs contain a Hitachi HD4478 controller.
CG-RAM is the main component in making custom characters. It stores the custom characters once declared in the code. CG-RAM size is 64 bytes providing the option of creating eight characters at a time. Each character is eight bytes in size.
CG-RAM address starts from 0x40 (Hexadecimal) or 64 in decimal. We can generate custom characters at these addresses. Once we generate our characters at these addresses, we can print them by just sending commands to the LCD. Character addresses and printing commands are below.
LCD modules are very important in many Arduino-based embedded system designs to improve the user interface of the system. Interfacing with Arduino gives the programmer more freedom to customize the code easily. Any cost-effective Arduino board, a 16X2 character LCD display, jumper wires, and a breadboard are sufficient enough to build the circuit. The interfacing of Arduino to LCD display is below.
The combination of an LCD and Arduino yields several projects, the most simple one being LCD to display the LED brightness. All we need for this circuit is an LCD, Arduino, breadboard, a resistor, potentiometer, LED, and some jumper cables. The circuit connections are below.
Adding a display to your Arduino can serve many purposes. Since a common use for microcontrollers is reading data from sensors, a display allows you to see this data in real-time without needing to use the serial monitor within the Arduino IDE. It also allows you to give your projects a personal touch with text, images, or even interactivity through a touch screen.
Transparent Organic Light Emitting Diode (TOLED) is a type of LED that, as you can guess, has a transparent screen. It builds on the now common OLED screens found in smartphones and TVs, but with a transparent display, offers up some new possibilities for Arduino screens.
Take for example this brilliant project that makes use of TOLED displays. By stacking 10 transparent OLED screens in parallel, creator Sean Hodgins has converted a handful of 2D screens into a solid-state volumetric display. This kind of display creates an image that has 3-dimensional depth, taking us one step closer to the neon, holographic screens we imagine in the future.
Crystalfontz has a tiny monochrome (light blue) 1.51" TOLED that has 128x56 pixels. As the technology is more recent than the following displays in this list, the cost is higher too. One of these screens can be purchased for around $26, but for certain applications, it might just be worth it.
The liquid crystal display (LCD) is the most common display to find in DIY projects and home appliances alike. This is no surprise as they are simple to operate, low-powered, and incredibly cheap.
This type of display can vary in design. Some are larger, with more character spaces and rows; some come with a backlight. Most attach directly to the board through 8 or 12 connections to the Arduino pins, making them incompatible with boards with fewer pins available. In this instance, buy a screen with an I2C adapter, allowing control using only four pins.
Available for only a few dollars (or as little as a couple of dollars on AliExpress with included I2C adapter), these simple displays can be used to give real-time feedback to any project.
The screens are capable of a large variety of preset characters which cover most use cases in a variety of languages. You can control your LCD using the Liquid Crystal Library provided by Arduino. The display() and noDisplay() methods write to the LCD, as shown in the official tutorial on the Arduino website.
Are you looking for something simple to display numbers and a few basic characters? Maybe you are looking for something with that old-school arcade feel? A seven-segment display might suit your needs.
These simple boards are made up of 7 LEDs (8 if you include the dot), and work much like normal LEDs with a common Anode or Cathode connection. This allows them to take one connection to V+ (or GND for common cathode) and be controlled from the pins of your Arduino. By combining these pins in code, you can create numbers and several letters, along with more abstract designs—anything you can dream up using the segments available!
Next on our list is the 5110 display, also affectionately known as the Nokia display due to its wide use in the beloved and nigh indestructible Nokia 3310.
These tiny LCD screens are monochrome and have a screen size of 84 x 48 pixels, but don"t let that fool you. Coming in at around $2 on AliExpress, these displays are incredibly cheap and usually come with a backlight as standard.
Depending on which library you use, the screen can display multiple lines of text in various fonts. It"s also capable of displaying images, and there is free software designed to help get your creations on screen. While the refresh rate is too slow for detailed animations, these screens are hardy enough to be included in long-term, always-on projects.
For a step up in resolution and functionality, an OLED display might be what you are looking for. At first glance, these screens look similar to the 5110 screens, but they are a significant upgrade. The standard 0.96" screens are 128 x 64 monochrome, and come with a backlight as standard.
They connect to your Arduino using I2C, meaning that alongside the V+ and GND pins, only two further pins are required to communicate with the screen. With various sizes and full color options available, these displays are incredibly versatile.
For a project to get you started with OLED displays, our Electronic D20 build will teach you everything you need to know -- and you"ll end up with the ultimate geeky digital dice for your gaming sessions!
These displays can be used in the same way as the others we have mentioned so far, but their refresh rate allows for much more ambitious projects. The basic monochrome screen is available on Amazon.
Thin-film-transistor liquid-crystal displays (TFT LCDs) are in many ways another step up in quality when it comes to options for adding a screen to your Arduino. Available with or without touchscreen functionality, they also add the ability to load bitmap files from an on-board microSD card slot.
Arduino have an official guide for setting up their non-touchscreen TFT LCD screen. For a video tutorial teaching you the basics of setting up the touchscreen version, YouTuber educ8s.tv has you covered:
With the touchscreen editions of these screens costing less than $10 on AliExpress, these displays are another great choice for when you need a nice-looking display for your project.
Looking for something a little different? An E-paper (or E-ink depending on who you ask) display might be right for you. These screens differ from the others giving a much more natural reading experience, it is no surprise that this technology is the cornerstone of almost every e-reader available.
The reason these displays look so good is down to the way they function. Each "pixel" contains charged particles between two electrodes. By switching the charge of each electrode, you can influence the negatively charged black particles to swap places with the positively charged white particles.
This is what gives e-paper such a natural feel. As a bonus, once the ink is moved to its location, it uses no power to keep it there. This makes these displays naturally low-power to operate.
This article has covered most options available for Arduino displays, though there are definitely more weird and wonderful ways to add feedback to your DIY devices.
Now that you have an idea of what is out there, why not incorporate a screen into your DIY smart home setup? If retro gaming is more your thing, why not create some retro games on Arduino?
Dr Pan: Hello, Greg. VA is the abbreviation for Vertical Alignment. VA LCD is a negative and transmissive display with LED backlight. The background color is pure black. VA LCD technology is the only way for monochrome LCD screen to make the pure black background. The color of the letters is the color of LED backlight (usually white). If we want to display multi-color, some special color films will be added to the bottom of ITO glass.
Normally, if the view angle is 12 o’clock, it can be seen very clearly in 12 o’clock direction, 3 o’clock direction, 9 o’clock direction and the front side.
The maximum COM is 16, so it is not suitable for the large dot matrix and complicated displays. It is a perfect display for the pure black background high end devices.
About: I"m a High Voltage Electrical Engineer by trade, but I"ve been involved in computers and electronics since my teens. My experience and knowledge ranges from the world of 5V DC up to the world of 132,000V AC. …
I"ve been working on a project that used a 16x2 LCD display and wanted a nice finish that also allowed me to seal against water and other liquids. I also needed impact resistance, low cost and the ability to be changed easily if worn or broken.
2) A small piece of perspex over a cut hole in the enclosure. Cheaper but not so nice finish, showing the full LCD through and any rough enclosure cutting.
3) Looking for access to a laser cutter to make a profiled perspex window that sits through the enclosure hole to sit flush with surface. Difficult tolerances and no depth control with a laser.
So, eventually I tried something else and ended up with what I think is a nice professional finish that is easy to do, cheap, and results in an iPhone type black glass frame style, with a clear window exactly the right size to show the display properly. It can also be easily adapted to any other type or size of display.
Since I"ve been getting more proficient with CADSoft Eagle, I simply used a blank BRD file with mm grid to create my drawing and print at scale on to some card.
I took the original dimensions of the 16x2 LCD display I had and drew it up, including the stand-off holes. I then added an additional 5mm surround to give my bezel additional strength around the fixing holes, and also to make it look better since the holes wouldn"t be right on the edge.
A fine tip permanent pen like a Sharpie or Write-4-All works well on the acrylic. I used 1.5mm clear acrylic sheet for a glass-like finish. You could use different colour acrylic or thicker/thinner to suit your requirements.
For the 16x2 LCD the display area is approx 15mm x 65mm. I made my window 14mm x 64mm so there is a slight overlap to the display so no edges can be seen.
To do this we simply want a piece of tape stuck to this area so that it does not get painted. I used electrical insulation tape as it cuts and peels easily and leaves no residue.
Use a sharp knife to score lightly along the inside edges of the window area. Pay careful attention to meeting up in the corners so that our tape has a continuous rectangular cut.
Remove the template and then peel the outer area of tape away and this will leave a nice clean cut 14mm x 64mm piece where our display will eventually show through.
These correspond exactly to the stand-off holes in the LCD PCB. This means we can use a single metal or plastic bolt to mount both our bezel and the LCD when finished.
NOTE : Always drill a pilot hole first. This means you can be more accurate with positioning, and also means you don"t make a large hole in the template.
Lay the piece on top of a scrap piece of timber. I used a bit of 1/4" ply. I also put a piece of the protective film underneath to stop the acrylic picking up any dust and fibres as much as possible.
Remove the template and then re-drill with the correct sized drill bit. I used a 3.5mm bit to give me a slight play to offset any error due to manual drilling.
Make sure the piece is always flat, with the timber behind, and that you drill SLOWLY. This will ensure an accurate drill with minimum of swarf, rough edges and chances of cracking.
We now want to spray paint the area that will be the bezel outer border. Choose your colour for this, although I used black and found it produced a lovely black glass type finish.
Use some of the insulation tape doubled back on itself to act as double sided tape and mount the acrylic piece to some backing paper or card. The masking tape applied already should be FACE UP.
Mounting the piece is to make sure it doesn"t get blown around by the force of the spray can, as we don"t want overspray onto the other side of the acrylic.
EDIT: On making one for a 64x128 1.8" TFT display it occurred to me that we can simply mask the back side of the acrylic completely. This ensures 100% that you don"t get any overspray on what will become the top face. When everything is dry just peel off the masking on the other side too.
Take the piece into a well ventilated area before spraying. Outdoors is best, or a garage with open door. The paint has quite an odour until fully dry.
Apply a generous coating of spray paint from a distance of 15-25cm minimum. DO light coats and repeat as necessary. Take care to also paint the acrylic edges if you want this, although these will appear coloured anyway.
Once you have an edge then slowly peel the tape away from the acrylic and you will be left with a nice sharp and clean edge between painted and non-painted area.
You now have clear acrylic top face with a painted underside. The top is nice and shiny and the coloured finish cannot be marked or worn away as it will be face down on your enclosure.
You can now mount the bezel to your enclosure, using the mounting holes and some 3mm bolts. The same bolts can be used to mount the LCD behind. I found 3mm x 20mm bolts are ideal. You can also use nylon ones that are used for PCB stand-offs.
If you need weather/water proofing then simply apply a thin layer of sealant under the black border outside of the stand-off hole line. When this dries in place it will form a watertight seal that can"t be seen.
This is the first instructable I have made so please take a moment to leave feedback on anything you think could be improved, or if this helped you in any way.
Awesome idea! I"m just starting on an Arduino based chess timer project with a small VFD display and a couple of those big "arcade" style microswitch buttons for my son and was thinking about how to make a decent looking hole / bezel for the display. Your instructable solved my problem elegantly! Thanks and thumbs up for you!
P.S. An easy way to cut plastic sheet is to use a metal ruler / straight edge. Apply a piece of double sided tape to it. Then mark the sheet where it is to be cut and stick the ruler to the sheet, aligned with the marks. The area you WANT should be under the ruler and the "scrap" area exposed.
Then use a new, sharp razor blade or X-acto knife and score a line into the plastic. Make at least 10 to 15 passes, half one direction and half the other. Press firmly down, but not TOO hard. While still stuck to the ruler, carefully bend the free part of the plastic sheet and bend it AWAY from the score line.
The sheet will snap with a perfect, clean edge that needs no finishing! Gloves and safety glasses are a good idea when doing this. I"ve cut myself a few times when the sheet snapped and nicked the palm of my hand.
This is similar to cutting glass. You create a stress concentration point and the sheet breaks at that point. Maybe I should make an Instructable of the technique! LOL!0
The types of flathead countersunk hex head bolts in the attached picture are great for such projects, especially the black bolts. I"ve used them a lot for such panels and also for mounting black items like IEC mains input sockets. They provide a fantastic finish, you just have to be careful and precise with your countersinking. Available on eBay from various sources. I use the M3 type most often but other sizes are available. I"d avoid pan-heads of a different colour on the outside as they don"t look nearly as professional as the countersunk flatheads. If you don"t want to countersink then use the button head ones, they look much nicer than the pan heads.
I"ve used the milled edge rebate technique in the past to produce a flush finish and it works great ... IF you can get someone to do the milling for you. I was lucky, I did. You don"t NEED a CNC machine but a plain old milling machine IS required for a really good accurate finish. If you have a decent pillar drill, you can use a simple cross feed milling table to do the milling with your drill. eBay has a great one for under £50 that I"m planning on getting.
However, you CAN achieve the effect by taking advantage of the ability of true perspex to be acetone welded invisibly and you build the total from the top piece that fits exactly into the cutout hole (very accurate cutting, filing and trimming is needed. Then before black painting the reverse, acetone weld a complete piece over the top piece like a layer cake. the second layer is larger than the first so provides the rebate step. It"s tricky but can be very successful. You can then black mask the rear as before.
Another trick is to use stand-offs behind the front panel, bolted to the front panel via countersunk holes at the front with the relevant bolts, then mount the operstional display etc to the stand-offs. The front bezel can then be applied OVER the countersunk bolts using double-sided adhesive or using a silicone bead as it should never need to come off again. I am using this process currently for a frequency meter display.
Nice design. How did you get round the paint being peeling off when you remove the tape? I"d have thought you"d need to score exactly on the edge of the tape before you remove it!0
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.