Your SlideShare is downloading. ×
2012 1 arduino_rs232
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2012 1 arduino_rs232


Published on

Presentation for Desert Code Camp 2012.1

Presentation for Desert Code Camp 2012.1

Published in: Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Implementing RS-232 Serial PortsOn An ArduinoDESERT CODE CAMP 2012.1 Presented by Don Doerres Embedded Pro Guy
  • 2. TODAY’S TAKEAWAYS The Arduino has a ―Low Level‖ serial connection; many electronic devices have higher voltage serial connections called RS- 232 This class will explain  The basics of the serial connection  What the low and high level signals look like  How to convert between the types of signals  Some generalized RS-232 interfacing suggestions
  • 3. LET’S PICK A CHARACTER FOR AN EXAMPLE Let‘s use capital ‗C‘ for Code Camp Look this up on an ANSI Chart Dec: 67, Hex:43, Binary, 8 bits: 01000011
  • 4. THE BASIC SERIAL PROTOCOL 1 The bits of the characters come one at a time, through a single wire. The wire ―idles‖ at a ‗1‘ level to show that it is alive The bits come out low order bit first We will program for bytes of 8 bits each
  • 5. THE BASIC SERIAL PROTOCOL 2 We know the wire is alive because it idles at ‗1‘, the higher voltage level We know in advance how fast bits will be coming out of the wire; this is called the ―baud rate‖ So, our Arduino is sampling the incoming wire for a transition from ‗1‘ to a ‗0‘
  • 6. THE BASIC SERIAL PROTOCOL 3 So now we have one start bit This will be followed by 8 bits of the byte And, to keep this straight, we will have 1 extra bit of 1 at the end of the string of bits to guarantee that a ‗1‘ to ‗0‘ transition can take place to indicate the start of a next byte
  • 7. PUTTING IT ALL TOGETHER 1 Start Bit, 8 data bits, 1 Stop bit The bits of the byte come out low order bit first in time So we will have this string of 10 bits, with gray showing the state of the wire before and after the byte: …1 1 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1… Time
  • 8. ANOTHER VIEW OF THE SAME THING Here we show both the bit stream and the Arduino voltage levels
  • 9. NOW RS232 On the Arduino, the serial line swings between 0 and 5 volts (some are 0 to 3.3V) RS-232 is an older protocol A ‗1‘ is -12V  A ‗0‘ is +12V Don‘t even think about connecting the Arduino directly to this…please
  • 10. ANOTHER VIEW OF THE SAME THING This time RS232 A ‗1‘ is -12V A ‗0‘ is +12V
  • 11. SO HOW DO WE GET FROM LOW LEVEL TORS232? We need a hardware level translator This one is a Sparkfun PRT-00449
  • 12. HOW TO HOOK TO ARDUINO Note the signal arrows between the adapter and the Arduino
  • 13. TEST CODE INCLUDES AND DEFINES#include <SoftwareSerial.h>#define INSOFT1 7#define OUTSOFT1 8int incomingByte = 0;SoftwareSerial SWSerial(INSOFT1, OUTSOFT1);
  • 14. TEST CODE SETUPvoid setup(){Serial.begin(9600);SWSerial.begin(9600);}
  • 15. TEST CODE LOOPvoid loop(){while (Serial.available() > 0) { incomingByte =; SWSerial.print((char)incomingByte); }while (SWSerial.available() > 0) { incomingByte =; Serial.print((char)incomingByte); }}
  • 18. MORE STUFF… Q: How do I hook up right? A: Use an RS232 Analyzer and adapters
  • 19. HOOK TO THE MAIN COMPUTER The TD light should light Note TD and DTR, may light for a more advanced connection
  • 20. HOOK TO THE TARGET The RD light should light Sometimes Target powered from the host, and there will be no lights—or the target is off! Note possible:  CD  CTS  DSR
  • 21. HOOK TOGETHER The ideal outcome – all the lights!
  • 22. FIXING IT Sometimes you need a NULL adapter on one side
  • 23. IF YOU DO THIS A BIT… Invest in some adapters These are a long term investment I bought the first of mine 30 years ago…they wear well
  • 24. SOURCE FOR RS232 GEAR These companies offer different adapters over time  Radio Shack (  Frys Electronics ( This company is more expensive, but has a huge variety in stock at all times  Black Box (
  • 25. RS232 TO LOW LEVEL ADAPTER Sparkfun has two different ones  PRT-00133 ($6.95) is a through hole kit  PRT-00449 ($13.95) is surface mount and is pre- built
  • 26. QUESTIONS? Find more slides from Don at The Arduino code shown came be downloaded from 1