Intro To Arduino and Microcontrollers

DETAILS:

When most people hear the term Arduino they immediately think of the tiny, inexpensive computer board.

Well it’s that but actually a whole lot more! It’s a movement that allows tinkerers, makers, artist, hackers and

just about anybody create almost anything they can imagine.

In this course we’ll explain how that can be. What's inside the basic hardware, software, and how you can

get started with this wonderful technology. No previous experience is required.

The class consists of four, 2-hour sessions and when complete you will be able to create a simple project

using an Arduino board.

PREREQUISITIES: You should know the basics of working with files and programs on a PC.

If you’re not familiar with C programming, I highly recommend checking out one of the numerous

online tutorials that can bring you up to speed in just a few evenings.

You can google "best online C tutorial" and choose one from the results. (this is not absolutely required)

COMPUTER: Please bring a Windows based laptop with you. The classroom has several desktop PCs available for

those that do not have access a laptop However, bringing your own laptop is definitely recommended and encouraged.

MATERIALS: None are required, however if you have an Arduino UNO board bring it along.

I will have a few available to purchase for a reasonable additional fee.

Session 1:

Course Overview

Skill Assessment

What Is Arduino?

What Is a Microcontroller?

ATMega328P Microcontroller features

A Closer Look at The Arduino Uno board

Software Setup – Demo

Arduino Reference

Activity: Load & Modify Blink – Serial Blink

Programming Overview

Session 2:

Introduction to Arduino Programming (Part 1)

(Variables, Declarations & Control of Flow Statements)

Arduino Sketch Basics

Basic Electricity / Electronics for Hobbyists

Arduino Libraries

Activity: A more Advanced Program.

Project Debugging Techniques

Activity: Hardware Programming Demo

More about Serial Communications

Session 3:

Introduction to Arduino Programming (Part 2)

(Arrays & Pointers, functions)

Digital Input - digitalRead()

A/D Conversion – analogRead()

Pulse Width Modulation (PWM)

Controlling A Servomotor

I2C and SPI Communications

Introduction to Timers & Interrupts

Session 4:

Controlling an LCD Display

Interfacing to other hardware

Speakers, Motors, Keyboards, I/R, USB ..

Students Choice -

Shared link to files: https://drive.google.com/drive/folders/0B74nVuDQkpX_bUk5TDRmQUJGUVE?usp=sharing

Notes:

1. Some students needed the drivers for the Uno Clone sold at the class (find them attached below CH341SER.zip)

(Check device manager COM ports. You should have an entry for USB-SERIAL CH340)

2. For those using the "Real" Arduino (or a compatible not using the CH340 chip) find the drivers in the "drivers" folder

where the Arduino IDE software is loaded. (typically C:\arduino-1.6.5-r2\drivers\)

3. Some students had problems compiling with the WinAVR compiler due to a bad .dll in the install package.

download msys-1.0.zip (below) unzip it and copy it to C:\WinAvr\utils\bin replacing the existing file.

(*you may have installed WinAVR in a different location than described above.)

Here's the steps to test compiling with WinAVR:

1. open the \ATMega328\UART_PB folder that came with the class file distribution

(see link to shared files above )

2. double click on cmd_here.cmd (a command window should open)

3. In the command window that appears enter MAKE and check the output for ERRORS

(If the output ends with a listing of AVR Memory Usage there were no errors)

Attachment Descriptions:

CH341SER.zip driver for UNO clones using the CH430 chip.

blink_ASM.zip Assembly language example (includes assembler avrasm2.exe)

msys-1.0.zip WinAVR fix for Windows 8/10

ButtonDemo.zip Pushbutton debounce and control demo code and documents.