Arduino UNO first step, connect to your laptop, run a simple application

By: ( +David Herron; Date: June 17, 2017

Tags: Arduino

The Arduino is an extremely popular microcontroller for open source DIY hardware hacking projects. There are many flavors of Arduino, and for this project we'll use an Arduino UNO. All Arduino's have a well-defined GPIO interface supporting "Shield" boards providing customized capabilities. The GPIO pins can be connected to your DIY hardware, or to 3rd party Shields, for which there are many suppliers. That's what makes the Arduino so interesting to regular folk like you and me. There's a whole slew of microcontroller chips and boards targeted to commercial and industrial systems. That's not who we are, we're hacking away in a spare bedroom.

With this article we'll take a first step or two to get an Arduino connected to our computer, get accustomed to the IDE, and upload a couple simple programs. Down at the bottom are a few videos.


There's a slew of Arduino hardware available. The first simplification we're offering is - just get an Arduino UNO. It's enough of a system to do some useful projects without breaking the bank. The last thing to do at this stage is to get lost weighing between UNO's and Zero's and MegaWhatever's. There are Arduino UNO starter kits that come with a few extra useful parts, and that may be worth your while.

Elegoo UNO Project Basic Starter Kit with Tutorial and UNO R3 for Arduino
Elegoo UNO Project Basic Starter Kit with Tutorial and UNO R3 for Arduino:
Arduino Uno 3 Ultimate Starter Kit Includes 12 Circuit Learning Guide
Arduino Uno 3 Ultimate Starter Kit Includes 12 Circuit Learning Guide:

There are two ways to power the UNO. One is a DC input port accepting voltage up to 12 volts. That could be a battery, a power supply, or a power brick. The other way, and the simplest to start with, is via the USB port. Simply connect a USB cable between the Arduino UNO and your computer, and the UNO powers up. You'll also use that USB cable to send software to the UNO.

Next to the USB connector is a micro-switch. That is a RESET button letting you reboot the Arduino without power-cycling the USB connector.

Software - Arduino IDE and drivers

The Arduino website has lots of great information, and is also where you download the software. While you can probably do lots with the Arduino Web Editor, we suggest installing the Arduino IDE. IDE is geek-speak for "Programmers Editor" or more technically "Integrated Development Environment". The Arduino IDE has all the functionality required to edit Arduino code, access examples from an extensive online library, access utility libraries, and more.

Go to ( and select the download for your computer. It will include not just the IDE but also device drivers.

Once you've downloaded the software, install it. For Windows, you may need to install Drivers that are included in the Arduino IDE download. The video below contains some caveats about specific steps and potential pitfalls when installing the drivers.

Launch IDE - tour

Once you've installed the software we can take a little tour.

The most important is to ensure we have the Arduino board correctly recognized by the Arduino IDE. With the Arduino connected to your computer, look at the Tools menu and there is a choice for Board and Port. These choices correspond with the board you have connected to your computer at any one time. The Arduino IDE makes its best effort to determine the Port and Board, but it's helpful to ensure it did so correctly.

On Windows you'll need to go to the Device Manager and look to see which COM port was assigned to the Arduino.

The Arduino IDE includes a Library Manager that's used to download extension libraries. Some of those libraries are written by the Arduino organization while others are written by the community. In the Sketch menu, under the Include Library choice is Manage Libraries. Click on that and a window pops up letting you search for and install libraries.

A large number of example programs are available to help you get started with the Arduino. In the File menu is the Examples choice which presents a variety of example programs. Which gives us the cue for the next section.

Load the Blink example

The Blink program is a useless example. It just blinks one of the LED's on the board. However, this application is a quick way to verify the hardware is setup correctly and to learn a couple things about the Arduino.

If there is an Angel statue nearby, however, don't run this program because whatever you do when near a Weeping Angel, Don't Blink

With that out of the way, and shooing away any wayward Angels, in the Examples menu select 01.Basic and Blink. The IDE will open a new editing window containing the sample application.

The programming language is more-or-less-don't-look-too-closely C, a venerable programming language. Learning to program the Arduino is a chance to learn C, more-or-less, if you don't already know that language.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.

The setup function in an Arduino sketch is run once when the program starts. In this case it sets up the named pin, LED_BUILTIN, as an output pin.

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second

The loop function runs continuously and is meant to handle "events" and make behavior changes by either reading pin states or changing pin states. In this case the LED_BUILTIN pin is first set HIGH, then set LOW, with 1000 milliseconds between each.

In case it's not clear -- this will change the output state of one of the pins on the Arduino GPIO. This particular pin corresponds to an LED on the board, and therefore the LED will blink on and off repeatedly.

With your Arduino plugged in, there are two buttons to click in the IDE user interface. They are the Verify button, which looks like a checkmark, in the toolbar, followed by the Upload button, which looks like a right-ward-pointing-arrow. Upload causes the program to load into the Arduino.

Blinking LED (yellow) on the Arduino board

This is the LED in question. While you're looking at this, next to the USB header is a little button. Press the button and you'll see the lights briefly flicker, and then the blinking starts.

You can verify that your program is causing the blinking by adjusting the delay values - for rapid blinking, set the delay to 500 for a 1/2 second delay between each step.

Next step

We've verified that we can upload a program to the Arduino and make it do something. The next step is setting up an LCD display Displaying text on LCD screen from the Arduino UNO

« Top 5 Single Board Computers 2017 Displaying text on LCD screen from the Arduino UNO »
2016 Election Acer C720 Ad block AkashaCMS Amazon Amazon Kindle Amazon Web Services America Amiga Android Anti-Fascism AntiVirus Software Apple Apple Hardware History Apple iPhone Apple iPhone Hardware April 1st Arduino ARM Compilation Artificial Intelligence Astronomy Astrophotography Asynchronous Programming Authoritarianism Automated Social Posting AWS DynamoDB AWS Lambda Ayo.JS Bells Law Big Brother Big Finish Bitcoin Mining Black Holes Blade Runner Blockchain Blogger Blogging Books Botnet Botnets Cassette Tapes Cellphones China China Manufacturing Christopher Eccleston Chrome Chrome Apps Chromebook Chromebox ChromeOS CIA CitiCards Citizen Journalism Civil Liberties Clinton Cluster Computing Command Line Tools Comment Systems Computer Accessories Computer Hardware Computer Repair Computers Cross Compilation Crouton Cryptocurrency Curiosity Rover Currencies Cyber Security Cybermen Daleks Darth Vader Data backup Data Storage Database Database Backup Databases David Tenant DDoS Botnet Detect Adblocker Developers Editors Digital Photography Diskless Booting Disqus DIY DIY Repair DNP3 Do it yourself Docker Docker MAMP Docker Swarm Doctor Who Doctor Who Paradox Doctor Who Review Drobo Drupal Drupal Themes DVD E-Books E-Readers Early Computers Election Hacks Electric Bicycles Electric Vehicles Electron Emdebian Encabulators Energy Efficiency Enterprise Node EPUB ESP8266 Ethical Curation Eurovision Event Driven Asynchronous Express Face Recognition Facebook Fake News Fedora VirtualBox File transfer without iTunes FireFly Flickr Fraud Freedom of Speech Gallifrey git Github GitKraken Gitlab GMAIL Google Google Chrome Google Gnome Google+ Government Spying Great Britain Heat Loss Hibernate Hoax Science Home Automation HTTP Security HTTPS Human ID I2C Protocol Image Analysis Image Conversion Image Processing ImageMagick In-memory Computing InfluxDB Infrared Thermometers Insulation Internet Internet Advertising Internet Law Internet of Things Internet Policy Internet Privacy iOS Devices iPad iPhone iPhone hacking Iron Man iTunes Java JavaScript JavaScript Injection JDBC John Simms Journalism Joyent Kaspersky Labs Kindle Kindle Marketplace Lets Encrypt LibreOffice Linux Linux Hints Linux Single Board Computers Logging Mac Mini Mac OS Mac OS X Machine Learning Machine Readable ID macOS MacOS X setup Make Money Online March For Our Lives MariaDB Mars Mass Violence Matt Lucas MEADS Anti-Missile Mercurial MERN Stack Michele Gomez Micro Apartments Microsoft Military AI Military Hardware Minification Minimized CSS Minimized HTML Minimized JavaScript Missy Mobile Applications Mobile Computers MODBUS Mondas Monetary System MongoDB Mongoose Monty Python MQTT Music Player Music Streaming MySQL NanoPi Nardole NASA Net Neutrality Node Web Development Node.js Node.js Database Node.js Testing Node.JS Web Development Node.x North Korea npm NVIDIA NY Times Online advertising Online Community Online Fraud Online Journalism Online Photography Online Video Open Media Vault Open Source Open Source Governance Open Source Licenses Open Source Software OpenAPI OpenVPN Palmtop PDA Paywalls Personal Flight Peter Capaldi Photography PHP Plex Plex Media Server Political Protest Postal Service Power Control Privacy Production use Public Violence Raspberry Pi Raspberry Pi 3 Raspberry Pi Zero ReactJS Recaptcha Recycling Refurbished Computers Remote Desktop Removable Storage Republicans Retro Computing Retro-Technology Reviews RFID Right to Repair River Song Robotics Rocket Ships RSS News Readers rsync Russia Russia Troll Factory Russian Hacking Rust SCADA Scheme Science Fiction SD Cards Search Engine Ranking Season 1 Season 10 Season 11 Security Security Cameras Server-side JavaScript Serverless Framework Servers Shell Scripts Silence Simsimi Skype SmugMug Social Media Social Media Warfare Social Networks Software Development Space Flight Space Ship Reuse Space Ships SpaceX Spear Phishing Spring Spring Boot Spy Satellites SQLite3 SSD Drives SSD upgrade SSH SSH Key SSL Stand For Truth Strange Parts Swagger Synchronizing Files Telescopes Terrorism The Cybermen The Daleks The Master Time-Series Database Torchwood Total Information Awareness Trump Trump Administration Trump Campaign Ubuntu Udemy UDOO US Department of Defense Virtual Private Networks VirtualBox VLC VNC VOIP Vue.js Web Applications Web Developer Resources Web Development Web Development Tools Web Marketing Website Advertising Weeping Angels WhatsApp William Hartnell Window Insulation Windows Windows Alternatives Wordpress World Wide Web Yahoo YouTube YouTube Monetization