Ozeki Display Module
The Ozeki Display Module is a modified Arduino Nano, that was built to accept LCD display and keypad connections. This is an open source board, with all the files needed for manufacturing. You may also freely modify the design.
The Ozeki Display Module contains an ATmega328P microcontroller so you can program it just like an Arduino Nano using the Arduino IDE environment. It has a micro USB port, which is compatible with mobile phone USB cables. It was designed to make it easy to use the LCD display and keypad. It also has standard mounting holes for M2 screws. The supported LCD is the HD44780 and the supported capacitive touch keypad controller is the MPR121. The MPR121 is capable to control 12 touch sensitive buttons. The 5V LCD screen voltage is provided directly through the USB port but the 3.3V for the keypad controller (MPR121) is converted from the 5V USB voltage. The LCD has it's own protocol with a 4 datapin communication. While the MPR121 uses I2C which is also accepted by the Ozeki Display Module.
Download files for manufacturing
|
Datasheets
Tutorials
Examples
|
Specifications:
- IC: ATmega328P
- Clock Speed: 16 MHz
- Flash Memory: 32 KB
- SRAM: 2 KB
- EEPROM: 1 KB
- USB support provided by a CH340G USB to serial chip:
- Micro USB (compatible with mobile phone USB cables)
- Connection to the Ozeki HUB Controller
- Power supply from USB (5V, 100mA)
- 500mA resettable fuse
- Status LEDs: power, TX, RX, D13
- Supported devices:
- LCD display (5V): HD44780
(LCD backlight can be set with D3 pin) - Keypad (3.3V): MPR121 Capacitive Touch Keypad
(Capable to sensor 12 buttons.)
- LCD display (5V): HD44780
- Can be screwed on an Ozeki Matrix Board
- Product dimensions:
2.40in.[60.96mm]×0.80in.[20.32mm]
Pinout of the Ozeki Display Module:
The pinout for LCD:
HD44780 | GND | Supply Voltage | V0 | RS | RW | E | D4 | D5 | D6 | D7 | Backlight (+,-) |
Ozeki Display Module | GND | 5V | - | D6 | D7 | D8 | D9 | D10 | D11 | D12 | D3 |
The pinout for the keypad (I2C):
MPR121 | Supply Voltage | IRQ | SCL | SDA | GND |
Ozeki Display Module | 3.3V | D2 (int0) | SCL | SDA | GND |
The pinout of the LCD display:
The Backlight(+) pin is connected to the D3 pin of the Ozeki Display Module, so you can turn on and off the backlight by the code. The D0, D1, D2, D3 pins are not connected.
The pinout of the Capacitive Touch Keypad:
The capacitive touch sensor controller driven by an I2C interface. The chip can control up to twelve individual electrodes, as well as a simulated thirteenth electrode.
Wiring:
Connect the Capacitive Touch Keypad and the LCD display to the Ozeki Display Module as shown below. Before wiring the LCD screen and the Capacitive Touch Keypad to your Ozeki Display Module we suggest to solder a JST header strip to the following 12 pin count connector of the LCD screen and a 5 pin JST header strip the the Capacitive Touch Keypad, as you can see in the image above.
Program codes
For connecting a HD44780 LCD display
This code displays 'OZEKI ROBOTICS!' on a HD44780 LCD display. It is a 2x16 LCD crystal screen. First 'OZEKI ROBOTICS!' appears in the middle of the top row then it slowly moves from left to right periodically leaving 150 ms between every small movement.
Video 1 - Shifting the Ozeki Robotics sign. The video uses the code below.Downloadable code:
Example code for HD44780 LCD (.zip)#include <LiquidCrystal.h> LiquidCrystal lcd(6,7,8,9,10,11,12); void setup() { lcd.begin(16, 2); lcd.print("OZEKI ROBOTICS!"); pinMode(3,OUTPUT); digitalWrite(3,HIGH); //turns backlight on delay(1000); } void loop() { for (int positionCounter = 0; positionCounter < 13; positionCounter++) { lcd.scrollDisplayLeft(); delay(150); } for (int positionCounter = 0; positionCounter < 29; positionCounter++) { lcd.scrollDisplayRight(); delay(150); } for (int positionCounter = 0; positionCounter < 16; positionCounter++) { lcd.scrollDisplayLeft(); delay(150); } delay(150); }
Code for using an MPR121 touch sensor and a HD44780 LCD display
You can press 12 different buttons on the keypad. The code displays the button's number on the LCD. It also shows if the button has been pressed or released. These information are shown on the Serial too.
Video 2 - Displaying keypress, keyrelease information. The video is based on the code below.You need to download Adafruit_MPR121.h from the Arduino IDE.
Downloadable code:
Example code for LCD with keypad (.zip)#include <Wire.h> #include "Adafruit_MPR121.h" #include <LiquidCrystal.h> Adafruit_MPR121 cap = Adafruit_MPR121(); LiquidCrystal lcd(6,7,8,9,10,11,12); uint16_t lasttouched = 0; uint16_t currtouched = 0; void setup() { lcd.begin(16, 2); //2x16 LCD screen pinMode(3,OUTPUT); digitalWrite(3,HIGH); //turns backlight on lcd.print("OZEKI ROBOTICS!"); Serial.begin(115200); Serial.println("Adafruit MPR121 Capacitive Touch sensor test"); // Default address is 0x5A, if tied to 3.3V its 0x5B // If tied to SDA its 0x5C and if SCL then 0x5D if (!cap.begin(0x5A)) { Serial.println("MPR121 not found, check wiring?"); while (1); //check wiring and reboot } Serial.println("MPR121 found!"); } void loop() { lcd.setCursor(0, 1); currtouched = cap.touched(); for (uint8_t i=0; i<12; i++) { // if it *is* touched and *wasnt* touched before, alert! if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) { Serial.print(i); Serial.println(" touched "); lcd.setCursor(0, 1); lcd.print(i); lcd.print(" touched "); } // if it *was* touched and now it *isnt*, alert! if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) { Serial.print(i); Serial.println(" released "); lcd.setCursor(0, 1); lcd.print(i); lcd.print(" released "); } } // reset touched state lasttouched = currtouched; }
Other modules
All of the Ozeki Processing Modules have ATmega328P or ATmega2560 microcontrollers integrated. Ozeki Modules can be connected to eachother like pieces of blocks. The connection is provided through USB to each module. They have M2 screw holes to give you an option to screw them on an Ozeki Matrix Board.
AutoConnect Link
If Ozeki 10 is running on your computer (such as on a Raspberry Pi) and you have plugged a microcontroller to it than Ozeki can be set to find serial devices on windows/linux and place them into a connection list so you can interact and control them through the software GUI.