Carrier Board for Arduino (Pro) Mini

With this board you will develop and produce your embedded product more easily and quickly. The ATE-101 Carrier Board is suitable for Arduino Mini, Arduino Pro Mini 5V and Arduino Pro Mini 3.3V. You can use all 8 analog inputs (2 more than a standard Arduino). It has plug-in connectors for I/O board, character LCD, keypad, joystick and 5-position switch. The Arduino can be programmed via USB FTDI or via ICSP. The 16×2 or 20×4 LCD has fixed or variable contrast and backlight control by Arduino. The Carrier Board can be expanded with I/O boards, like ATE-201 Relay Board and ATE-202 Input Board.

Specifications

  • 2 x 12 pin female header for Arduino Mini or Arduino Pro Mini
  • 2 x 2 pin female header for A4-A7 of Arduino Mini
  • 2 x 2 pin female header for A4-A7 of Arduino Pro Mini
  • 6 pin male header for USB FTDI adapter or cable
  • 2 x 3 pin male header for ICSP AVR programmer
  • 2 x 25 pin female header for I/O board
  • 16 pin female header for 16×2 or 20×4 Character LCD
  • 3 pin connector for optional contrast potmeter
  • 8 pin male connector for 4×3 or 4×4 membrane keypad
  • 11, 5, 4, 2 and 2 pin connector for joystick (Parallax/Sparkfun) or 5 position switch (Parallax)
  • Powered via USB or I/O board
  • Jumpers for Power (Vin/5V/3.3V), LCD Backlight and Auto Reset
  • Dimensions 5 x 8 cm (1.95×3.1”)
  • Open source hardware

Carrier Board Layout

Arduino Mini Assembly

The Arduino Mini (revision 04 or 05) should be mounted as follows.

If you want to use analog inputs A4 – A7, you need to solder two 2-pin male header connectors. You can us the 40-pin Break Away Header to get these two 2-pin connectors.

 

Arduino Pro Mini Assembly

To mount the Arduino Pro Mini 328 5V or Arduino Pro Mini 3.3V, you need to solder two 12-pin male header connectors.  With the latest version v13 (or higher) you can use analog inputs A4 – A7. In this case you need to solder also two 2-pin headers. You can us the 40-pin Break Away Header to get these header connectors.

   
   

Use of USB FTDI Adapter or Cable

The 6-pin header is to connect FTDI Basic Breakout 5V, FTDI Basic Breakout 3.3V, FTDI Cable 5V or FTDI Cable 3.3V. Use 5V version for Arduino Mini and Arduino Pro Mini 5V. Use 3.3V version for Arduino Pro Mini 3.3V. The Arduino is powered through this adapter/cable.
The FTDI adapter or cable should be oriented correctly. The ATE-101 board has indications GRN and BLK, same as one the FTDI Basic Breakout. With the FTDI Cable the green wire should be connected to the pin marked GRN and the black wire to the pin marked BLK.

Instead of this 6-pin header connector you may use an I/O board for programming or serial communication with the Arduino. The ATE-202 Input Board has also a 6-pin header connector for the FTDI adapter or cable.

You can program the Arduino (Pro) Mini with the Arduino development environment.

Before programming the Arduino make sure the Auto Reset jumper is placed (on pin 10-9). The required 100nF for reset of the Arduino Mini is already included on the board.

RS232 Interface

The serial interface of the Arduino can be used for RS232 communication with a computer. For RS232 a level shifter is required to adapt the TTL levels of the Arduino to RS232 levels. The diagram below shows how to connect the RS232 Shifter to the 6-pin FTDI header connector.

ICSP AVR Programming

Via the 6-pin ICSP connector you can program the ATmega328. For example to load a new bootloader, or to load a program without bootloader. You can use Atmel Studio and an AVR Programmer (e.g. AVR-ISP500, AVR-ISP-MK2, Pocket AVR Programmer). On the Carrier Board pin 1 of 6-pin ICSP connector is marked. The cable of the programmer should be connected as on the picture.

Character LCD

You can connect directly a 5V character LCD to the Carrier Board. You can use a 5V or a 3.3V Arduino to control the 5V LCD. To be able to connect LCD and Arduino to the right voltages, please check the jumpers.

The 16-pin female header can be used to connect a 16×2 or 20×4 HD44780 compatible LCD. If you solder a 16-pin male header connector on the LCD you can mount the LCD directly onto the Carrier Board. You can use the 40-pin Break Away Header to get these header connectors.

A standard 16×2 LCD has one place to mount the connector, which means the display will be on top of the Carrier Board. To prevent contact with the Arduino, it is recommended to use an extra 16-pin female header or 2 pieces 6-pin female headers (MPE Garry BL 10-006U).

You can use a M3 bolt and nuts to secure the LCD.

