0% found this document useful (0 votes)
160 views20 pages

Box

This document provides instructions and code for monitoring an electronic test bench using an Arduino. It includes: 1. Reading/displaying 16 analog values, 14 digital pins for clock control, and writing/reading a 32-bit bus in nibbles. 2. Generating a data log and displaying values on an LCD screen and PC. 3. Adding WiFi capability using a BT_BOARD V1.04 module. 4. Code and instructions for using the PLX-DAQ library to send Arduino readings to an Excel sheet for real-time monitoring and logging of values. Processing code is also included to display readings on a PC.

Uploaded by

u2006262918
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
160 views20 pages

Box

This document provides instructions and code for monitoring an electronic test bench using an Arduino. It includes: 1. Reading/displaying 16 analog values, 14 digital pins for clock control, and writing/reading a 32-bit bus in nibbles. 2. Generating a data log and displaying values on an LCD screen and PC. 3. Adding WiFi capability using a BT_BOARD V1.04 module. 4. Code and instructions for using the PLX-DAQ library to send Arduino readings to an Excel sheet for real-time monitoring and logging of values. Processing code is also included to display readings on a PC.

Uploaded by

u2006262918
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Arduino Real Time Data

The Mission is to monitor an electronic test bench to include:


Read/Display 16 analog values.
Read/Decode 14 Digital pin bus for clock control.
Read/Write a 32 bit bus by nibbles.
Generate a data log
View/Interact via a PC.
Display bench (BOX) values on a LCD display and PC.
Add WiFi via BT_BOARD V1.04.
PLX-DAQ: (Works but its Limited).
p.02 Getting Setup files and brief over view of PLX-DAQ.
p.03 Arduino source code and notes concerning same.
p.04 Excel data sheet containing VB code allowing Arduino data
acquisition.
PROCESSING:
p.05
Arduino and processing: set-up files, Arduino & P2 source code.
p.06
Changing the 32bit data bus.
p.07
Generating real time log file.
p.08
Excel data sheet generated (log file).
p.09
Collection of Arduino Ports used and plan to include LCD display.
p.10
Details on the SPLC780D LCD display, Arduino LCD code to drive it.
P.11-13 Tying 74LS164 shift register to Arduino.
p.14
Recap of ports used and program references.
p.15-16 Use of BT_BOARD v1.04.
p.17 -18 74LS157 DataSheet & 74LS164 DataSheet
p.19+
More Stuff: Collection of notes.

PLX-DAQ Set-Up: Getting Necessary Files

Download Arduino Mega2560:


http://arduino.cc/en/Main/ArduinoBoardMega2560
Download Arduino Processing:
http://playground.arduino.cc/Interfacing/Processing
Note: This was done but not employed. Firmata DB was for UNO.
Download PLX-DAQ:
http://www.parallax.com/tabid/393/Default.aspx
Blog on PLX-DAQ-n-Arduino:
http://robottini.altervista.org/arduino-and-real-time-charts-in-excel

Brief PLX-DAQ Code Used in Arduino Sketches. I


think this all of it:
LABLE

- Used to definethe column headings.


Syntax:
Serial.println(LABEL,INT_COLUMN);
DATE, TIME- Allowsthe serialportto send datato Excel.
Syntax: Serial.print (DATE, TIME,);
Serial.println(val);
Note: Serial.print (DATE, TIME,) must be
used before
each Serial.println();
ROW, SET,k, - This allows control over the row that
excel accepts data.

Short Ardunio Script Placing Arduino Reads into Excel Meter


Open Document Text
Double click to open, 233 line sketch, reading analog pins A(15:0] and sending it to ECEL. Need
win2k or better.
14 bit decode of up/dwn counters to display CLK, and write A5A5 to nibs 7:4 and read that into
nibs 3:0.
Use bench_mon.xlsm found in PLX-DAQ.

Box7_ino.txt

ECEL
Snapshot

Supplies
5V

12V

V-V

N12V

5.00
V
0.00
mA

3.44
V
0.00
mA

2.26
V
0.00
mA

V
4.99
0.00
mA

Measured
A1-2

A3-4

A5-6

A7-8

0.00
V

0.00
V

0.00
V

5.00
V

5.00
V

5.00
V

5.00
V

5.00
V

MainClock
BASE
CLK

DataR -

DataW A 5

10.00
813.74
NIBS[15:0]
-

- H


A 5 H

A 5 A 5

MHZ
HZ

