Arduino Sketches

15 January 2019

Arduino Sketches from the Arduino Uno Hardware Manual can be found below. Select the desired sketch and copy the code, then paste it to the Arduino IDE. Sketches are displayed below under the section number that they occur in in the book, with the page number that they can be found on.

1.5.2.2 – Page 45

Modified Blink sketch.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // configure L LED pin as output
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // switch L LED ON
  delay(200);                       // leave L LED ON for period
  digitalWrite(LED_BUILTIN, LOW);   // switch L LED OFF
  delay(200);                       // leave L LED OFF for period
}

2.7.4.1 – Page 71

Arduino Uno pin 12 configured as an output and driven high and low.

void setup() {
  pinMode(12, OUTPUT);    // configure digital pin 12 as an output pin
}

void loop() {
  digitalWrite(12, HIGH); // set pin 12 voltage to 5V on an Arduino Uno
  delay(500);
  digitalWrite(12, LOW);  // set pin 12 voltage to 0V or GND
  delay(500);
}

2.7.4.1 – Page 72

Defining a pin with a user friendly name.

#define MY_LED  12

void setup() {
  pinMode(MY_LED, OUTPUT);    // configure digital pin as an output pin
}

void loop() {
  digitalWrite(MY_LED, HIGH); // set pin voltage to 5V on an Arduino Uno
  delay(500);
  digitalWrite(MY_LED, LOW);  // set pin voltage to 0V or GND
  delay(500);
}

2.7.4.4 – Page 75

Arduino Uno PWM on pin 3 with 50% duty cycle.

void setup() {
  pinMode(3, OUTPUT);

  analogWrite(3, 127);
}

void loop() {
}

2.7.5.3 – Page 79

Calculating analog input voltage on Arduino Uno A0 pin.

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(A0);                     // read ADC value
  float voltage = (5.0 / 1024.0) * (float)sensorValue;  // calculate voltage
  Serial.print(voltage);                                // display voltage
  Serial.println(" V");
  delay(1);
}

2.7.5.5 – Page 80

Arduino Uno analog pin A0 used as a digital output pin.

void setup() {
  pinMode(A0, OUTPUT);
}

void loop() {
  digitalWrite(A0, HIGH);
  delay(500);
  digitalWrite(A0, LOW);
  delay(500);
}

3.3.1.2 – Page 106

Pull-down Resistor

Read Arduino Uno pin 2 state with pull-down resistor.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(2, INPUT);
}

void loop() {
  if (digitalRead(2)) {
    // pin state is high or 1, switch is closed (pull-down resistor)
    digitalWrite(LED_BUILTIN, HIGH);  // switch L LED on
  }
  else {
    // pin state is low or 0, switch is open (pull-down resistor)
    digitalWrite(LED_BUILTIN, LOW);   // switch L LED off
  }
}

3.3.1.2 – Page 108

Pull-up Resistor

Read Arduino Uno pin 2 state with pull-up resistor.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(2, INPUT);
}

void loop() {
  if (digitalRead(2)) {
    // pin state is high or 1, switch is open (pull-up resistor)
    digitalWrite(LED_BUILTIN, LOW);    // switch L LED off
  }
  else {
    // pin state is low or 0, switch is closed (pull-up resistor)
    digitalWrite(LED_BUILTIN, HIGH);   // switch L LED on
  }
}

3.3.1.2 – Page 109

Internal Pull-up Resistors

Read Arduino Uno pin 2 state with internal pull-up resistor enabled.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(2, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(2)) {
    // pin state is high or 1, switch is open (pull-up resistor)
    digitalWrite(LED_BUILTIN, LOW);    // switch L LED off
  }
  else {
    // pin state is low or 0, switch is closed (pull-up resistor)
    digitalWrite(LED_BUILTIN, HIGH);   // switch L LED on
  }
}

3.3.4.2 – Page 113

Read the first byte from an AT24C16C EEPROM connected to the Arduino Uno TWI bus pins.

// Reads a single byte from a AT24C16C EEPROM on the TWI or I2C bus
#include <Wire.h>

void setup() {
  Wire.begin();         // join TWI bus as a master
  Serial.begin(9600);   // for displaying results in Serial Monitor window
  
  // *** Perform Random Read ***
  // address byte 0 of EEPROM
  Wire.beginTransmission((0xA0 >> 1));
  Wire.write(0x00);
  Wire.endTransmission();
  // read 1 byte from EEPROM at address 0
  Wire.requestFrom((0xA0 >> 1), 1);
  // *** End Perform Random Read ***

  while (Wire.available()) {          // check for response from EEPROM
    byte data8 = Wire.read();         // read byte from the EEPROM
    Serial.print("Byte read is: ");
    Serial.println(data8, HEX);       // display the byte
  }
}

void loop() {
}

7.4.2 – Page 172

Use all of the PWM pins on the Arduino Uno to produce PWM waveforms with different duty cycles.

void setup() {
  analogWrite(3, 51);     // PWM 20% 490Hz
  analogWrite(5, 89);     // PWM 35% 976Hz
  analogWrite(6, 127);    // PWM 50% 976Hz
  analogWrite(9, 166);    // PWM 65% 490Hz
  analogWrite(10, 204);   // PWM 80% 490Hz
  analogWrite(11, 230);   // PWM 90% 490Hz
}

void loop() {
}

7.4.3 – Page 172

Arduino Uno serial port or UART test square wave.

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print('U');
}

7.4.5 – Page 175

Send a character on the Arduino Uno SPI bus.

#include <SPI.h>

void setup() {
  SPI.begin();
  SPI.beginTransaction(SPISettings(10000, MSBFIRST, SPI_MODE1));
}

void loop() {
  SPI.transfer('U');
  delay(1);
}

Arduino Uno Hardware Manual