Be aware that by mounting a standard LCD on top of the Carrier Board, you cannot use the connectors for FTDI, ICSP, joystick and 5-position switch anymore.

If you want to place the LCD away from the Carrier Board you can use a flat cable, like for example 2 pieces of Jumper Wire 6-pin and 2 pieces 6-pin header connectors or 4 pieces 3-pin header long.

Matrix Orbital 16×2 LCD (MOP-AL162A) has two places where you can mount the connector. If you mount the connector below then you can mount it besides the Carrier Board.

Contrast and backlight

The contrast of the LCD is set to an optimal 0.5V. For most LCDs this gives the best contrast. If you want to adjust the contrast you can add a 10K potentiometer. The 3-pin connector is suitable for a trimpot.

To save power (for battery powered applications) the backlight can be switch off with output D13 of the Arduino. This is the same output as used for the led on the Arduino. To connect D13 with the LCD you need to place the LCD BL Cntl jumper (7-8). Without the jumper the backlight is always on.

Keypad

A 3×4 or 4×4 membrane keypad can be connected directly to CON7.

Below a programming example with 4 x 4 keypad. The keypad should be connected as on picture above.


/* Demonstrate the simplest use of the keypad library.
*
* You need to install the Keypad library first.
* How to install libraries see: http://arduino.cc/en/Guide/Libraries
* You can download the library at: http://playground.arduino.cc//Code/Keypad
*
* The next step is to connect your keypad to the
* Arduino using the pin numbers listed below in
* rowPins[] and colPins[]. If you want to use different
* pins then you can change the numbers below to
* match your setup.
* It is now set up for ATE-101 with Parallax #27899
* 4x4 Membrane Keypad. See manual of ATE-101 on how to connect
* the keypad at http://www.microcontroller.io/ate-101
* The character is shown on the serial monitor.
*/
#include

const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 2,3,4,5 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 6,7,8,9 };

// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

#define ledpin 13

void setup()
{
Serial.begin(9600);
}

void loop()
{
char key = kpd.getKey();
if(key != NO_KEY)
{
Serial.println(key);
}
}

The keypad can be used together with the LCD. Some pins of the keypad are connected to some pins of the LCD. This is no problem because at the time the keypad is scanned by Arduino, the inputs of the LCD are disabled.

Programming example for LCD with keypad from Matrix Orbital:


/*
Program for ATE-101 which demonstrate the combined use
of LCD and Keypad.

Keypad
Demonstrate the use of the keypad library.
The keypad is connected to the pin numbers listed below in
rowPins[] and colPins[]. The pressed keys are displayed
on the Serial Monitor and on the LCD.
It is set up for ATE-101 with Matrix Orbital
KPP4x4 Membrane Keypad. See manual of ATE-101 on how to connect
the keypad at http://www.microcontroller.io/ate-101

You need to install the Keypad library first.
How to install libraries see: http://arduino.cc/en/Guide/Libraries
You can download the library at: http://playground.arduino.cc//Code/Keypad

*/

int blcount;
int bl = 13; // LCD backlight control digital pin 13
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

#include <Keypad.h>

const byte ROWS = 4; // Four rows
const byte COLS = 4; // Four columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','4','7','+'},
{'2','5','8','0'},
{'3','6','9','-'},
{'A','B','C','D'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 2,5,4,3 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 6,7,8,9 };

// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup()
{
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Antratek ATE-101");
pinMode(bl, OUTPUT);
digitalWrite(bl, HIGH); // LCD backlight on
Serial.begin(9600);
}

void loop()
{
char key = kpd.getKey();
if(key != NO_KEY)
{
digitalWrite(bl, HIGH); // LCD backlight on
blcount=0;
Serial.println(key);
lcd.setCursor(0,1);
lcd.print(key);
}

delay(200);

blcount=blcount+1;
if (blcount>50)
{
digitalWrite(bl, LOW); //After 10 seconds LCD backlight switches off
blcount=0;
}

}

The keypad can also be used together the Parallax Joystick, but not with the 5-position switch or Sparkfun Joystick. See also the connection diagram.

5-Position Switch

The Parallax 5-Position Switch should be placed as on the picture. Make sure the orientation is correct. On the switch and on the board are indications GND and VCC.

You can use the switch together with the LCD, but not together with the keypad or joystick.

Programming example 5-position switch with LCD:


/*
ATE-101 with 2x16 LCD.
Demo program for 5-Position Switch from Parallax.
See http://learn.parallax.com/KickStart/27801
Direction of switch is on serial monitor and display.
LCD backlight on for 10 seconds after switch activation.
See also ATE-101 manual at http://www.microcontroller.io/ate-101
*/

#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int blcount;
int bl = 13; // LCD backlight control digital pin 13