NOTES:
The Arduino code writes to columns 1-3 (A-C) and ECEL maps columns
B to G and to C to I .Column A is the DATA, TIME, This is needed to
have EXCEL read the incoming data.
8 Nibs can be read or written: pic shows a write of A5A5 and reading
same. The value to R/W is CSV file read by script.
The frequency will be the decode of up/down counters used to generate
CLOCK with base frequency of either 10 or 20 MHZ crystal module and
I really need the BOX to finish this.
Reads of 12 analog ports with wait of 5mS B/W reads plus
40mS at end of reads allows about 10 reads/s.
The box colors are based on the data received , set in EXCEL.
Supply : 0<=5V consider a 5% de-rating.
Supply >5v are a 10% de-rating.
All values read outside their de-rating show RED.
The voltages monitored were 5V, 3.3V and 0V and the one pot V- OUT
seen in the V-V supply where the color green/red was base on value
V>= 0 = green and anything else is red.
All current values were tied to 0V where 0-0.9 = green and
any measurement above or below this range is red.
The Measured value has no constraints and will always be green.
Must! open xcel to blank sheet. Connect to data port then
move meter sheet to first page (blank out Meter).

EXCEL Data Sheet Used

This is the excel DB used. The DATE,TIME, field A1 , measured value 12=B2-3.
You must use the downloaded excel worksheet it contains VB code that
allows Arduino access, or this one. Sheet : bench_mon2.xlsm.

ARDUINO & PROCESSING


Download Processing:
http://processing.org
Download Arduino Processing:
http://playground.arduino.cc/Interfacing/Processing
Copy folder Arduino to processing folder
C:\downloads\processing-2.0.1-windows32\processing2.0.1\modes\java\libraries
Enter processing and add font: Arial-BoldMT-14, <Tools><Create Font>
Add sketch box_proc_pde.txt making the box.

box_proc_ino.txt

Add patch to Arduino


IDE.
See More Stuff: ending
pgs..

box_proc_pde.txt

Click R-W to change the 32 bit


bus status.
Click Log to allow data log.

Change The 32 Bit Bus

The meter will default


to all read: r,r,r,r,r,r,r,r
. Click R-W and the
box below will pop-up,
make your entry and
click OK. The board is
currently wired upper
2 bytes to the lower 2
bytes, so it will read
what it writes.

Data Log
Click the Log button and the
box below will pop-up
suggesting a file name of the
current date and time.
Accept it or change to your
preference. This will write out a
CSV file containing the
measurements and settings of
the box.

CSV File

The Box Settings and Ports used, also the plan to include
SPLC870D LCD Display

SPLC780D/74LS164

17
18

16
Arduino source code driving LCD. Lcd2 uses on
change write

Lcd_ino. txt

SPLAC780D DATA
SHEETS

http://www.datasheet4u.com/d
atasheet/S/P/L/SPLC780D_Sunp
lusTechnology.pdf.html

Pin/Signal Wire
1 DB7
Blue Solid
2 DB6
Blue Striped
3 DB5
Brown Solid
4 DB4
Brown Striped
5 DB3
Blue Solid
6 DB2
Blue Striped
7 DB1
Brown Solid
8 DB0
Brown Striped
9 E1
Blue Solid
10 R/W
Blue Striped
11 RS
Green Solid
12 V0
Green Striped
13 VSS
Green Striped&
Solid
14 VDD
Orange Solid
15 E2
Orange Striped
16 NC
17 LEDA
Orange Solid
18 LEDK
Green Solid

Lcd2_ ino. txt

Connector
DB6 -2 1-DB7
DB4 -4 3-DB5
DB2 -6 5-DB3
DB0 -8 7-DB1
R/W-10 9-E1
V0-12 11-RS
VDD-14 13-VSS
NC-16 15-E2
17 LEDA
18 LEDK
GND

5V

10

SPLC780D HOOK-UP

5V

RAILS

GND

16-R_S
21-E1
20-E2
19-R_W
18-D_I
17-CK

17 LEDA
18 LEDK

5V
GND

16

Arduino pins
used as digital
outputs:
D[21:16] .
74LS164

DB7 -1
2
-DB6
DB5 -3
4
-DB4
DB3 -5
6
-DB2
DB1 -7
8
-DB0
E1 -9
10
-R/W
VO, Was Designed to
RS -11
12
tie through a 10k pot
-VO
to GND.
VSS -13
14
R/W=0=Write;
-VDD
RS=0=INS
E2 -15
16
-NC

11

Free-up RX/TX3 To Include BT_BOARD V1.04


5V

RAILS

GND
1

17 LEDA
18 LEDK

5V
GND

16-R_S

74LS157

19-E
Arduino pins
used as
digital
outputs:
D[19:16] .

2:
1

R/W

16

E2
E1

2:
1

18-D_I
74LS164
17-CK

DB7 -1
2DB6
DB5 -3
4DB4
DB3 -5
6DB2
DB1 -7
8DB0
E1 -9
10R/W
VO, Was Designed to
RS -11
12tie through a 10k pot
VO
to GND.
VSS -13
14R/W=0=Write;
VDD
RS=0=INS
E2 -15
16NC

12

LCD DISPLAY

13

PORTS/PINS/PROGRAM_VAR_NAME

See p.11, 6 pin LCD


p.12, 4 pin LCD

See

Arduino Data
http://www.robotshop.com/media/files/PDF/ArduinoMega2560Dat
Sheet
asheet.pdf
The PDF file is huge! 8g so it was removed and replaced by the pointer above.

