Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Microcontrollers: Arduino Skylar Roebuck and Lucas Libraro.

Similar presentations


Presentation on theme: "Introduction to Microcontrollers: Arduino Skylar Roebuck and Lucas Libraro."— Presentation transcript:

1 Introduction to Microcontrollers: Arduino Skylar Roebuck and Lucas Libraro

2

3 What we will learn you… Presentation learnin – The Arduino – Microcontroller basics – Introduction to programming Variables Binary – Introduction do the digital ‘1’ and ‘0’ Data types Anatomy of a program Sketches- setup and loop Logic AND, OR, NOT – Circuit Construction What’s in the kit? Ohm’s Law Resistor Color Coding Pull Up and Pull Down Then we get building…

4 The Arduino

5 What is an Arduino The Arduino is first and foremost a microcontroller.

6 So what is a microcontroller? Essentially, a microcontroller is a small computer on a single integrated circuit. The microcontroller has a simple CPU comprised of clock timers, input/output ports, and memory.

7 Uses: automatically controlled products and devices automobile engine control systems implantable medical devices remote controls office machines appliances power tools And more and more and more

8 Personal Project Uses: Microcontrollers are great at handling inputs and outputs for example: Using a temperature sensor and outputting the temperature on a screen. Using an infrared sensor and using it to guide a robot by controlling motors. Using servos to move a robotic arm Possibilities are endless.

9 So why the Arduino? Vs.

10 Arduino Expandability – Easy to attach Ethernet shields, sensors, etc. Easy Setup – All you need is a standard USB cable for programming and power Breakout board – Circuit creation is made easy by not having to do any soldering Inexpensive Powerful – Fueled by the Atmega328 microcontroller

11 The learnin Pencils and Paper Time!

12 Variables A variable is how you store a value within a program Examples: Hackrva = “awesome”; – Assigns the string (a data type) Awesome to hackrva Hackrva = 2; – Assigns the integer 2 to the variable hackrva. – Further: hackrva = hackrva + 2; » NOW: hackrva = 4

13 Data types Data types are an important foundation to programming. For example, if you want a program to count to 10 then you want: – 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 You do NOT want – 1.00000, 1.00001, 1.00002, etc. This is solved by using data types properly

14 Data types mark 2 In the example before, counting to 10, we would want that to be an integer so that it ignores all other values. This is done in conjunction with the variable and this process is known as defining or initializing variables: Int counter; – -this just tells the compiler that counter is an integer and it doesn’t need to be concerned with any other data.

15 Data types mark 3 Further there are many data types and the variable needs to be assigned according to what it will be used for. Common data types are: String = “hack.rva rocks”; Char = “A”; Int = 1; Float = 1.5675; – Binary types Boolean = 0; (only 0 or 1) Byte = “00001111”;

16 The nitty gritty The foundation of programming is the ‘0’ and the ‘1’ Boolean ‘0’ – No ‘1’ – Yes Binary 000 - 0 001 - 1 010 - 2 011 - 3 100 - 4 101 - 5 110 - 6 111 - 7 This is what the microcontroller understands Seems very polar but there are shades of gray we will discuss later

17 LOGIC Gates Logic comes into play when working and thinking on a binary level. They are essentially operations like +, -, *, / except on a binary numbers. In fact using logic is how you CREATE +,-,*,/ well…you also need about 5000 transistors. The foundation basic gates are: AND, OR, NOT

18 AND INPUTOUTPUT ABA AND B 000 010 100 111 Example: We want LED3 to come on when LED1 and LED2 are both on: If LED2 = 1 AND LED1 = 1 then LED3 = 1

19 OR Example: We want LED3 to come on when either LED1 and LED2 are both on: If LED2 = 1 OR LED1 = 1 then LED3 = 1 INPUTOUTPUT ABA OR B 000 011 101 111

20 NOT (invert) Example: We want LED3 to be the opposite of its current state (if off then on and if on then off): LED3 = NOT LED3; INPUTOUTPUT ANOT A 01 10

21 Anatomy of a Program

22 How do we make it do what we want: Program it! High level languages – C++, C, Java – closest to natural human understanding – Arduino’s Programming Language Low level languages – Assembly Code– a little more difficult to interpret for a person but still possible Lowest (if you write this you have too much free time) – Machine Code – all patterns of ‘0’s and ‘1’s – The microcontroller might see: 0001001010010100101001001010001010101010 – And from this it will know a specific command.

23 A program. Basic life of a program: – User writes a program in C (a high level language) – A compiler will then take that code and converts it into Assembly language – Then an assembler will take that code and turn it into machine code. – We are using an Arduino IDE, or integrated development environment, so we will write code using Arduino’s language and it will take care of the rest! – Easy Peazy

24 Programming Languages Obviously, not every programming language is the same. Each language differs in a way that makes it particularly good for something. Arduino is no different. Arduino has been simplified specifically to make it easy to program the Arduino microcontroller. Anatomy of an Arduino Program: – Arduino calls every program a Sketch (maybe they feel like that makes them edgy to be different) – Sketches are comprised of a SETUP and a LOOP section – Setup: Only Runs once and is used to set necessary registers and pins – Loop: This is the rest of the sketch and by default when a sketch finishes in this language it repeats the entire sketch. Essentially looping-a concept we will cover later.

25 CIRCUIT CONSTRUCTION

26 What’s in the kits?

27 Half-sized breadboard- 400 connection points, plenty of room for beginner projects, with 2 power rails on the side.

28 What’s in the kits? 1K & 10K potentiometer - these pots have 0.1" spacing and fit very nicely into a breadboard without modification

29 What’s in the kits? 2 small pushbuttons - Snap into the breadboard for button inputs

30 What’s in the kits? 5 bright red diffused LEDs (250mcd) - indicators, blinkies, bright enough to see in the day, but diffused so that they are visible from all angles.

31 What’s in the kits? Red, green and blue ultra-bright LED - Can be used on their own, or color-mixed to make nearly any color in the rainbow!

32 What’s in the kits? 5 100 ohm resistors - They can be used to protect pin outputs when starting out 5 1K resistors - Good for use as LED limiting resistors 5 10K resistors - Great for pullups & pulldowns

33 A few more concepts before building: Ohm’s Law! – Georg Simon Ohm was kind of the Originial Gangster of circuit construction – He developed the simple relationship Or current = voltage / resistance

34 Why is this important? Today we will be using LEDs or Light Emitting Diodes. LEDs are essentially switches that emit light. When hooked up correctly to a power source, the current will flow through the switch in the right direction and turn it on. BUT, LEDs are often delicate! With too much current the LED will blow and become unusable. SOLUTION: We use a resistor to buffer the current through the LED.

35 Which resistor? Using Ohm’s we can determine exactly which resistor is best but it is always best to be safe than sorry. – The higher the resistance the dimmer the LED will We will be using the 1K resistors. – …and which one is that?

36 Resistor Color Coding

37 100ohm 100k ohms

38 Pull up/pull down resistors Pull up/pull down is a way of setting up buttons so that they are reliable. When we use buttons today we will add a pull down resistor. This resistor ensures that the button registers as a ‘0’ or off whenever it is not being pushed. This is the function of a pull down resistor—it makes sure inputs are what we expect them to be.

39 Time to build!

40 Picture of build schematic

41 Program 1 This program introduces everybody to the general setup of a typical sketch

42 Program 2


Download ppt "Introduction to Microcontrollers: Arduino Skylar Roebuck and Lucas Libraro."

Similar presentations


Ads by Google