void setup() {
Serial.begin(9600);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Antratek ATE-101");
lcd.setCursor(0,1);
lcd.print("Test");
pinMode(bl, OUTPUT);
digitalWrite(bl, HIGH); // LCD backlight on
blcount=0;
}

void loop() {
if(digitalRead(2) == LOW)
{
Serial.println("Left");
lcd.setCursor(0,1);
lcd.print("Left ");
digitalWrite(bl, HIGH);
blcount=0;
}
if(digitalRead(3)== LOW)
{
Serial.println("Down");
lcd.setCursor(0,1);
lcd.print("Down ");
digitalWrite(bl, HIGH);
blcount=0;
}
if(digitalRead(4) == LOW)
{
Serial.println("Right");
lcd.setCursor(0,1);
lcd.print("Right ");
digitalWrite(bl, HIGH);
blcount=0;
}
if(digitalRead(5) == LOW)
{
Serial.println("Up");
lcd.setCursor(0,1);
lcd.print("Up ");
digitalWrite(bl, HIGH);
blcount=0;
}
if(digitalRead(6) == LOW)
{
Serial.println("Center");
lcd.setCursor(0,1);
lcd.print("Center");
digitalWrite(bl, HIGH);
blcount=0;
}

delay(200);

blcount=blcount+1;
if (blcount>50)
{
digitalWrite(bl, LOW); //After 10 seconds LCD backlight switches off
blcount=0;
}

}

Joystick

With this Carrier Board you can use the Joystick from Parallax or from Sparkfun. The Parallax 2-Axis Joystick can be placed directly on the Carrier Board as in the picture. For the right orientation letters on the board should match the letters on the Joystick.

You can use the Parallax joystick together with LCD and keypad.

Programming example Parallax joystick with LCD:


/*
ATE-101 with LCD, demo program for 2-Axis Joystick from Parallax. 
Based on: http://learn.parallax.com/KickStart/27800
Value for up/down and left/right is displayed on serial monitor and LCD.
*/

#include 
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

int UD = 0;
int LR = 0;

void setup() {
  Serial.begin(9600);
  lcd.begin(16,2);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("ATE-101+Joystick");
}

void loop() {
  UD = analogRead(A0);
  LR = analogRead(A1);
  Serial.print("UD = ");
  Serial.print(UD, DEC);
  lcd.setCursor(0,1);
  lcd.print("UD=");
  lcd.print(UD);
  Serial.print(", LR = ");
  Serial.println(LR, DEC);
  lcd.setCursor(8,1);
  lcd.print("LR=");
  lcd.print(LR);
  lcd.print("  ");
  delay(500);
}

The Sparkfun Thumb Joystick need to be assembled first before you can place it on the Carrier Board. The Joystick need to be soldered on the Breakout. On the website of Sparkfun you can find the assembly instructions.

You can use the Thumb Joystick together with the LCD, but not with the keypad.

Power

If an FTDI adapter or cable is connected, the Arduino is powered via USB. Without FTDI the Arduino need te be powered via an I/O board. In this case jumper 5V (3-4) for a 5V Arduino or 3V3 (5-6) for a 3.3V Arduino need te be placed.

You can make use of the voltage regulator on the Arduino. With jumper Vin (1-2) you connect Vin from an I/O board to the regulator of the Arduino.

The output voltage can be connected with jumper (3-4) to 5V or with jumper (5-6) to 3.3V.

It is also possible to connect +5V from an I/O board to the regulator of a 3.3V Arduino with jumper (1-3).

The LCD is directly powered from +5V. If an I/O Board does not supply +5V, you need to use the Arduino to supply the 5V. Place jumper (3-4) to get 5V from the Arduino.

I/O Boards

On the 2×25 pin connector you can connect different I/O boards. In this blog I will describe a proto board (ATE-200), a relay board (ATE-201), an input board with FTDI/XBee connector (ATE-202) and an RS232 board with voltage regulator.

Examples of Arduino Carrier board with I/O board are USB Input Controller (ATE-501) and USB/RS232 Relay Controller (ATE-502).

With a back panel board (like the ATE-301) it is possible to connect more I/O boards with the Arduino Carrier board. Examples are the ATE-600 series I/O controllers with up to 16 inputs and up to 12 relays.

Enclosures

The Arduino Carrier Board is designed to fit in different enclosures. With one I/O board it is suitable for the Sparkfun Project Case (WIG-08601 or WIG-08632) and for the Hammond 1598B.

With LCD (MOP-AL162A) and I/O board the Arduino Carrier Board fits in Box Enclosures Part No. 101-42-9V.

Suitable enclosures for Arduino Carrier Board with multiple I/O boards are Hammond 1598E and Elbag MR6/HMX.

Connection diagram

For ease of programming Arduino, the diagram below shows you how the Arduino is connected.

Downloads

 

 

Comments
  1. jef
  2. jef

Leave a Reply

Your email address will not be published. Required fields are marked *