14

BT_BOARD V1.04

* Correspondence with
seller:
VCC < 7V
If VCC = 5V then RX/TX
will
achieve TTL 5V levels.

Industrial serial port Bluetooth, Drop-in replacement for wired serial connections,
transparent usage.
You can use it simply for a serial port replacement to establish connection between MC
and GPS,
PC to your embedded project and etc.
Computer and peripheral devices
GPS receiver
Industrial control
MCU projects
Default serial port setting : 9600 1
Pairing code : 1234
Running in slave role: Pair with BT dongle and master module
Usage
Coupled Mode: Two modules will establish communication automatically when powered
PC hosted mode: Pair the module with Bluetooth dongle directly as virtual serial.
Bluetooth protocol : Bluetooth Specification v2.0+EDR
Frequency : 2.4GHz ISM band
Modulation : GFSK(Gaussian Frequency Shift Keying)
Emission power : <=4dBm, Class 2
Sensitivity : <=-84dBm at 0.1% BER
Speed : Asynchronous: 2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps
Security : Authentication and encryption
Profiles : Bluetooth serial port
CSR chip : Bluetooth v2.0
Wave band : 2.4GHz-2.8GHz, ISM Band
Protocol : Bluetooth V2.0
Power Class : (+6dbm)
Reception sensitivity: -85dBm
* Voltage : 3.3 (2.7V-4.2V)
** NOT CORRECT
Current : Paring - 35mA, Connected - 8mA
Temperature : -40~ +105 Degrees Celsius
User defined Baud rate : 4800, 9600, 19200, 38400, 57600, 115200,
15
230400,460800,921600,1382400.

BT_BOARD V1.04
Pin definition :
PIO8 connects with LED cathodea with 470ohm series resistor in
between.
LED NEGATIVE connects to ground.
It is used to indicate the module state. After powered on, flashing
intervals differ in
different states.
PIO9 is used to control LED indicating paring. It will be steady on when
paring is
successful.
PIO11, module state switching pin. HIGH -> response to AT command;
LOW or floating
-> regular work status.
With build-in reset circuit, reset is completed automatically after
powered on.
Steps to set to MASTER:
Set PIO11 HIGH with a 10K resistor in between.
Power on, module comes into AT Command Response Status
Open HyperTerminal or other serial tool, set the baud rate 38400, 8
data bits, 1 stop
bit, no parity bit, no Flow Control Via serial port, send characters "AT +
ROLE = 1 r n",
if successful, return "OK r n", where r n is carriage return.
Set PIO11 LOW, re-power, then in Master state, automatically search for
slave module
and connect.

16

2:1 Mux 74LS157

17

Shift Register 74LS164

18

Some Extra Stuff


1. P.5 Arduino & Processing . Add Patch to allow String2Float and Float2String conversion.
See blog http://www.timewasters-place.com/arduino-string-and-float/
Replace C:/Program Files/Arduino/hardware/arduino/cores/arduino/Wstring.[h,cpp] with those from site.

Float_Patch_for_Arduino_1.0.3.zip

String example1
example1
String example2
example1
variable

=
=
=
=

String(1.852); // Equals: "1.852000"


String(1.852, 2); // Equals: "1.85"
String(example1.toFloat() * 1.784561, 4); // Equals: "3.3014"
example2 + 1.58356; // Equals: "3.30141.583560", since the example2
is of type String the number gets converted into String and concatenated.

This is patch for Arduino 1.03-1.05 releases. The next releases from Arduino are 1.5.#
not yet made public.
This was an attempt to make writes more stable, however; it behaved the
same.
2. The PLX-DAQ works well but does not allow any other interaction than reporting collected data. Its fast and easily but
limited.
3.

The current LCD display is power starved (driven by USB). Once better rails are applied POTS will be added to VO and AK, allowing
Variable back light intensity and the correct contrast. This will sharpen the LCD appearance.

4.

Will use 6 pins digital P16-21, which will drive LS74164 and SPLC780d. The E[2:1] and RW connections are not
necessary; adding
various external logic will eliminate E[2:1] and RW is always tied LOW, write. Change to 4 pin interface, p.12 .

5.

The LCD has 2 font capabilities 5x10 & 5x7 ;how ever, only the 5x10 display can be chosen. I also had problem
selecting the
desired cursor control. Wanted to just move cursor to a given address and write backwards (w/o shifting the display).
This would
have made printing to LCD cleaner, all values to LCD and PC are String values and keeping decimal place works best
right to left.
I was able to set up close to this but cursor movement is left to right.
The need to write to specific locations allows print on change and also a non-flashy display. The LCD display looks just
like the
Processing BOX on the PC just not quite as fast.

19

More Stuff
7.
Will eliminate Arduinos pin 19, program name E which drives the LCD capture clock. Using a counter clocked by CK, a
count of 8 will clock E. TTL logic
74LS163 a 4 bit binary counter and will be decoded by 8. May seem asynchronous but not, its in correct time frame.

20

You might also like