Professional Documents
Culture Documents
Arduino Programming
Arduino Programming
Arduino IDE
• Download from:
http://arduino.cc/en/Main/Software
About Arduino Uno
Reset button 14 Digital I/O pins (6 PWM)
USB port
12 V input
http://www.farnell.com/datasheets/1682209.pdf
Setting up Arduino IDE
Structure of an Arduino code
http://blog.grifby.com/2013/04/tutorial-1-blinking-led-using-arduino.html
Arduino C – Basic functions
pinMode(var1, var2) pinMode functions sets the mode of given pin. Var1 is the
number of the pin and var2 is the mode (INPUT, OUTPUT)
digitalWrite(var1, var2) digitalWrite changes the status of the pin. Var1 is the
number of the pin and var2 is the status (LOW, HIGH).
Writing your first program
Basic blinking LED
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Writing your first program
Basic blinking LED
int ledPin = 13; //Variable to store the pin number
void setup()
{
pinMode(ledPin, OUTPUT); //set ledPin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); //LED ON
delay(1000); //Wait 1000ms (=1s)
digitalWrite(ledPin, LOW); //LED OFF
delay(1000); //Wait 1000ms (=1s)
}
Uploading the program
1. Click Verify
The program is
checked 2.
1.
2. Click Upload
The program is
uploaded to the
Arduino mCu
board
Example 2 - Controlling
servomotor with Arduino
• Servomotor is controlled with PWM signal
• For controlling servomotor only Arduino is
needed
• Arduino IDE has its own servomotor library
PWM (Pulse Width Modulation)
• Basic terms
int pos = 0;
void setup()
{
myservo.attach(9);
}
void loop()
{
for(pos = 0; pos <= 120; pos += 1)
{
myservo.write(pos);
delay(15);
}
for(pos = 120; pos>=0; pos-=1)
{
myservo.write(pos);
delay(15);
}
}
#include <Servo.h>
Example 2
Servo myservo; // create servo object to control a servo
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
for(pos = 0; pos <= 120; pos += 1) // goes from 0 degrees to 120 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 120; pos>=0; pos-=1) // goes from 120 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
Example 3 - Servomotor control
with potentiometer
• You need
– Breadboard
– Servomotor
– Potentiometer
– Arduino Uno
– Wires
Example 3
http://www.electroschematics.com/11453/digital-potentiometer-arduino-shield/
Example 3
• analogRead(analogPinNumber);
– Reads the analog pin where the potentiometer is
attached
• map(value, fromLow, fromHigh, toLow, toHigh);
-Scales the potentiometer value to servomotors angle
-The analog input has 10 bit resolutions
Example 3
#include <Servo.h>
int potpin = A0; // analog pin used to connect the potentiometer (F0/A0)
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 120); // scale it to use it with the servo (value between 0 and 120)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}