Programmable Device Interface PDI-1 A Versatile Hardware Controller with USB interface

Similar documents
Sanguino TSB. Introduction: Features:

Goal: We want to build an autonomous vehicle (robot)

ESPino - Specifications

keyestudio Keyestudio MEGA 2560 R3 Board

ARDUINO MICRO WITHOUT HEADERS Code: A000093

Arduino Uno. Arduino Uno R3 Front. Arduino Uno R2 Front

Stepper 6 click. PID: MIKROE 3214 Weight: 26 g

Introduction to Arduino. Wilson Wingston Sharon

ARDUINO MEGA 2560 REV3 Code: A000067

ARDUINO MEGA ADK REV3 Code: A000069

IDUINO for maker s life. User Manual. For IDUINO Mega2560 Board(ST1026)

UNIVERSITY OF BOLTON SCHOOL OF ENGINEERING MSC SYSTEMS ENGINEERING AND ENGINEERING MANAGEMENT SEMESTER 2 EXAMINATION 2016/2017

Explorer V1.20. Features

ARDUINO UNO REV3 SMD Code: A The board everybody gets started with, based on the ATmega328 (SMD).

How to Use an Arduino

ARDUINO MINI 05 Code: A000087

IDUINO for maker s life. User Manual. For IDUINO development Board.

ARDUINO LEONARDO ETH Code: A000022

ARDUINO M0 PRO Code: A000111

ARDUINO LEONARDO WITH HEADERS Code: A000057

NXShield Interface Specifications

Arduino ADK Rev.3 Board A000069

RoboClaw 2x30A Dual Channel Motor Controller

Beetle SKU:DFR0282. Contents. Introduction

ARDUINO UNO REV3 Code: A000066

MCP2xxx Dual Channel Motor Controller

ARDUINO YÚN Code: A000008

Arduino Diecimila Pinouts 697B B8D-A50A-61944C26074F

Arduino Smart Robot Car Kit User Guide

EVShield Interface Specifications

ARDUINO PRIMO. Code: A000135

Arduino Dock 2. The Hardware

PAC5523EVK1. Power Application Controllers. PAC5523EVK1 User s Guide. Copyright 2017 Active-Semi, Inc.

Locktronics PICmicro getting started guide

DC Motor Card HW Reference Manual and Datasheet

MCP230 Dual Channel Motor Controller

ST400C-NT USER S GUIDE. Table of Contents

BASICMICRO. MCP26x Dual Channel Motor Controller. MCP26x Dual Channel Programmable Brushed DC Motor Controller

LAMPIRAN I (LISTING PROGRAM)

Arduino Prof. Dr. Magdy M. Abdelhameed

CN310 Microprocessor Systems Design

PAC5232EVK1. Power Application Controllers. PAC5232EVK1 User s Guide. Copyright 2017 Active-Semi, Inc.

RoboClaw 120A/160A/200A Dual Channel Motor Controller

Pmod modules are powered by the host via the interface s power and ground pins.

A variety of ECONseries modules provide economical yet flexible solutions. Waveform Generation

Alessandra de Vitis. Arduino

IOX-16 User s Manual. Version 1.00 April Overview

DAQCplate Users Guide

QUICK START GUIDE FOR DEMONSTRATION CIRCUIT 658 MULTI-OUTPUT DC/DC CONVERTER POWERED BY 2-CELL, USB OR WALL ADAPTER

GUIDE TO SP STARTER SHIELD (V3.0)

PIXI click PID: MIKROE Weight: 28 g

Debounced 8 8 Key-Scan Controller

User Manual. HEDS-8949 & HEDS-8969 Alignment Kit for AEAT-9000 Encoders. 1. Introduction. Overview. Features. Ordering Information

Mercury System SB310

EZ-Bv4 Datasheet v0.7

D115 The Fast Optimal Servo Amplifier For Brush, Brushless, Voice Coil Servo Motors

BASIC Arduino. Part I

PAC5532EVK1 User s Guide

ARDUINO MICRO PINS associated functions

LCMM024: DRV8825 Stepper Motor Driver Carrier,

MP6500 Stepper Motor Driver, Digital Current Control

Lesson 5 Arduino Prototype Development Platforms. Chapter-8 L05: "Internet of Things ", Raj Kamal, Publs.: McGraw-Hill Education

Exen Mini. Setup Guide - V1. nerdonic.com

E-Module: GLCD+RTC Combo Datasheet

ARDUINO YÚN MINI Code: A000108

Lab 01 Arduino 程式設計實驗. Essential Arduino Programming and Digital Signal Process

