User-defined functions in Arduino sketches living with the lab © 2012 David Hall.

Slides:



Advertisements
Similar presentations
Why won’t my Arduino work???? living with the lab © 2012 David Hall.
Advertisements

temperature system wiring
College of Engineering & Science living with the lab Ohm’s Law © 2012 David Hall 1.5V.
Using the servo library living with the lab Libraries are computer programs written to add functionality to Arduino programs. A library to control hobby.
Conductivity sensor implementation living with the lab © 2011 LWTL faculty team.
Analog and Digital Measurements living with the lab 14 digital input / output pins 6 analog input pins © 2012 David Hall.
Waterproofing a thermistor ENGR 121 living with the lab © 2013 David Hall.
Using the Arduino to Make an LED Flash Work in teams of two! living with the lab digital I/O pins (I/O = input / output) USB cable plug power pins.
Calibration of conductivity sensors living with the lab.
Using Your Arduino, Breadboard and Multimeter Work in teams of two! living with the lab 1 © 2012 David Hall.
Living with the lab Attaching Arduino to Boe-Bot Chassis © 2012 David Hall.
Thermistor calibration living with the lab © 2013 David Hall.
Cascaded switching of a solenoid valve living with the lab transistor relay solenoid valve © 2012 David Hall.
Assembly of conductivity flow loop living with the lab (in preparation for calibrating conductivity sensor)
Switches & whiskers on the Arduino living with the lab lever arm switches mounted to Arduino © 2012 David Hall.
Using fixed-cell references and built-in functions in Excel living with the lab © 2012 David Hall.
220  470  Gnd5V Currents Through Parallel Resistors 1 living with the lab © 2012 David Hall.
Using Hobby Servos with the Arduino living with the lab © 2012 David Hall.
Introduction to Microsoft Excel living with the lab © 2012 David Hall.
Voltage Drops Around Closed Loops 470  220  5V   220  living with the lab © 2012 David Hall.
Navigating the engineering disciplines robot challenge living with the lab © 2012 David Hall.
Kirchoff’s Current Law (KCL) living with the lab University of Pennsylvania Library and Wikipedia Gustav Kirchoff (left) and Robert Bunsen (right) Bunsen.
Adding a Barrel Jack to a Battery Pack living with the lab © 2012 David Hall.
Using for loops to control LEDs living with the lab 1 1 arduino.cc the for statement allows us to repeat a block of commands a limited number of times.
Pump Fabrication Day Group A will draw their pump
Controlling Servos with the Arduino
Connecting Switches.
Series and Parallel Resistors
Introduction to the Arduino
Why Won’t My Arduino Work?
Robot Challenge Introduction
Troubleshooting Your Multimeter
Using servos.
calibration of conductivity sensors
Servo Library and Functions
Line Following Tips photoresistor circuits
Robot Assembly.
How to Use Dial Calipers
Controlling a Motor with Cascading Switches
Introduction to the Fishtank
RGB LEDs.
Conservation of Mass Problem
Maxbotix Ultrasonic Distance Sensor
Schedule 8:00-11:00 Workshop: Arduino Fundamentals
Servo Library and Functions
Troubleshooting Your Multimeter
a few of my favorite sensors
using for loops to control LEDs
using the Arduino to make LEDs flash
Using Photoresistors with an Arduino
Line Following Tips photoresistor circuit
Torque and RPM of Gears
Conservation of Mass Problem
analog and digital measurements
Using “if” statements.
Controlling the Heater
Digital Input from Switches
Implementing Switches Using Interrupts
Arduino: For Loops.
Non-Concurrent Force Systems
IR Object Detection IR detector IR LED IR light reflected off object
Radio Frequency Transmitter and Receiver
Interfacing a Rotary Encoder with an Arduino
Conservation of Mass Problem
Non-Concurrent Force Systems
Evaluating Design Alternatives
Counting Servo Gear Teeth (FS90R Servos)
Static Equilibrium Problem
Reservoir Loop.
Freshman Design Expo Presentations
Presentation transcript:

user-defined functions in Arduino sketches living with the lab © 2012 David Hall

living with the lab 2 The content of this presentation is for informational purposes only and is intended only for students attending Louisiana Tech University. The author of this information does not make any claims as to the validity or accuracy of the information or methods presented. Any procedures demonstrated here are potentially dangerous and could result in injury or damage. Louisiana Tech University and the State of Louisiana, their officers, employees, agents or volunteers, are not liable or responsible for any injuries, illness, damage or losses which may result from your using the materials or ideas, or from your performing the experiments or procedures depicted in this presentation. If you do not agree, then do not view this content. The copyright label, the Louisiana Tech logo, and the “living with the lab” identifier should not be removed from this presentation. You may modify this work for your own purposes as long as attribution is clearly provided. DISCLAIMER & USAGE

example sketch without user-defined functions #include Servo myservo1; Servo myservo2; int whisker1=0; void setup() { pinMode(7,INPUT); myservo1.attach(2); myservo2.attach(3); } void loop() { whisker1=digitalRead(7); if (whisker1==HIGH) { myservo1.writeMicroseconds(1300); myservo2.writeMicroseconds(1700); delay(2000); } else { myservo1.writeMicroseconds(1700); myservo2.writeMicroseconds(1300); } when whisker 1 is pressed, back up for 2 seconds else go forward digital pins 2 and 3 will be used to control the servos take input from the whiskers on pin 7 read the state of the whisker on pin 7 (HIGH = pressed and LOW = not pressed) name your servos run this program – you may need to change whisker and servo pin numbers 3 living with the lab

move “forward” and “backward” commands into functions Make these changes. Note that in this case, it may not make sense to use functions. But, if your have a complex program like you will need for the “navigating the engineering disciplines” challenge, structuring your program in this way could simplify and shorten your sketch. #include Servo myservo1; Servo myservo2; int whisker1=0; void setup() { pinMode(7,INPUT); myservo1.attach(2); myservo2.attach(3); } void loop() { whisker1=digitalRead(7); if (whisker1==HIGH) { myservo1.writeMicroseconds(1300); myservo2.writeMicroseconds(1700); delay(2000); } else { myservo1.writeMicroseconds(1700); myservo2.writeMicroseconds(1300); } SAME UPPER PART OF SKETCH void loop() { whisker1=digitalRead(7); if (whisker1==HIGH) { backward(); delay(2000); } else { forward(); } void backward() { myservo1.writeMicroseconds(1300); myservo2.writeMicroseconds(1700); } void forward() { myservo1.writeMicroseconds(1700); myservo2.writeMicroseconds(1300); } call “backward” function call “forward” function “void” means the function doesn’t return anything when it is completed (no numbers are sent back to the loop) 4 living with the lab

more about functions 5 living with the lab

in-class programming challenge Modify the program shown earlier to allow your robot to roam as follows: robot goes forward by default robot backs up and turns right when left whisker is pressed robot backs up and goes left when right whisker is pressed Please use functions for forward, backward, left and right movements. You may test your robot on the floor to see if it works. 6 living with the lab