Propeller Activity Board (#32910)

Omega-328 SB. Rapid Prototyping tool with Shield Base for Atmel AtmegaXX8 Microcontrollers. User Manual

ARDUINO INDUSTRIAL 1 01 Code: A000126

Cookie User Manual. For NuMicro Edition 1.0. Rev. 1.0 Release: forum.coocox.org.

RS485 3 click. How does it work? PID: MIKROE-2821

EMTRON AUSTRALIA EMTRON ECU OVERVIEW

XE166 Family AP Application Note. Microcontrollers. X E D r i v e C a r d H a r d w a r e D e s c r i p t i o n Board REV.

Manual of Board ET-ESP32 RS485

Breeze Board. Type A. User Manual.

Adafruit Metro Mini. Created by lady ada. Last updated on :12:28 PM UTC

Power Supply, Arduino MEGA 2560, and Stepper Motors Connections

Logosol Joystick Node LS-731

Instruction Manual for BE-SP3 Circuit. 10/21/07

ICN12. I2C to UART Bridge, ADC,DAC and I/O

Lab-3: LCDs Serial Communication Analog Inputs Temperature Measurement System

L298N Dual H-Bridge Motor Driver

ECG 2 click PID: MIKROE Weight: 30 g. Condition: New product. Table of contents

Color 7 click. PID: MIKROE 3062 Weight: 19 g

Stepper Motor Card HW Reference Manual and Datasheet

3.3V regulator. JA H-bridge. Doc: page 1 of 7

USER MANUAL ARDUINO I/O EXPANSION SHIELD

Device: FDRV-04S. This document version: v1. Matches module version: v2 [2 Oct 2015] Document revision date: 9 November 2015

INTERFACING HARDWARE WITH MICROCONTROLLER

Ultratronics v1.0 DATASHEET

Thermo 6 click PID: MIKROE-2769

Building and using JasperMIDI

USB UART 4 click PID: MIKROE Weight: 23 g

USER GUIDE ARDBOX ANALOG

PCB Design for Capacitance Rain Sensor

ZeptoBit Isolated USB-UART Adapter Datasheet

Adafruit seesaw. Created by Dean Miller. Last updated on :30:23 AM UTC

AVR 40 Pin Rapid Robot controller board

Introducting Itsy Bitsy 32u4

MD3. Microstepping Motor Driver Page 1 of 7. Description. Software. Mechanical Drawing. Features

Transcription:

Programmable Device Interface PDI-1 A Versatile Hardware Controller with USB interface Features and Specifications Arduino compatible for simple USB Programming 126 x 64 Graphic LCD 12x Digital IO ports* 6x 10-bit Analogue Inputs MicroUSB connection for computer 4x 3.5A H-Bridge motor controllers Rotary Encoder with switch 4x pushbutton switches 6V to 20V input supply voltage. 16MHz ATMega328 MCU * Some I/O functions share a single connection and can be configured in the code The PDI-1 is a simple programmable device which is capable of directly interfacing to hardware such as motors, LEDs and sensors without the need for extensive external electronics. With the Arduino bootloader pre-installed this device is fully compatible with Arduino software making it very easy to set up and get coding. The built in graphic LCD is controlled over I2C and combined with the rotary encoder it is great for making menu based control systems or plotting data direct to the screen. The four 3.5 amp H-Bride motor controllers allow direct control of up to 8 loads such as high power LEDs or four DC motors in both directions. With built in over current protection and thermal overload protection, the power outputs offer great versatility. Example Applications Machine Automation LED Lighting Systems Vivarium / Environmental Control Robotics Adjustable Pulse Control Dashboard Controller for Car Mods And more 1

Figure 1: Main Layout Figure 2: I/O Connections 2

ELECTRICAL CHARACTERISTICS NB: Figures may vary under different loading conditions and environments. Symbol Parameter Min Max Vin Input Supply Voltage 6V 20V 1 VIO Standard I/O Port Voltage - 5V Isup Supply Current 100mA 130mA Vmotors Load supply voltage for H-Bridges 8V 40V Imotors H-Bridge source/sink current max - 3.5A 2 IIO Max I/O port current per pin - 40mA 1 12V max for normal use. Higher voltages will cause excess heating in the 5V regulator and are not recommended. 3.5A peak current. Continuous power will vary with operating conditions. Devices have built in Current and Thermal potection. Table 1: Electrical Characteristics 1 PINOUT REFERENCE Pin Connection Function Arduino Equivalent Pin SCL I2C Clock/ 10-bit Analogue Input 0V to 5V / Digital I/O A5 SDA I2C Data/ 10-bit Analogue Input 0V to 5V / Digital I/O A4 D0/RX Digital I/O / Serial Rx D0 / RX D1/TX Digital I/O / Serial Tx D1 / TX D2/INT0 Digital I/O - Interrupt Capable D2 D3/INT1 Digital I/O - Interrupt Capable D3 D4/T0 Digital I/O / Timer 0 D4 D5/T1 Digital I/O / Timer 1 D5 D6/DA1 D6 D7 Digital I/O D7 D8 Digital I/O D8 D9/DA2 D9 D10/DA3 D10 D11/DA4 D11 RESET Resets the Microcontroller RESET AD0 (100x) 10-bit Analogue Input 0V to 50mV A0 AD1 (10x) 10-bit Analogue Input 0V to 500mV A1 AD6 (/10) 10-bit Analogue Input 0V to 50V A6 AD7 (/100) 10-bit Analogue Input 0V to 500V * A6 AD2 Digital I/O / 10-bit Analogue Input 0V to 5V A2 AD3 Digital I/O / 10-bit Analogue Input 0V to 5V A3 3

AIN2 Motor A signal input 2 AIN1 Motor A signal input 1 BIN2 Motor B signal input 2 BIN1 Motor B signal input 1 CIN2 Motor C signal input 2 CIN1 Motor C signal input 1 DIN2 Motor D signal input 2 DIN1 Motor D signal input 1 Vmotor CD Load Supply Voltage for motor outputs C and D VmotorAB Load Supply Voltage for motor outputs A and B DOUT1 H-Bridge power output D1 DOUT2 H-Bridge power output D2 COUT1 H-Bridge power output C1 COUT2 H-Bridge power output C2 BOUT1 H-Bridge power output B1 BOUT2 H-Bridge power output B2 AOUT1 H-Bridge power output A1 AOUT2 H-Bridge power output A2 5V OUT 5V from internal voltage regulator 5V GND Circuit ground. Common with all other GND connections GND * For transient voltages only. 100V DC max. Table 2: Pinout Reference Digital I/O The digital I/O pins when used as an output can be set as either high (5V) or low (0V). When used as an input, they will respond to the same voltage levels. It is important not to exceed 5V on these pins or the circuit could become damaged. Analogue Outputs (DAC) / PWM Output Some of the digital I/O pins can also be used as a pseudoanalogue output. The analogue outputs use a fixed frequency (about 500Hz) PWM signal that can be adjusted between 0 and 100% duty which can represent an equivalent voltage of 0V to 5V. This is ideal for motor speed control or LED brightness control. The I/O ports can only handle 40mA at most. If you need more current the PWM signals can be connected to the motor signal inputs so that you can control higher powered loads up to 3.5A. 4

Analogue Inputs The analogue inputs have a 10-bit resolution which means the input voltage will be represented by a number between 0 and 1023. To calculate the real voltage from the ADC value, some simple math is required Vin = ADC Value * (ADC Max / 1024) Where ADC Value is the value returned by the AnalogueRead function, and ADC Max is the maximum votage for that ADC port. For example: Using the port "AD6 (/10)" the max voltage is 50V. Therefore; Vin = ADC Value * (50 / 1024) It is important to consider the variable types you use when performing calculations as integer types cannot store fractions. Motor/Power Outputs The motor H-Bridge circuits are not connected to the I/O ports of the microcontroller. This allows you to use either external signals, or the onboard ones if required. It also leaves the Digital I/O ports free to use if the power outputs are not needed. To control the power outputs with your code, you must connect a wire from one of the digital I/O ports to a motor signal input port using a short length of wire. You must also connect the H-Bridge circuits to a suitable power source that can deliver enough current, and has a voltage between 8V and 40V. The output drivers are all low resistance (about 0.5 ohms) drivers that feature internal synchronous rectification to reduce power dissipation. The current in the output bridge is automatically limited with fixed off-time pulse width modulated (PWM) control circuitry. The IN1 and IN2 inputs allow two-wire control for the bridge. Protection circuitry includes internal thermal shutdown, and protection against shorted loads, or against output shorts to ground or supply. Undervoltage lockout prevents damage by keeping the outputs off until the driver has enough voltage to operate normally. Motor braking can be achieved by setting both of the inputs to one driver high. If both are set low, the motor can freewheel. Programming Programming over USB can be achieved when using the Arduino IDE. When connected to the computer, a standard USB serial port will be installed. This port should be the one chosen in the Arduino software. The PDI-1 uses an ATMega328 microcontroller. An equivalent Arduino board would be the Arduino Nano which can be selected from the menu in the Arduino software. See arduino.cc to download the IDE and further details for programming. You can also find programming examples and projects on our website in the Programming Projects section. 5

It is also possible to program the microcontroller directly using the ICSP header. For this you will need a suitable programmer device. Programming via the ICSP header allows you to have it run without the Arduino bootloader which can reduce startup time. Example Program The code below can be copied into the Arduino IDE for testing your device. Y #include <Wire.h> #include <SPI.h> #include <I2C_KS0108C_GLCD.h> I2C_KS0108C_GLCD lcd; byte picture [] PROGMEM = { 0x1C, 0x22, 0x49, 0xA1, 0xA1, 0x49, 0x22, 0x1C, // Item1 0x10, 0x08, 0x04, 0x62, 0x62, 0x04, 0x08, 0x10, // Item2 0x4C, 0x52, 0x4C, 0x40, 0x5F, 0x44, 0x4A, 0x51, // Item3 }; void setup () { lcd.begin (); // draw all available letters for (int i = ' '; i <= 0x7f; i++) lcd.letter (i); // black box lcd.clear (6, 40, 30, 63, 0xFF); // draw text in inverse lcd.gotoxy (35, 40); lcd.string ("I2C KS0108 GLCD", true); // bit blit in a picture lcd.gotoxy (70, 56); lcd.blit (picture, sizeof picture); // draw a framed rectangle lcd.framerect (35, 49, 127, 63, 1, 1); // draw a diagonal line lcd.line (6, 40, 30, 63, 0); } // end of setup void loop () {} 6